Merge git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc-merge
This commit is contained in:
@@ -65,6 +65,7 @@ struct paca_struct {
|
||||
u64 stab_real; /* Absolute address of segment table */
|
||||
u64 stab_addr; /* Virtual address of segment table */
|
||||
void *emergency_sp; /* pointer to emergency stack */
|
||||
u64 data_offset; /* per cpu data offset */
|
||||
s16 hw_cpu_id; /* Physical processor number */
|
||||
u8 cpu_start; /* At startup, processor spins until */
|
||||
/* this becomes non-zero. */
|
||||
|
||||
@@ -178,7 +178,7 @@ typedef unsigned long pmd_t;
|
||||
#define pmd_val(x) (x)
|
||||
#define __pmd(x) (x)
|
||||
|
||||
#ifndef CONFIG_PPC_64K_PAGES
|
||||
#if defined(CONFIG_PPC64) && !defined(CONFIG_PPC_64K_PAGES)
|
||||
typedef unsigned long pud_t;
|
||||
#define pud_val(x) (x)
|
||||
#define __pud(x) (x)
|
||||
|
||||
@@ -10,10 +10,34 @@
|
||||
#define _ASM_POWERPC_PARPORT_H
|
||||
#ifdef __KERNEL__
|
||||
|
||||
static int __devinit parport_pc_find_isa_ports (int autoirq, int autodma);
|
||||
#include <asm/prom.h>
|
||||
|
||||
extern struct parport *parport_pc_probe_port (unsigned long int base,
|
||||
unsigned long int base_hi,
|
||||
int irq, int dma,
|
||||
struct pci_dev *dev);
|
||||
|
||||
static int __devinit parport_pc_find_nonpci_ports (int autoirq, int autodma)
|
||||
{
|
||||
return parport_pc_find_isa_ports (autoirq, autodma);
|
||||
struct device_node *np;
|
||||
u32 *prop;
|
||||
u32 io1, io2;
|
||||
int propsize;
|
||||
int count = 0;
|
||||
for (np = NULL; (np = of_find_compatible_node(np,
|
||||
"parallel",
|
||||
"pnpPNP,400")) != NULL;) {
|
||||
prop = (u32 *)get_property(np, "reg", &propsize);
|
||||
if (!prop || propsize > 6*sizeof(u32))
|
||||
continue;
|
||||
io1 = prop[1]; io2 = prop[2];
|
||||
prop = (u32 *)get_property(np, "interrupts", NULL);
|
||||
if (!prop)
|
||||
continue;
|
||||
if (parport_pc_probe_port(io1, io2, prop[0], autodma, NULL) != NULL)
|
||||
count++;
|
||||
}
|
||||
return count;
|
||||
}
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
|
||||
@@ -1 +1,57 @@
|
||||
#ifndef _ASM_POWERPC_PERCPU_H_
|
||||
#define _ASM_POWERPC_PERCPU_H_
|
||||
#ifdef __powerpc64__
|
||||
#include <linux/compiler.h>
|
||||
|
||||
/*
|
||||
* Same as asm-generic/percpu.h, except that we store the per cpu offset
|
||||
* in the paca. Based on the x86-64 implementation.
|
||||
*/
|
||||
|
||||
#ifdef CONFIG_SMP
|
||||
|
||||
#include <asm/paca.h>
|
||||
|
||||
#define __per_cpu_offset(cpu) (paca[cpu].data_offset)
|
||||
#define __my_cpu_offset() get_paca()->data_offset
|
||||
|
||||
/* Separate out the type, so (int[3], foo) works. */
|
||||
#define DEFINE_PER_CPU(type, name) \
|
||||
__attribute__((__section__(".data.percpu"))) __typeof__(type) per_cpu__##name
|
||||
|
||||
/* var is in discarded region: offset to particular copy we want */
|
||||
#define per_cpu(var, cpu) (*RELOC_HIDE(&per_cpu__##var, __per_cpu_offset(cpu)))
|
||||
#define __get_cpu_var(var) (*RELOC_HIDE(&per_cpu__##var, __my_cpu_offset()))
|
||||
|
||||
/* A macro to avoid #include hell... */
|
||||
#define percpu_modcopy(pcpudst, src, size) \
|
||||
do { \
|
||||
unsigned int __i; \
|
||||
for (__i = 0; __i < NR_CPUS; __i++) \
|
||||
if (cpu_possible(__i)) \
|
||||
memcpy((pcpudst)+__per_cpu_offset(__i), \
|
||||
(src), (size)); \
|
||||
} while (0)
|
||||
|
||||
extern void setup_per_cpu_areas(void);
|
||||
|
||||
#else /* ! SMP */
|
||||
|
||||
#define DEFINE_PER_CPU(type, name) \
|
||||
__typeof__(type) per_cpu__##name
|
||||
|
||||
#define per_cpu(var, cpu) (*((void)(cpu), &per_cpu__##var))
|
||||
#define __get_cpu_var(var) per_cpu__##var
|
||||
|
||||
#endif /* SMP */
|
||||
|
||||
#define DECLARE_PER_CPU(type, name) extern __typeof__(type) per_cpu__##name
|
||||
|
||||
#define EXPORT_PER_CPU_SYMBOL(var) EXPORT_SYMBOL(per_cpu__##var)
|
||||
#define EXPORT_PER_CPU_SYMBOL_GPL(var) EXPORT_SYMBOL_GPL(per_cpu__##var)
|
||||
|
||||
#else
|
||||
#include <asm-generic/percpu.h>
|
||||
#endif
|
||||
|
||||
#endif /* _ASM_POWERPC_PERCPU_H_ */
|
||||
|
||||
@@ -161,7 +161,6 @@ extern struct rtas_t rtas;
|
||||
extern void enter_rtas(unsigned long);
|
||||
extern int rtas_token(const char *service);
|
||||
extern int rtas_call(int token, int, int, int *, ...);
|
||||
extern void call_rtas_display_status(unsigned char);
|
||||
extern void rtas_restart(char *cmd);
|
||||
extern void rtas_power_off(void);
|
||||
extern void rtas_halt(void);
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* c 2001 PPC 64 Team, IBM Corp
|
||||
* (c) 2001, 2006 IBM Corporation.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
@@ -36,5 +36,12 @@ extern void udbg_scc_init(int force_scc);
|
||||
extern int udbg_adb_init(int force_btext);
|
||||
extern void udbg_adb_init_early(void);
|
||||
|
||||
extern void __init udbg_early_init(void);
|
||||
extern void __init udbg_init_debug_lpar(void);
|
||||
extern void __init udbg_init_pmac_realmode(void);
|
||||
extern void __init udbg_init_maple_realmode(void);
|
||||
extern void __init udbg_init_iseries(void);
|
||||
extern void __init udbg_init_rtas(void);
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
#endif /* _ASM_POWERPC_UDBG_H */
|
||||
|
||||
Reference in New Issue
Block a user