Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6
This commit is contained in:
Коммит
9fafbd8061
|
@ -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)
|
||||||
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)
|
||||||
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;
|
||||||
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)
|
||||||
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)
|
||||||
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:
|
||||||
|
|
||||||
/* 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
|
||||||
|
|
Загрузка…
Ссылка в новой задаче