diff options
Diffstat (limited to 'arch/arm/kernel')
| -rw-r--r-- | arch/arm/kernel/bios32.c | 18 | ||||
| -rw-r--r-- | arch/arm/kernel/etm.c | 4 | ||||
| -rw-r--r-- | arch/arm/kernel/irq.c | 10 | ||||
| -rw-r--r-- | arch/arm/kernel/perf_event_cpu.c | 10 | ||||
| -rw-r--r-- | arch/arm/kernel/perf_event_v6.c | 4 | ||||
| -rw-r--r-- | arch/arm/kernel/perf_event_v7.c | 12 | ||||
| -rw-r--r-- | arch/arm/kernel/perf_event_xscale.c | 4 | ||||
| -rw-r--r-- | arch/arm/kernel/smp.c | 3 | ||||
| -rw-r--r-- | arch/arm/kernel/smp_twd.c | 1 | ||||
| -rw-r--r-- | arch/arm/kernel/time.c | 53 | 
10 files changed, 38 insertions, 81 deletions
diff --git a/arch/arm/kernel/bios32.c b/arch/arm/kernel/bios32.c index 9b722612553..379cf329239 100644 --- a/arch/arm/kernel/bios32.c +++ b/arch/arm/kernel/bios32.c @@ -78,7 +78,7 @@ void pcibios_report_status(u_int status_mask, int warn)   * Bug 3 is responsible for the sound DMA grinding to a halt.  We now   * live with bug 2.   */ -static void __devinit pci_fixup_83c553(struct pci_dev *dev) +static void pci_fixup_83c553(struct pci_dev *dev)  {  	/*  	 * Set memory region to start at address 0, and enable IO @@ -130,7 +130,7 @@ static void __devinit pci_fixup_83c553(struct pci_dev *dev)  }  DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_WINBOND, PCI_DEVICE_ID_WINBOND_83C553, pci_fixup_83c553); -static void __devinit pci_fixup_unassign(struct pci_dev *dev) +static void pci_fixup_unassign(struct pci_dev *dev)  {  	dev->resource[0].end -= dev->resource[0].start;  	dev->resource[0].start = 0; @@ -142,7 +142,7 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_WINBOND2, PCI_DEVICE_ID_WINBOND2_89C940F,   * if it is the host bridge by marking it as such.  These resources are of   * no consequence to the PCI layer (they are handled elsewhere).   */ -static void __devinit pci_fixup_dec21285(struct pci_dev *dev) +static void pci_fixup_dec21285(struct pci_dev *dev)  {  	int i; @@ -161,7 +161,7 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_DEC, PCI_DEVICE_ID_DEC_21285, pci_fixup_d  /*   * PCI IDE controllers use non-standard I/O port decoding, respect it.   */ -static void __devinit pci_fixup_ide_bases(struct pci_dev *dev) +static void pci_fixup_ide_bases(struct pci_dev *dev)  {  	struct resource *r;  	int i; @@ -182,7 +182,7 @@ DECLARE_PCI_FIXUP_HEADER(PCI_ANY_ID, PCI_ANY_ID, pci_fixup_ide_bases);  /*   * Put the DEC21142 to sleep   */ -static void __devinit pci_fixup_dec21142(struct pci_dev *dev) +static void pci_fixup_dec21142(struct pci_dev *dev)  {  	pci_write_config_dword(dev, 0x40, 0x80000000);  } @@ -204,7 +204,7 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_DEC, PCI_DEVICE_ID_DEC_21142, pci_fixup_d   * functional.  However, The CY82C693U _does not work_ in bus   * master mode without locking the PCI bus solid.   */ -static void __devinit pci_fixup_cy82c693(struct pci_dev *dev) +static void pci_fixup_cy82c693(struct pci_dev *dev)  {  	if ((dev->class >> 8) == PCI_CLASS_STORAGE_IDE) {  		u32 base0, base1; @@ -254,7 +254,7 @@ static void __devinit pci_fixup_cy82c693(struct pci_dev *dev)  }  DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_CONTAQ, PCI_DEVICE_ID_CONTAQ_82C693, pci_fixup_cy82c693); -static void __devinit pci_fixup_it8152(struct pci_dev *dev) +static void pci_fixup_it8152(struct pci_dev *dev)  {  	int i;  	/* fixup for ITE 8152 devices */ @@ -361,9 +361,7 @@ void pcibios_fixup_bus(struct pci_bus *bus)  	printk(KERN_INFO "PCI: bus%d: Fast back to back transfers %sabled\n",  		bus->number, (features & PCI_COMMAND_FAST_BACK) ? "en" : "dis");  } -#ifdef CONFIG_HOTPLUG  EXPORT_SYMBOL(pcibios_fixup_bus); -#endif  /*   * Swizzle the device pin each time we cross a bridge.  If a platform does @@ -380,7 +378,7 @@ EXPORT_SYMBOL(pcibios_fixup_bus);   * PCI standard swizzle is implemented on plug-in cards and Cardbus based   * PCI extenders, so it can not be ignored.   */ -static u8 __devinit pcibios_swizzle(struct pci_dev *dev, u8 *pin) +static u8 pcibios_swizzle(struct pci_dev *dev, u8 *pin)  {  	struct pci_sys_data *sys = dev->sysdata;  	int slot, oldpin = *pin; diff --git a/arch/arm/kernel/etm.c b/arch/arm/kernel/etm.c index 36d20bd5012..9b6de8c988f 100644 --- a/arch/arm/kernel/etm.c +++ b/arch/arm/kernel/etm.c @@ -339,7 +339,7 @@ static struct miscdevice etb_miscdev = {  	.fops = &etb_fops,  }; -static int __devinit etb_probe(struct amba_device *dev, const struct amba_id *id) +static int etb_probe(struct amba_device *dev, const struct amba_id *id)  {  	struct tracectx *t = &tracer;  	int ret = 0; @@ -531,7 +531,7 @@ static ssize_t trace_mode_store(struct kobject *kobj,  static struct kobj_attribute trace_mode_attr =  	__ATTR(trace_mode, 0644, trace_mode_show, trace_mode_store); -static int __devinit etm_probe(struct amba_device *dev, const struct amba_id *id) +static int etm_probe(struct amba_device *dev, const struct amba_id *id)  {  	struct tracectx *t = &tracer;  	int ret = 0; diff --git a/arch/arm/kernel/irq.c b/arch/arm/kernel/irq.c index 896165096d6..8e4ef4c83a7 100644 --- a/arch/arm/kernel/irq.c +++ b/arch/arm/kernel/irq.c @@ -117,6 +117,16 @@ void __init init_IRQ(void)  	machine_desc->init_irq();  } +#ifdef CONFIG_MULTI_IRQ_HANDLER +void __init set_handle_irq(void (*handle_irq)(struct pt_regs *)) +{ +	if (handle_arch_irq) +		return; + +	handle_arch_irq = handle_irq; +} +#endif +  #ifdef CONFIG_SPARSE_IRQ  int __init arch_probe_nr_irqs(void)  { diff --git a/arch/arm/kernel/perf_event_cpu.c b/arch/arm/kernel/perf_event_cpu.c index 9a4f6307a01..5f6620684e2 100644 --- a/arch/arm/kernel/perf_event_cpu.c +++ b/arch/arm/kernel/perf_event_cpu.c @@ -132,7 +132,7 @@ static int cpu_pmu_request_irq(struct arm_pmu *cpu_pmu, irq_handler_t handler)  	return 0;  } -static void __devinit cpu_pmu_init(struct arm_pmu *cpu_pmu) +static void cpu_pmu_init(struct arm_pmu *cpu_pmu)  {  	int cpu;  	for_each_possible_cpu(cpu) { @@ -178,7 +178,7 @@ static struct notifier_block __cpuinitdata cpu_pmu_hotplug_notifier = {  /*   * PMU platform driver and devicetree bindings.   */ -static struct of_device_id __devinitdata cpu_pmu_of_device_ids[] = { +static struct of_device_id cpu_pmu_of_device_ids[] = {  	{.compatible = "arm,cortex-a15-pmu",	.data = armv7_a15_pmu_init},  	{.compatible = "arm,cortex-a9-pmu",	.data = armv7_a9_pmu_init},  	{.compatible = "arm,cortex-a8-pmu",	.data = armv7_a8_pmu_init}, @@ -190,7 +190,7 @@ static struct of_device_id __devinitdata cpu_pmu_of_device_ids[] = {  	{},  }; -static struct platform_device_id __devinitdata cpu_pmu_plat_device_ids[] = { +static struct platform_device_id cpu_pmu_plat_device_ids[] = {  	{.name = "arm-pmu"},  	{},  }; @@ -198,7 +198,7 @@ static struct platform_device_id __devinitdata cpu_pmu_plat_device_ids[] = {  /*   * CPU PMU identification and probing.   */ -static int __devinit probe_current_pmu(struct arm_pmu *pmu) +static int probe_current_pmu(struct arm_pmu *pmu)  {  	int cpu = get_cpu();  	unsigned long cpuid = read_cpuid_id(); @@ -252,7 +252,7 @@ static int __devinit probe_current_pmu(struct arm_pmu *pmu)  	return ret;  } -static int __devinit cpu_pmu_device_probe(struct platform_device *pdev) +static int cpu_pmu_device_probe(struct platform_device *pdev)  {  	const struct of_device_id *of_id;  	int (*init_fn)(struct arm_pmu *); diff --git a/arch/arm/kernel/perf_event_v6.c b/arch/arm/kernel/perf_event_v6.c index f3e22ff8b6a..041d0526a28 100644 --- a/arch/arm/kernel/perf_event_v6.c +++ b/arch/arm/kernel/perf_event_v6.c @@ -653,7 +653,7 @@ static int armv6_map_event(struct perf_event *event)  				&armv6_perf_cache_map, 0xFF);  } -static int __devinit armv6pmu_init(struct arm_pmu *cpu_pmu) +static int armv6pmu_init(struct arm_pmu *cpu_pmu)  {  	cpu_pmu->name		= "v6";  	cpu_pmu->handle_irq	= armv6pmu_handle_irq; @@ -685,7 +685,7 @@ static int armv6mpcore_map_event(struct perf_event *event)  				&armv6mpcore_perf_cache_map, 0xFF);  } -static int __devinit armv6mpcore_pmu_init(struct arm_pmu *cpu_pmu) +static int armv6mpcore_pmu_init(struct arm_pmu *cpu_pmu)  {  	cpu_pmu->name		= "v6mpcore";  	cpu_pmu->handle_irq	= armv6pmu_handle_irq; diff --git a/arch/arm/kernel/perf_event_v7.c b/arch/arm/kernel/perf_event_v7.c index 7d0cce85d17..4fbc757d9cf 100644 --- a/arch/arm/kernel/perf_event_v7.c +++ b/arch/arm/kernel/perf_event_v7.c @@ -1226,7 +1226,7 @@ static void armv7pmu_init(struct arm_pmu *cpu_pmu)  	cpu_pmu->max_period	= (1LLU << 32) - 1;  }; -static u32 __devinit armv7_read_num_pmnc_events(void) +static u32 armv7_read_num_pmnc_events(void)  {  	u32 nb_cnt; @@ -1237,7 +1237,7 @@ static u32 __devinit armv7_read_num_pmnc_events(void)  	return nb_cnt + 1;  } -static int __devinit armv7_a8_pmu_init(struct arm_pmu *cpu_pmu) +static int armv7_a8_pmu_init(struct arm_pmu *cpu_pmu)  {  	armv7pmu_init(cpu_pmu);  	cpu_pmu->name		= "ARMv7 Cortex-A8"; @@ -1246,7 +1246,7 @@ static int __devinit armv7_a8_pmu_init(struct arm_pmu *cpu_pmu)  	return 0;  } -static int __devinit armv7_a9_pmu_init(struct arm_pmu *cpu_pmu) +static int armv7_a9_pmu_init(struct arm_pmu *cpu_pmu)  {  	armv7pmu_init(cpu_pmu);  	cpu_pmu->name		= "ARMv7 Cortex-A9"; @@ -1255,7 +1255,7 @@ static int __devinit armv7_a9_pmu_init(struct arm_pmu *cpu_pmu)  	return 0;  } -static int __devinit armv7_a5_pmu_init(struct arm_pmu *cpu_pmu) +static int armv7_a5_pmu_init(struct arm_pmu *cpu_pmu)  {  	armv7pmu_init(cpu_pmu);  	cpu_pmu->name		= "ARMv7 Cortex-A5"; @@ -1264,7 +1264,7 @@ static int __devinit armv7_a5_pmu_init(struct arm_pmu *cpu_pmu)  	return 0;  } -static int __devinit armv7_a15_pmu_init(struct arm_pmu *cpu_pmu) +static int armv7_a15_pmu_init(struct arm_pmu *cpu_pmu)  {  	armv7pmu_init(cpu_pmu);  	cpu_pmu->name		= "ARMv7 Cortex-A15"; @@ -1274,7 +1274,7 @@ static int __devinit armv7_a15_pmu_init(struct arm_pmu *cpu_pmu)  	return 0;  } -static int __devinit armv7_a7_pmu_init(struct arm_pmu *cpu_pmu) +static int armv7_a7_pmu_init(struct arm_pmu *cpu_pmu)  {  	armv7pmu_init(cpu_pmu);  	cpu_pmu->name		= "ARMv7 Cortex-A7"; diff --git a/arch/arm/kernel/perf_event_xscale.c b/arch/arm/kernel/perf_event_xscale.c index 0c8265e53d5..2b0fe30ec12 100644 --- a/arch/arm/kernel/perf_event_xscale.c +++ b/arch/arm/kernel/perf_event_xscale.c @@ -440,7 +440,7 @@ static int xscale_map_event(struct perf_event *event)  				&xscale_perf_cache_map, 0xFF);  } -static int __devinit xscale1pmu_init(struct arm_pmu *cpu_pmu) +static int xscale1pmu_init(struct arm_pmu *cpu_pmu)  {  	cpu_pmu->name		= "xscale1";  	cpu_pmu->handle_irq	= xscale1pmu_handle_irq; @@ -810,7 +810,7 @@ static inline void xscale2pmu_write_counter(struct perf_event *event, u32 val)  	}  } -static int __devinit xscale2pmu_init(struct arm_pmu *cpu_pmu) +static int xscale2pmu_init(struct arm_pmu *cpu_pmu)  {  	cpu_pmu->name		= "xscale2";  	cpu_pmu->handle_irq	= xscale2pmu_handle_irq; diff --git a/arch/arm/kernel/smp.c b/arch/arm/kernel/smp.c index 84f4cbf652e..3fc96db2a4b 100644 --- a/arch/arm/kernel/smp.c +++ b/arch/arm/kernel/smp.c @@ -416,7 +416,8 @@ static void (*smp_cross_call)(const struct cpumask *, unsigned int);  void __init set_smp_cross_call(void (*fn)(const struct cpumask *, unsigned int))  { -	smp_cross_call = fn; +	if (!smp_cross_call) +		smp_cross_call = fn;  }  void arch_send_call_function_ipi_mask(const struct cpumask *mask) diff --git a/arch/arm/kernel/smp_twd.c b/arch/arm/kernel/smp_twd.c index 49f335d301b..dc9bb014666 100644 --- a/arch/arm/kernel/smp_twd.c +++ b/arch/arm/kernel/smp_twd.c @@ -24,7 +24,6 @@  #include <asm/smp_twd.h>  #include <asm/localtimer.h> -#include <asm/hardware/gic.h>  /* set up by the platform code */  static void __iomem *twd_base; diff --git a/arch/arm/kernel/time.c b/arch/arm/kernel/time.c index 09be0c3c906..955d92d265e 100644 --- a/arch/arm/kernel/time.c +++ b/arch/arm/kernel/time.c @@ -21,7 +21,6 @@  #include <linux/timex.h>  #include <linux/errno.h>  #include <linux/profile.h> -#include <linux/syscore_ops.h>  #include <linux/timer.h>  #include <linux/irq.h> @@ -31,11 +30,6 @@  #include <asm/mach/arch.h>  #include <asm/mach/time.h> -/* - * Our system timer. - */ -static struct sys_timer *system_timer; -  #if defined(CONFIG_RTC_DRV_CMOS) || defined(CONFIG_RTC_DRV_CMOS_MODULE) || \      defined(CONFIG_NVRAM) || defined(CONFIG_NVRAM_MODULE)  /* this needs a better home */ @@ -69,16 +63,6 @@ unsigned long profile_pc(struct pt_regs *regs)  EXPORT_SYMBOL(profile_pc);  #endif -#ifdef CONFIG_ARCH_USES_GETTIMEOFFSET -u32 arch_gettimeoffset(void) -{ -	if (system_timer->offset != NULL) -		return system_timer->offset() * 1000; - -	return 0; -} -#endif /* CONFIG_ARCH_USES_GETTIMEOFFSET */ -  #ifndef CONFIG_GENERIC_CLOCKEVENTS  /*   * Kernel system timer support. @@ -129,43 +113,8 @@ int __init register_persistent_clock(clock_access_fn read_boot,  	return -EINVAL;  } -#if defined(CONFIG_PM) && !defined(CONFIG_GENERIC_CLOCKEVENTS) -static int timer_suspend(void) -{ -	if (system_timer->suspend) -		system_timer->suspend(); - -	return 0; -} - -static void timer_resume(void) -{ -	if (system_timer->resume) -		system_timer->resume(); -} -#else -#define timer_suspend NULL -#define timer_resume NULL -#endif - -static struct syscore_ops timer_syscore_ops = { -	.suspend	= timer_suspend, -	.resume		= timer_resume, -}; - -static int __init timer_init_syscore_ops(void) -{ -	register_syscore_ops(&timer_syscore_ops); - -	return 0; -} - -device_initcall(timer_init_syscore_ops); -  void __init time_init(void)  { -	system_timer = machine_desc->timer; -	system_timer->init(); +	machine_desc->init_time();  	sched_clock_postinit();  } -  |