Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 40544
b: refs/heads/master
c: 612b322
h: refs/heads/master
v: v3
  • Loading branch information
Linus Torvalds committed Oct 31, 2006
1 parent e08c1ab commit f6723de
Show file tree
Hide file tree
Showing 37 changed files with 670 additions and 497 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 1b7c2dbc07bf0663a41e3dc838992930019f08fd
refs/heads/master: 612b322ade7954a1d984fa410a70d4ae50f75c0d
2 changes: 1 addition & 1 deletion trunk/Makefile
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
VERSION = 2
PATCHLEVEL = 6
SUBLEVEL = 19
EXTRAVERSION =-rc3
EXTRAVERSION =-rc4
NAME=Avast! A bilge rat!

# *DOCUMENTATION*
Expand Down
3 changes: 2 additions & 1 deletion trunk/arch/mips/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -408,7 +408,7 @@ config MOMENCO_OCELOT_C
select SWAP_IO_SPACE
select SYS_HAS_CPU_RM7000
select SYS_SUPPORTS_32BIT_KERNEL
select SYS_SUPPORTS_64BIT_KERNEL
select SYS_SUPPORTS_64BIT_KERNEL if BROKEN
select SYS_SUPPORTS_BIG_ENDIAN
help
The Ocelot is a MIPS-based Single Board Computer (SBC) made by
Expand Down Expand Up @@ -1690,6 +1690,7 @@ config NR_CPUS
depends on SMP
default "64" if SGI_IP27
default "2"
default "8" if MIPS_MT_SMTC
help
This allows you to specify the maximum number of CPUs which this
kernel will support. The maximum supported value is 32 for 32-bit
Expand Down
8 changes: 2 additions & 6 deletions trunk/arch/mips/au1000/common/time.c
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,6 @@ unsigned long wtimer;
void mips_timer_interrupt(void)
{
int irq = 63;
unsigned long count;

irq_enter();
kstat_this_cpu.irqs[irq]++;
Expand Down Expand Up @@ -231,7 +230,6 @@ wakeup_counter0_set(int ticks)
*/
unsigned long cal_r4koff(void)
{
unsigned long count;
unsigned long cpu_speed;
unsigned long flags;
unsigned long counter;
Expand All @@ -258,7 +256,7 @@ unsigned long cal_r4koff(void)

#if defined(CONFIG_AU1000_USE32K)
{
unsigned long start, end;
unsigned long start, end, count;

start = au_readl(SYS_RTCREAD);
start += 2;
Expand All @@ -282,7 +280,6 @@ unsigned long cal_r4koff(void)
#else
cpu_speed = (au_readl(SYS_CPUPLL) & 0x0000003f) *
AU1000_SRC_CLK;
count = cpu_speed / 2;
#endif
}
else {
Expand All @@ -291,10 +288,9 @@ unsigned long cal_r4koff(void)
* NOTE: some old silicon doesn't allow reading the PLL.
*/
cpu_speed = (au_readl(SYS_CPUPLL) & 0x0000003f) * AU1000_SRC_CLK;
count = cpu_speed / 2;
no_au1xxx_32khz = 1;
}
mips_hpt_frequency = count;
mips_hpt_frequency = cpu_speed;
// Equation: Baudrate = CPU / (SD * 2 * CLKDIV * 16)
set_au1x00_uart_baud_base(cpu_speed / (2 * ((int)(au_readl(SYS_POWERCTRL)&0x03) + 2) * 16));
spin_unlock_irqrestore(&time_lock, flags);
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/mips/emma2rh/common/irq_emma2rh.c
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ void emma2rh_irq_init(u32 irq_base)
irq_desc[i].status = IRQ_DISABLED;
irq_desc[i].action = NULL;
irq_desc[i].depth = 1;
irq_desc[i].handler = &emma2rh_irq_controller;
irq_desc[i].chip = &emma2rh_irq_controller;
}

emma2rh_irq_base = irq_base;
Expand Down
4 changes: 2 additions & 2 deletions trunk/arch/mips/emma2rh/markeins/irq_markeins.c
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ void emma2rh_sw_irq_init(u32 irq_base)
irq_desc[i].status = IRQ_DISABLED;
irq_desc[i].action = NULL;
irq_desc[i].depth = 2;
irq_desc[i].handler = &emma2rh_sw_irq_controller;
irq_desc[i].chip = &emma2rh_sw_irq_controller;
}

emma2rh_sw_irq_base = irq_base;
Expand Down Expand Up @@ -166,7 +166,7 @@ void emma2rh_gpio_irq_init(u32 irq_base)
irq_desc[i].status = IRQ_DISABLED;
irq_desc[i].action = NULL;
irq_desc[i].depth = 2;
irq_desc[i].handler = &emma2rh_gpio_irq_controller;
irq_desc[i].chip = &emma2rh_gpio_irq_controller;
}

emma2rh_gpio_irq_base = irq_base;
Expand Down
88 changes: 56 additions & 32 deletions trunk/arch/mips/emma2rh/markeins/platform.c
Original file line number Diff line number Diff line change
Expand Up @@ -44,18 +44,45 @@
#define I2C_EMMA2RH "emma2rh-iic" /* must be in sync with IIC driver */

static struct resource i2c_emma_resources_0[] = {
{ NULL, EMMA2RH_IRQ_PIIC0, EMMA2RH_IRQ_PIIC0, IORESOURCE_IRQ },
{ NULL, KSEG1ADDR(EMMA2RH_PIIC0_BASE), KSEG1ADDR(EMMA2RH_PIIC0_BASE + 0x1000), 0 },
{
.name = NULL,
.start = EMMA2RH_IRQ_PIIC0,
.end = EMMA2RH_IRQ_PIIC0,
.flags = IORESOURCE_IRQ
}, {
.name = NULL,
.start = EMMA2RH_PIIC0_BASE,
.end = EMMA2RH_PIIC0_BASE + 0x1000,
.flags = 0
},
};

struct resource i2c_emma_resources_1[] = {
{ NULL, EMMA2RH_IRQ_PIIC1, EMMA2RH_IRQ_PIIC1, IORESOURCE_IRQ },
{ NULL, KSEG1ADDR(EMMA2RH_PIIC1_BASE), KSEG1ADDR(EMMA2RH_PIIC1_BASE + 0x1000), 0 },
{
.name = NULL,
.start = EMMA2RH_IRQ_PIIC1,
.end = EMMA2RH_IRQ_PIIC1,
.flags = IORESOURCE_IRQ
}, {
.name = NULL,
.start = EMMA2RH_PIIC1_BASE,
.end = EMMA2RH_PIIC1_BASE + 0x1000,
.flags = 0
},
};

struct resource i2c_emma_resources_2[] = {
{ NULL, EMMA2RH_IRQ_PIIC2, EMMA2RH_IRQ_PIIC2, IORESOURCE_IRQ },
{ NULL, KSEG1ADDR(EMMA2RH_PIIC2_BASE), KSEG1ADDR(EMMA2RH_PIIC2_BASE + 0x1000), 0 },
{
.name = NULL,
.start = EMMA2RH_IRQ_PIIC2,
.end = EMMA2RH_IRQ_PIIC2,
.flags = IORESOURCE_IRQ
}, {
.name = NULL,
.start = EMMA2RH_PIIC2_BASE,
.end = EMMA2RH_PIIC2_BASE + 0x1000,
.flags = 0
},
};

struct platform_device i2c_emma_devices[] = {
Expand Down Expand Up @@ -83,32 +110,29 @@ struct platform_device i2c_emma_devices[] = {
#define EMMA2RH_SERIAL_FLAGS UPF_BOOT_AUTOCONF | UPF_SKIP_TEST

static struct plat_serial8250_port platform_serial_ports[] = {
[0] = {
.membase = (void __iomem*)KSEG1ADDR(EMMA2RH_PFUR0_BASE + 3),
.irq = EMMA2RH_IRQ_PFUR0,
.uartclk = EMMA2RH_SERIAL_CLOCK,
.regshift = 4,
.iotype = UPIO_MEM,
.flags = EMMA2RH_SERIAL_FLAGS,
},
[1] = {
.membase = (void __iomem*)KSEG1ADDR(EMMA2RH_PFUR1_BASE + 3),
.irq = EMMA2RH_IRQ_PFUR1,
.uartclk = EMMA2RH_SERIAL_CLOCK,
.regshift = 4,
.iotype = UPIO_MEM,
.flags = EMMA2RH_SERIAL_FLAGS,
},
[2] = {
.membase = (void __iomem*)KSEG1ADDR(EMMA2RH_PFUR2_BASE + 3),
.irq = EMMA2RH_IRQ_PFUR2,
.uartclk = EMMA2RH_SERIAL_CLOCK,
.regshift = 4,
.iotype = UPIO_MEM,
.flags = EMMA2RH_SERIAL_FLAGS,
},
[3] = {
.flags = 0,
[0] = {
.membase= (void __iomem*)KSEG1ADDR(EMMA2RH_PFUR0_BASE + 3),
.irq = EMMA2RH_IRQ_PFUR0,
.uartclk = EMMA2RH_SERIAL_CLOCK,
.regshift = 4,
.iotype = UPIO_MEM,
.flags = EMMA2RH_SERIAL_FLAGS,
}, [1] = {
.membase = (void __iomem*)KSEG1ADDR(EMMA2RH_PFUR1_BASE + 3),
.irq = EMMA2RH_IRQ_PFUR1,
.uartclk = EMMA2RH_SERIAL_CLOCK,
.regshift = 4,
.iotype = UPIO_MEM,
.flags = EMMA2RH_SERIAL_FLAGS,
}, [2] = {
.membase = (void __iomem*)KSEG1ADDR(EMMA2RH_PFUR2_BASE + 3),
.irq = EMMA2RH_IRQ_PFUR2,
.uartclk = EMMA2RH_SERIAL_CLOCK,
.regshift = 4,
.iotype = UPIO_MEM,
.flags = EMMA2RH_SERIAL_FLAGS,
}, [3] = {
.flags = 0,
},
};

Expand Down
3 changes: 3 additions & 0 deletions trunk/arch/mips/jmr3927/rbhma3100/irq.c
Original file line number Diff line number Diff line change
Expand Up @@ -288,6 +288,8 @@ static void tx_branch_likely_bug_fixup(void)

static void jmr3927_spurious(void)
{
struct pt_regs * regs = get_irq_regs();

#ifdef CONFIG_TX_BRANCH_LIKELY_BUG_WORKAROUND
tx_branch_likely_bug_fixup();
#endif
Expand All @@ -297,6 +299,7 @@ static void jmr3927_spurious(void)

asmlinkage void plat_irq_dispatch(void)
{
struct pt_regs * regs = get_irq_regs();
int irq;

#ifdef CONFIG_TX_BRANCH_LIKELY_BUG_WORKAROUND
Expand Down
2 changes: 2 additions & 0 deletions trunk/arch/mips/kernel/scall32-o32.S
Original file line number Diff line number Diff line change
Expand Up @@ -654,6 +654,8 @@ einval: li v0, -EINVAL
sys sys_set_robust_list 2
sys sys_get_robust_list 3 /* 4310 */
sys sys_ni_syscall 0
sys sys_getcpu 3
sys sys_epoll_pwait 6
.endm

/* We pre-compute the number of _instruction_ bytes needed to
Expand Down
2 changes: 2 additions & 0 deletions trunk/arch/mips/kernel/scall64-64.S
Original file line number Diff line number Diff line change
Expand Up @@ -469,3 +469,5 @@ sys_call_table:
PTR sys_set_robust_list
PTR sys_get_robust_list
PTR sys_ni_syscall /* 5270 */
PTR sys_getcpu
PTR sys_epoll_pwait
2 changes: 2 additions & 0 deletions trunk/arch/mips/kernel/scall64-n32.S
Original file line number Diff line number Diff line change
Expand Up @@ -395,3 +395,5 @@ EXPORT(sysn32_call_table)
PTR compat_sys_set_robust_list
PTR compat_sys_get_robust_list
PTR sys_ni_syscall
PTR sys_getcpu
PTR sys_epoll_pwait
2 changes: 2 additions & 0 deletions trunk/arch/mips/kernel/scall64-o32.S
Original file line number Diff line number Diff line change
Expand Up @@ -517,4 +517,6 @@ sys_call_table:
PTR compat_sys_set_robust_list
PTR compat_sys_get_robust_list /* 4310 */
PTR sys_ni_syscall
PTR sys_getcpu
PTR sys_epoll_pwait
.size sys_call_table,.-sys_call_table
18 changes: 13 additions & 5 deletions trunk/arch/mips/mm/c-sb1.c
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,15 @@ static unsigned short dcache_sets;
static unsigned int icache_range_cutoff;
static unsigned int dcache_range_cutoff;

static inline void sb1_on_each_cpu(void (*func) (void *info), void *info,
int retry, int wait)
{
preempt_disable();
smp_call_function(func, info, retry, wait);
func(info);
preempt_enable();
}

/*
* The dcache is fully coherent to the system, with one
* big caveat: the instruction stream. In other words,
Expand Down Expand Up @@ -226,7 +235,7 @@ static void sb1_flush_cache_page(struct vm_area_struct *vma, unsigned long addr,
args.vma = vma;
args.addr = addr;
args.pfn = pfn;
on_each_cpu(sb1_flush_cache_page_ipi, (void *) &args, 1, 1);
sb1_on_each_cpu(sb1_flush_cache_page_ipi, (void *) &args, 1, 1);
}
#else
void sb1_flush_cache_page(struct vm_area_struct *vma, unsigned long addr, unsigned long pfn)
Expand All @@ -249,7 +258,7 @@ void sb1___flush_cache_all_ipi(void *ignored)

static void sb1___flush_cache_all(void)
{
on_each_cpu(sb1___flush_cache_all_ipi, 0, 1, 1);
sb1_on_each_cpu(sb1___flush_cache_all_ipi, 0, 1, 1);
}
#else
void sb1___flush_cache_all(void)
Expand Down Expand Up @@ -299,7 +308,7 @@ void sb1_flush_icache_range(unsigned long start, unsigned long end)

args.start = start;
args.end = end;
on_each_cpu(sb1_flush_icache_range_ipi, &args, 1, 1);
sb1_on_each_cpu(sb1_flush_icache_range_ipi, &args, 1, 1);
}
#else
void sb1_flush_icache_range(unsigned long start, unsigned long end)
Expand All @@ -326,7 +335,7 @@ static void sb1_flush_cache_sigtramp_ipi(void *info)

static void sb1_flush_cache_sigtramp(unsigned long addr)
{
on_each_cpu(sb1_flush_cache_sigtramp_ipi, (void *) addr, 1, 1);
sb1_on_each_cpu(sb1_flush_cache_sigtramp_ipi, (void *) addr, 1, 1);
}
#else
void sb1_flush_cache_sigtramp(unsigned long addr)
Expand Down Expand Up @@ -444,7 +453,6 @@ static __init void probe_cache_sizes(void)
void sb1_cache_init(void)
{
extern char except_vec2_sb1;
extern char handle_vec2_sb1;

/* Special cache error handler for SB1 */
set_uncached_handler (0x100, &except_vec2_sb1, 0x80);
Expand Down
6 changes: 3 additions & 3 deletions trunk/arch/mips/momentum/ocelot_g/ocelot_pld.h
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@
#define OCELOT_REG_INTSET (12)
#define OCELOT_REG_INTCLR (13)

#define OCELOT_PLD_WRITE(x, y) writeb(x, OCELOT_CS0_ADDR + OCELOT_REG_##y)
#define OCELOT_PLD_READ(x) readb(OCELOT_CS0_ADDR + OCELOT_REG_##x)

#define __PLD_REG_TO_ADDR(reg) ((void *) OCELOT_CS0_ADDR + OCELOT_REG_##reg)
#define OCELOT_PLD_WRITE(x, reg) writeb(x, __PLD_REG_TO_ADDR(reg))
#define OCELOT_PLD_READ(reg) readb(__PLD_REG_TO_ADDR(reg))

#endif /* __MOMENCO_OCELOT_PLD_H__ */
5 changes: 5 additions & 0 deletions trunk/arch/mips/momentum/ocelot_g/setup.c
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@
#include <asm/gt64240.h>
#include <asm/irq.h>
#include <asm/pci.h>
#include <asm/pgtable.h>
#include <asm/processor.h>
#include <asm/reboot.h>
#include <linux/bootmem.h>
Expand Down Expand Up @@ -160,6 +161,10 @@ static void __init setup_l3cache(unsigned long size)
printk("Done\n");
}

void __init plat_timer_setup(struct irqaction *irq)
{
}

void __init plat_mem_setup(void)
{
void (*l3func)(unsigned long) = (void *) KSEG1ADDR(setup_l3cache);
Expand Down
12 changes: 7 additions & 5 deletions trunk/arch/mips/oprofile/op_model_mipsxx.c
Original file line number Diff line number Diff line change
Expand Up @@ -31,16 +31,18 @@
#define M_COUNTER_OVERFLOW (1UL << 31)

#ifdef CONFIG_MIPS_MT_SMP
#define WHAT (M_TC_EN_VPE | M_PERFCTL_VPEID(smp_processor_id()))
#define WHAT (M_TC_EN_VPE | M_PERFCTL_VPEID(smp_processor_id()))
#define vpe_id() smp_processor_id()
#else
#define WHAT 0
#define WHAT 0
#define vpe_id() smp_processor_id()
#endif

#define __define_perf_accessors(r, n, np) \
\
static inline unsigned int r_c0_ ## r ## n(void) \
{ \
unsigned int cpu = smp_processor_id(); \
unsigned int cpu = vpe_id(); \
\
switch (cpu) { \
case 0: \
Expand All @@ -55,7 +57,7 @@ static inline unsigned int r_c0_ ## r ## n(void) \
\
static inline void w_c0_ ## r ## n(unsigned int value) \
{ \
unsigned int cpu = smp_processor_id(); \
unsigned int cpu = vpe_id(); \
\
switch (cpu) { \
case 0: \
Expand Down Expand Up @@ -218,7 +220,7 @@ static inline int n_counters(void)
{
int counters = __n_counters();

#ifndef CONFIG_SMP
#ifdef CONFIG_MIPS_MT_SMP
if (current_cpu_data.cputype == CPU_34K)
return counters >> 1;
#endif
Expand Down
Loading

0 comments on commit f6723de

Please sign in to comment.