Commit 9fafbd80 authored by David S. Miller's avatar David S. Miller

Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6

parents d81f087f 21dccddf
...@@ -5,4 +5,17 @@ ...@@ -5,4 +5,17 @@
#else #else
#include <asm/io_32.h> #include <asm/io_32.h>
#endif #endif
/*
* Defines used for both SPARC32 and SPARC64
*/
/* Big endian versions of memory read/write routines */
#define readb_be(__addr) __raw_readb(__addr)
#define readw_be(__addr) __raw_readw(__addr)
#define readl_be(__addr) __raw_readl(__addr)
#define writeb_be(__b, __addr) __raw_writeb(__b, __addr)
#define writel_be(__w, __addr) __raw_writel(__w, __addr)
#define writew_be(__l, __addr) __raw_writew(__l, __addr)
#endif #endif
...@@ -165,7 +165,7 @@ static int __devinit apc_probe(struct platform_device *op) ...@@ -165,7 +165,7 @@ static int __devinit apc_probe(struct platform_device *op)
return 0; return 0;
} }
static struct of_device_id __initdata apc_match[] = { static struct of_device_id apc_match[] = {
{ {
.name = APC_OBPNAME, .name = APC_OBPNAME,
}, },
......
...@@ -69,7 +69,7 @@ static int __devinit pmc_probe(struct platform_device *op) ...@@ -69,7 +69,7 @@ static int __devinit pmc_probe(struct platform_device *op)
return 0; return 0;
} }
static struct of_device_id __initdata pmc_match[] = { static struct of_device_id pmc_match[] = {
{ {
.name = PMC_OBPNAME, .name = PMC_OBPNAME,
}, },
......
...@@ -51,6 +51,7 @@ cpumask_t smp_commenced_mask = CPU_MASK_NONE; ...@@ -51,6 +51,7 @@ cpumask_t smp_commenced_mask = CPU_MASK_NONE;
void __cpuinit smp_store_cpu_info(int id) void __cpuinit smp_store_cpu_info(int id)
{ {
int cpu_node; int cpu_node;
int mid;
cpu_data(id).udelay_val = loops_per_jiffy; cpu_data(id).udelay_val = loops_per_jiffy;
...@@ -58,10 +59,13 @@ void __cpuinit smp_store_cpu_info(int id) ...@@ -58,10 +59,13 @@ void __cpuinit smp_store_cpu_info(int id)
cpu_data(id).clock_tick = prom_getintdefault(cpu_node, cpu_data(id).clock_tick = prom_getintdefault(cpu_node,
"clock-frequency", 0); "clock-frequency", 0);
cpu_data(id).prom_node = cpu_node; cpu_data(id).prom_node = cpu_node;
cpu_data(id).mid = cpu_get_hwmid(cpu_node); mid = cpu_get_hwmid(cpu_node);
if (cpu_data(id).mid < 0) if (mid < 0) {
panic("No MID found for CPU%d at node 0x%08d", id, cpu_node); printk(KERN_NOTICE "No MID found for CPU%d at node 0x%08d", id, cpu_node);
mid = 0;
}
cpu_data(id).mid = mid;
} }
void __init smp_cpus_done(unsigned int max_cpus) void __init smp_cpus_done(unsigned int max_cpus)
......
...@@ -168,7 +168,7 @@ static int __devinit clock_probe(struct platform_device *op) ...@@ -168,7 +168,7 @@ static int __devinit clock_probe(struct platform_device *op)
return 0; return 0;
} }
static struct of_device_id __initdata clock_match[] = { static struct of_device_id clock_match[] = {
{ {
.name = "eeprom", .name = "eeprom",
}, },
......
...@@ -289,10 +289,16 @@ cc_end_cruft: ...@@ -289,10 +289,16 @@ cc_end_cruft:
/* Also, handle the alignment code out of band. */ /* Also, handle the alignment code out of band. */
cc_dword_align: cc_dword_align:
cmp %g1, 6 cmp %g1, 16
bl,a ccte bge 1f
srl %g1, 1, %o3
2: cmp %o3, 0
be,a ccte
andcc %g1, 0xf, %o3 andcc %g1, 0xf, %o3
andcc %o0, 0x1, %g0 andcc %o3, %o0, %g0 ! Check %o0 only (%o1 has the same last 2 bits)
be,a 2b
srl %o3, 1, %o3
1: andcc %o0, 0x1, %g0
bne ccslow bne ccslow
andcc %o0, 0x2, %g0 andcc %o0, 0x2, %g0
be 1f be 1f
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment