From: Linus Torvalds Date: Tue, 7 May 2013 18:28:42 +0000 (-0700) Subject: Merge tag 'multiplatform-for-linus-2' of git://git.kernel.org/pub/scm/linux/kernel... X-Git-Tag: v3.12-rc1~869 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=bb9055b2744ada735a2fe555c4196ad39a83ef2a;p=kernel%2Fkernel-generic.git Merge tag 'multiplatform-for-linus-2' of git://git./linux/kernel/git/arm/arm-soc Pull late ARM Exynos multiplatform changes from Arnd Bergmann: "These continue the multiplatform support for exynos, adding support for building most of the essential drivers (clocksource, clk, irqchip) when combined with other platforms. As a result, it should become really easy to add full multiplatform exynos support in 3.11, although we don't yet enable it for 3.10. The changes were not included in the earlier multiplatform series in order to avoid clashes with the other Exynos updates. This also includes work from Tomasz Figa to fix the pwm clocksource code on Exynos, which is not strictly required for multiplatform, but related to the other patches in this set and needed as a bug fix for at least one board." * tag 'multiplatform-for-linus-2' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (22 commits) ARM: dts: exynops4210: really add universal_c210 dts ARM: dts: exynos4210: Add basic dts file for universal_c210 board ARM: dts: exynos4: Add node for PWM device ARM: SAMSUNG: Do not register legacy timer interrupts on Exynos clocksource: samsung_pwm_timer: Work around rounding errors in clockevents core clocksource: samsung_pwm_timer: Correct programming of clock events clocksource: samsung_pwm_timer: Use proper clockevents max_delta clocksource: samsung_pwm_timer: Add support for non-DT platforms clocksource: samsung_pwm_timer: Drop unused samsung_pwm struct clocksource: samsung_pwm_timer: Keep all driver data in a structure clocksource: samsung_pwm_timer: Make PWM spinlock global clocksource: samsung_pwm_timer: Let platforms select the driver Documentation: Add device tree bindings for Samsung PWM timers clocksource: add samsung pwm timer driver irqchip: exynos: look up irq using irq_find_mapping irqchip: exynos: pass irq_base from platform irqchip: exynos: localize irq lookup for ATAGS irqchip: exynos: allocate combiner_data dynamically irqchip: exynos: pass max combiner number to combiner_init ARM: exynos: add missing properties for combiner IRQs ... --- bb9055b2744ada735a2fe555c4196ad39a83ef2a diff --cc arch/arm/mach-exynos/common.c index d126f26,4bc1c49..745e304 --- a/arch/arm/mach-exynos/common.c +++ b/arch/arm/mach-exynos/common.c @@@ -473,16 -447,8 +486,10 @@@ void __init exynos4_init_irq(void #endif if (!of_have_populated_dt()) - combiner_init(S5P_VA_COMBINER_BASE, NULL); - - /* - * The parameters of s5p_init_irq() are for VIC init. - * Theses parameters should be NULL and 0 because EXYNOS4 - * uses GIC instead of VIC. - */ - s5p_init_irq(NULL, 0); + combiner_init(S5P_VA_COMBINER_BASE, NULL, + max_combiner_nr(), COMBINER_IRQ(0, 0)); + + gic_arch_extn.irq_set_wake = s3c_irq_wake; } void __init exynos5_init_irq(void) diff --cc arch/arm/mach-exynos/common.h index b17448c,3e72d03..60dd35c --- a/arch/arm/mach-exynos/common.h +++ b/arch/arm/mach-exynos/common.h @@@ -27,11 -27,9 +27,11 @@@ void exynos5_restart(char mode, const c void exynos_init_late(void); /* ToDo: remove these after migrating legacy exynos4 platforms to dt */ - void exynos4_clk_init(struct device_node *np); + void exynos4_clk_init(struct device_node *np, int is_exynos4210, void __iomem *reg_base, unsigned long xom); void exynos4_clk_register_fixed_ext(unsigned long, unsigned long); +void exynos_firmware_init(void); + #ifdef CONFIG_PM_GENERIC_DOMAINS int exynos_pm_late_initcall(void); #else diff --cc drivers/clocksource/Makefile index caacdb6,2289f0c..8d979c7 --- a/drivers/clocksource/Makefile +++ b/drivers/clocksource/Makefile @@@ -16,15 -16,12 +16,16 @@@ obj-$(CONFIG_CLKSRC_NOMADIK_MTU) += nom obj-$(CONFIG_CLKSRC_DBX500_PRCMU) += clksrc-dbx500-prcmu.o obj-$(CONFIG_ARMADA_370_XP_TIMER) += time-armada-370-xp.o obj-$(CONFIG_ARCH_BCM2835) += bcm2835_timer.o -obj-$(CONFIG_SUNXI_TIMER) += sunxi_timer.o +obj-$(CONFIG_ARCH_MARCO) += timer-marco.o +obj-$(CONFIG_ARCH_MXS) += mxs_timer.o +obj-$(CONFIG_ARCH_PRIMA2) += timer-prima2.o +obj-$(CONFIG_SUN4I_TIMER) += sun4i_timer.o obj-$(CONFIG_ARCH_TEGRA) += tegra20_timer.o obj-$(CONFIG_VT8500_TIMER) += vt8500_timer.o +obj-$(CONFIG_ARCH_BCM) += bcm_kona_timer.o obj-$(CONFIG_CADENCE_TTC_TIMER) += cadence_ttc_timer.o obj-$(CONFIG_CLKSRC_EXYNOS_MCT) += exynos_mct.o + obj-$(CONFIG_CLKSRC_SAMSUNG_PWM) += samsung_pwm_timer.o obj-$(CONFIG_ARM_ARCH_TIMER) += arm_arch_timer.o obj-$(CONFIG_CLKSRC_METAG_GENERIC) += metag_generic.o diff --cc drivers/clocksource/exynos_mct.c index 13a9e49,a6ca0fb..662fcc0 --- a/drivers/clocksource/exynos_mct.c +++ b/drivers/clocksource/exynos_mct.c @@@ -24,12 -24,8 +24,7 @@@ #include #include -#include #include - - #include - - #include - #include #include #define EXYNOS4_MCTREG(x) (x) diff --cc drivers/irqchip/exynos-combiner.c index 02492ab,494c2e2..a9d2b2f --- a/drivers/irqchip/exynos-combiner.c +++ b/drivers/irqchip/exynos-combiner.c @@@ -12,8 -12,8 +12,9 @@@ #include #include #include + #include #include +#include #include #include #include