From: Stephen Rothwell Date: Wed, 20 Feb 2013 05:10:13 +0000 (+1100) Subject: Merge remote-tracking branch 'arm-soc/for-next' X-Git-Tag: next-20130220~18 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=d5246aa48b43c4788b7ddae44e58e3f5b4b6f90a;p=karo-tx-linux.git Merge remote-tracking branch 'arm-soc/for-next' Conflicts: arch/arm/mach-omap2/board-3430sdp.c arch/arm/mach-omap2/board-zoom-peripherals.c arch/arm/mach-s3c64xx/dma.c arch/arm/mach-shmobile/setup-r8a7740.c arch/arm/mach-shmobile/setup-sh73a0.c arch/arm/mach-spear13xx/spear1340.c arch/arm/mach-spear3xx/spear3xx.c arch/arm/mach-spear6xx/spear6xx.c arch/arm/mach-zynq/common.c drivers/clk/Makefile drivers/clocksource/Kconfig drivers/clocksource/Makefile drivers/crypto/omap-sham.c drivers/input/keyboard/tegra-kbc.c drivers/irqchip/Makefile drivers/mfd/db8500-prcmu.c drivers/mmc/card/block.c drivers/mmc/core/core.c drivers/mmc/core/sdio.c drivers/mmc/host/sdhci-bcm2835.c drivers/mmc/host/sdhci-esdhc-imx.c drivers/mmc/host/sdhci-pxav3.c drivers/mmc/host/sh_mmcif.c drivers/pinctrl/pinctrl-nomadik.c include/linux/mmc/host.h --- d5246aa48b43c4788b7ddae44e58e3f5b4b6f90a diff --cc arch/arm/mach-omap2/board-3430sdp.c index 8a2e242910eb,77d6146275fd..ce812decfaca --- a/arch/arm/mach-omap2/board-3430sdp.c +++ b/arch/arm/mach-omap2/board-3430sdp.c @@@ -25,7 -25,7 +25,8 @@@ #include #include #include + #include +#include #include #include diff --cc arch/arm/mach-omap2/board-4430sdp.c index 8e8efccf762f,79ad5c27d1c8..a7aad0c03552 --- a/arch/arm/mach-omap2/board-4430sdp.c +++ b/arch/arm/mach-omap2/board-4430sdp.c @@@ -24,13 -24,14 +24,15 @@@ #include #include #include + #include #include #include + #include + #include #include #include +#include - #include #include #include #include diff --cc arch/arm/mach-omap2/board-cm-t35.c index f1172f2f1a7e,2e2c82a20c61..af2bb219e214 --- a/arch/arm/mach-omap2/board-cm-t35.c +++ b/arch/arm/mach-omap2/board-cm-t35.c @@@ -723,9 -722,8 +723,9 @@@ static void __init cm_t3x_common_init(v cm_t35_init_ethernet(); cm_t35_init_led(); cm_t35_init_display(); - omap_twl4030_audio_init("cm-t3x"); + omap_twl4030_audio_init("cm-t3x", NULL); + usb_bind_phy("musb-hdrc.0.auto", 0, "twl4030_usb"); usb_musb_init(NULL); cm_t35_init_usbh(); cm_t35_init_camera(); diff --cc arch/arm/mach-omap2/board-omap4panda.c index 40184cc494f9,824cdffb129f..b02c2f00609b --- a/arch/arm/mach-omap2/board-omap4panda.c +++ b/arch/arm/mach-omap2/board-omap4panda.c @@@ -30,11 -30,10 +30,11 @@@ #include #include #include +#include #include + #include #include - #include #include #include #include diff --cc arch/arm/mach-omap2/board-rx51-peripherals.c index ef614d2e0b19,07a9ca8eda9f..3a077df6b8df --- a/arch/arm/mach-omap2/board-rx51-peripherals.c +++ b/arch/arm/mach-omap2/board-rx51-peripherals.c @@@ -160,8 -160,9 +160,9 @@@ static struct tsl2563_platform_data rx5 #endif #if defined(CONFIG_LEDS_LP5523) || defined(CONFIG_LEDS_LP5523_MODULE) -static struct lp5523_led_config rx51_lp5523_led_config[] = { +static struct lp55xx_led_config rx51_lp5523_led_config[] = { { + .name = "lp5523:kb1", .chan_nr = 0, .led_current = 50, }, { diff --cc arch/arm/mach-omap2/board-zoom-peripherals.c index dc5498b1b3a7,0745bd93f398..cdc0c1021863 --- a/arch/arm/mach-omap2/board-zoom-peripherals.c +++ b/arch/arm/mach-omap2/board-zoom-peripherals.c @@@ -20,7 -20,7 +20,8 @@@ #include #include #include + #include +#include #include #include diff --cc arch/arm/mach-s3c64xx/dma.c index a77f5214bbe8,ec29b35f25c0..6af1aa1ef213 --- a/arch/arm/mach-s3c64xx/dma.c +++ b/arch/arm/mach-s3c64xx/dma.c @@@ -29,8 -28,9 +29,7 @@@ #include #include - #include -#include -- + #include "regs-sys.h" /* dma channel state information */ diff --cc arch/arm/mach-shmobile/setup-r8a7740.c index b85bea517d9b,30ac79c7c687..4246c3881f35 --- a/arch/arm/mach-shmobile/setup-r8a7740.c +++ b/arch/arm/mach-shmobile/setup-r8a7740.c @@@ -27,8 -27,6 +27,7 @@@ #include #include #include - #include +#include #include #include #include @@@ -263,37 -287,97 +288,128 @@@ static struct platform_device cmt10_dev .num_resources = ARRAY_SIZE(cmt10_resources), }; +/* IPMMUI (an IPMMU module for ICB/LMB) */ +static struct resource ipmmu_resources[] = { + [0] = { + .name = "IPMMUI", + .start = 0xfe951000, + .end = 0xfe9510ff, + .flags = IORESOURCE_MEM, + }, +}; + +static const char * const ipmmu_dev_names[] = { + "sh_mobile_lcdc_fb.0", + "sh_mobile_lcdc_fb.1", + "sh_mobile_ceu.0", +}; + +static struct shmobile_ipmmu_platform_data ipmmu_platform_data = { + .dev_names = ipmmu_dev_names, + .num_dev_names = ARRAY_SIZE(ipmmu_dev_names), +}; + +static struct platform_device ipmmu_device = { + .name = "ipmmu", + .id = -1, + .dev = { + .platform_data = &ipmmu_platform_data, + }, + .resource = ipmmu_resources, + .num_resources = ARRAY_SIZE(ipmmu_resources), +}; + + /* TMU */ + static struct sh_timer_config tmu00_platform_data = { + .name = "TMU00", + .channel_offset = 0x4, + .timer_bit = 0, + .clockevent_rating = 200, + }; + + static struct resource tmu00_resources[] = { + [0] = { + .name = "TMU00", + .start = 0xfff80008, + .end = 0xfff80014 - 1, + .flags = IORESOURCE_MEM, + }, + [1] = { + .start = intcs_evt2irq(0xe80), + .flags = IORESOURCE_IRQ, + }, + }; + + static struct platform_device tmu00_device = { + .name = "sh_tmu", + .id = 0, + .dev = { + .platform_data = &tmu00_platform_data, + }, + .resource = tmu00_resources, + .num_resources = ARRAY_SIZE(tmu00_resources), + }; + + static struct sh_timer_config tmu01_platform_data = { + .name = "TMU01", + .channel_offset = 0x10, + .timer_bit = 1, + .clocksource_rating = 200, + }; + + static struct resource tmu01_resources[] = { + [0] = { + .name = "TMU01", + .start = 0xfff80014, + .end = 0xfff80020 - 1, + .flags = IORESOURCE_MEM, + }, + [1] = { + .start = intcs_evt2irq(0xea0), + .flags = IORESOURCE_IRQ, + }, + }; + + static struct platform_device tmu01_device = { + .name = "sh_tmu", + .id = 1, + .dev = { + .platform_data = &tmu01_platform_data, + }, + .resource = tmu01_resources, + .num_resources = ARRAY_SIZE(tmu01_resources), + }; + + static struct sh_timer_config tmu02_platform_data = { + .name = "TMU02", + .channel_offset = 0x1C, + .timer_bit = 2, + .clocksource_rating = 200, + }; + + static struct resource tmu02_resources[] = { + [0] = { + .name = "TMU02", + .start = 0xfff80020, + .end = 0xfff8002C - 1, + .flags = IORESOURCE_MEM, + }, + [1] = { + .start = intcs_evt2irq(0xec0), + .flags = IORESOURCE_IRQ, + }, + }; + + static struct platform_device tmu02_device = { + .name = "sh_tmu", + .id = 2, + .dev = { + .platform_data = &tmu02_platform_data, + }, + .resource = tmu02_resources, + .num_resources = ARRAY_SIZE(tmu02_resources), + }; + static struct platform_device *r8a7740_early_devices[] __initdata = { &scif0_device, &scif1_device, @@@ -305,7 -389,9 +421,10 @@@ &scif7_device, &scifb_device, &cmt10_device, + &ipmmu_device, + &tmu00_device, + &tmu01_device, + &tmu02_device, }; /* DMA */ diff --cc arch/arm/mach-shmobile/setup-sh73a0.c index 36c2b2ec2f33,2ecd6681692f..bdab575f88bc --- a/arch/arm/mach-shmobile/setup-sh73a0.c +++ b/arch/arm/mach-shmobile/setup-sh73a0.c @@@ -755,36 -780,7 +781,36 @@@ static struct platform_device pmu_devic .resource = pmu_resources, }; +/* an IPMMU module for ICB */ +static struct resource ipmmu_resources[] = { + [0] = { + .name = "IPMMU", + .start = 0xfe951000, + .end = 0xfe9510ff, + .flags = IORESOURCE_MEM, + }, +}; + +static const char * const ipmmu_dev_names[] = { + "sh_mobile_lcdc_fb.0", +}; + +static struct shmobile_ipmmu_platform_data ipmmu_platform_data = { + .dev_names = ipmmu_dev_names, + .num_dev_names = ARRAY_SIZE(ipmmu_dev_names), +}; + +static struct platform_device ipmmu_device = { + .name = "ipmmu", + .id = -1, + .dev = { + .platform_data = &ipmmu_platform_data, + }, + .resource = ipmmu_resources, + .num_resources = ARRAY_SIZE(ipmmu_resources), +}; + - static struct platform_device *sh73a0_early_devices[] __initdata = { + static struct platform_device *sh73a0_early_devices_dt[] __initdata = { &scif0_device, &scif1_device, &scif2_device, @@@ -795,9 -791,11 +821,12 @@@ &scif7_device, &scif8_device, &cmt10_device, + }; + + static struct platform_device *sh73a0_early_devices[] __initdata = { &tmu00_device, &tmu01_device, + &ipmmu_device, }; static struct platform_device *sh73a0_late_devices[] __initdata = { diff --cc arch/arm/mach-spear13xx/spear1340.c index 69c8f72a9ca2,9a28beb2a113..ba7b50708c81 --- a/arch/arm/mach-spear13xx/spear1340.c +++ b/arch/arm/mach-spear13xx/spear1340.c @@@ -18,9 -18,9 +18,9 @@@ #include #include #include +#include - #include + #include #include -#include #include #include diff --cc arch/arm/mach-spear13xx/spear13xx.c index b074db8b109c,c7d2b4a8d8cc..e55339f209c3 --- a/arch/arm/mach-spear13xx/spear13xx.c +++ b/arch/arm/mach-spear13xx/spear13xx.c @@@ -17,11 -17,11 +17,10 @@@ #include #include #include - #include + #include #include - #include #include #include -#include #include #include diff --cc arch/arm/mach-spear3xx/spear3xx.c index 3d9b1b5e8ed9,b2ba516ca2d4..f9d754f90c59 --- a/arch/arm/mach-spear3xx/spear3xx.c +++ b/arch/arm/mach-spear3xx/spear3xx.c @@@ -15,10 -15,8 +15,7 @@@ #include #include - #include - #include #include - #include -#include #include #include #include diff --cc arch/arm/mach-spear6xx/spear6xx.c index 8ce65a23b06e,b8bd33ca88bd..8904d8a52d84 --- a/arch/arm/mach-spear6xx/spear6xx.c +++ b/arch/arm/mach-spear6xx/spear6xx.c @@@ -16,12 -16,11 +16,11 @@@ #include #include #include + #include #include #include - #include #include -#include +#include - #include #include #include #include diff --cc arch/arm/mach-ux500/cpu-db8500.c index b80ad9610e97,6f42b6087df5..19235cf7bbe3 --- a/arch/arm/mach-ux500/cpu-db8500.c +++ b/arch/arm/mach-ux500/cpu-db8500.c @@@ -284,8 -280,10 +280,10 @@@ static struct of_dev_auxdata u8500_auxd OF_DEV_AUXDATA("st,nomadik-i2c", 0x80128000, "nmk-i2c.2", NULL), OF_DEV_AUXDATA("st,nomadik-i2c", 0x80110000, "nmk-i2c.3", NULL), OF_DEV_AUXDATA("st,nomadik-i2c", 0x8012a000, "nmk-i2c.4", NULL), + OF_DEV_AUXDATA("stericsson,db8500-prcmu", 0x80157000, "db8500-prcmu", + &db8500_prcmu_pdata), /* Requires device name bindings. */ - OF_DEV_AUXDATA("stericsson,nmk_pinctrl", U8500_PRCMU_BASE, + OF_DEV_AUXDATA("stericsson,nmk-pinctrl", U8500_PRCMU_BASE, "pinctrl-db8500", NULL), /* Requires clock name and DMA bindings. */ OF_DEV_AUXDATA("stericsson,ux500-msp-i2s", 0x80123000, diff --cc arch/arm64/Kconfig index 7c43569e3141,2b6cef6ad17f..ab4aa54b36ef --- a/arch/arm64/Kconfig +++ b/arch/arm64/Kconfig @@@ -2,8 -2,8 +2,9 @@@ config ARM6 def_bool y select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE select ARCH_WANT_COMPAT_IPC_PARSE_VERSION + select ARCH_WANT_FRAME_POINTERS select ARM_AMBA + select ARM_ARCH_TIMER select CLONE_BACKWARDS select COMMON_CLK select GENERIC_CLOCKEVENTS diff --cc drivers/clk/Makefile index ee11460a970d,f0b269a2058d..653a409edc2d --- a/drivers/clk/Makefile +++ b/drivers/clk/Makefile @@@ -22,7 -22,7 +22,8 @@@ obj-$(CONFIG_ARCH_U8500) += ux500 obj-$(CONFIG_ARCH_VT8500) += clk-vt8500.o obj-$(CONFIG_ARCH_SUNXI) += clk-sunxi.o obj-$(CONFIG_ARCH_ZYNQ) += clk-zynq.o +obj-$(CONFIG_X86) += x86/ + obj-$(CONFIG_ARCH_TEGRA) += tegra/ # Chip specific obj-$(CONFIG_COMMON_CLK_WM831X) += clk-wm831x.o diff --cc drivers/clocksource/Kconfig index 75bc7520ace5,e920cbe519fa..e507ab7df60b --- a/drivers/clocksource/Kconfig +++ b/drivers/clocksource/Kconfig @@@ -54,12 -60,5 +60,10 @@@ config CLKSRC_DBX500_PRCMU_SCHED_CLOC help Use the always on PRCMU Timer as sched_clock - config CLKSRC_ARM_GENERIC - def_bool y if ARM64 - help - This option enables support for the ARM generic timer. + config ARM_ARCH_TIMER + bool + +config CLKSRC_METAG_GENERIC + def_bool y if METAG + help + This option enables support for the Meta per-thread timers. diff --cc drivers/clocksource/Makefile index 09dcd49b7e31,7d671b85a98e..4d8283aec5b5 --- a/drivers/clocksource/Makefile +++ b/drivers/clocksource/Makefile @@@ -16,6 -17,7 +17,8 @@@ obj-$(CONFIG_CLKSRC_DBX500_PRCMU) += cl 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_TEGRA) += tegra20_timer.o + obj-$(CONFIG_VT8500_TIMER) += vt8500_timer.o - obj-$(CONFIG_CLKSRC_ARM_GENERIC) += arm_generic.o + obj-$(CONFIG_ARM_ARCH_TIMER) += arm_arch_timer.o +obj-$(CONFIG_CLKSRC_METAG_GENERIC) += metag_generic.o diff --cc drivers/cpufreq/exynos4210-cpufreq.c index de91755e2556,a5d0a8184220..add7fbec4fc9 --- a/drivers/cpufreq/exynos4210-cpufreq.c +++ b/drivers/cpufreq/exynos4210-cpufreq.c @@@ -18,8 -18,14 +18,9 @@@ #include #include - #include + + #include "exynos-cpufreq.h" -#define CPUFREQ_LEVEL_END L5 - -static int max_support_idx = L0; -static int min_support_idx = (CPUFREQ_LEVEL_END - 1); - static struct clk *cpu_clk; static struct clk *moutcore; static struct clk *mout_mpll; diff --cc drivers/cpufreq/exynos4x12-cpufreq.c index 0661039e5d4a,63ff74eec521..08b7477b0aa2 --- a/drivers/cpufreq/exynos4x12-cpufreq.c +++ b/drivers/cpufreq/exynos4x12-cpufreq.c @@@ -18,8 -18,14 +18,9 @@@ #include #include - #include + + #include "exynos-cpufreq.h" -#define CPUFREQ_LEVEL_END (L13 + 1) - -static int max_support_idx; -static int min_support_idx = (CPUFREQ_LEVEL_END - 1); - static struct clk *cpu_clk; static struct clk *moutcore; static struct clk *mout_mpll; diff --cc drivers/cpufreq/exynos5250-cpufreq.c index b9344869f822,407126c2d7c6..9fae466d7746 --- a/drivers/cpufreq/exynos5250-cpufreq.c +++ b/drivers/cpufreq/exynos5250-cpufreq.c @@@ -19,8 -19,13 +19,9 @@@ #include #include - #include + + #include "exynos-cpufreq.h" -#define CPUFREQ_LEVEL_END (L15 + 1) - -static int max_support_idx; -static int min_support_idx = (CPUFREQ_LEVEL_END - 1); static struct clk *cpu_clk; static struct clk *moutcore; static struct clk *mout_mpll; diff --cc drivers/input/keyboard/tegra-kbc.c index d89e7d392d1e,54ac1dc7d477..0e138ebcc768 --- a/drivers/input/keyboard/tegra-kbc.c +++ b/drivers/input/keyboard/tegra-kbc.c @@@ -29,16 -29,9 +29,16 @@@ #include #include #include -#include +#include - #include + #include +#define KBC_MAX_GPIO 24 +#define KBC_MAX_KPENT 8 + +#define KBC_MAX_ROW 16 +#define KBC_MAX_COL 8 +#define KBC_MAX_KEY (KBC_MAX_ROW * KBC_MAX_COL) + #define KBC_MAX_DEBOUNCE_CNT 0x3ffu /* KBC row scan time and delay for beginning the row scan. */ diff --cc drivers/irqchip/Makefile index ff02f6b98863,e65fbf2cdf71..06ef5a3385cd --- a/drivers/irqchip/Makefile +++ b/drivers/irqchip/Makefile @@@ -1,6 -1,9 +1,11 @@@ + obj-$(CONFIG_IRQCHIP) += irqchip.o + obj-$(CONFIG_ARCH_BCM2835) += irq-bcm2835.o +obj-$(CONFIG_METAG) += irq-metag-ext.o +obj-$(CONFIG_METAG_PERFCOUNTER_IRQS) += irq-metag.o + obj-$(CONFIG_ARCH_EXYNOS) += exynos-combiner.o obj-$(CONFIG_ARCH_SUNXI) += irq-sunxi.o - obj-$(CONFIG_VERSATILE_FPGA_IRQ) += irq-versatile-fpga.o obj-$(CONFIG_ARCH_SPEAR3XX) += spear-shirq.o + obj-$(CONFIG_ARM_GIC) += irq-gic.o + obj-$(CONFIG_ARM_VIC) += irq-vic.o + obj-$(CONFIG_VERSATILE_FPGA_IRQ) += irq-versatile-fpga.o diff --cc drivers/mfd/db8500-prcmu.c index e42a417adc5f,a2bacf95b59e..21f261bf9e95 --- a/drivers/mfd/db8500-prcmu.c +++ b/drivers/mfd/db8500-prcmu.c @@@ -32,8 -33,6 +33,7 @@@ #include #include #include +#include - #include #include #include #include diff --cc drivers/net/ethernet/ti/davinci_cpdma.c index 68c3418160ba,1abe0964a5ab..ee13dc78430c --- a/drivers/net/ethernet/ti/davinci_cpdma.c +++ b/drivers/net/ethernet/ti/davinci_cpdma.c @@@ -492,11 -473,13 +492,13 @@@ int cpdma_ctlr_int_ctrl(struct cpdma_ct spin_unlock_irqrestore(&ctlr->lock, flags); return 0; } + EXPORT_SYMBOL_GPL(cpdma_ctlr_int_ctrl); -void cpdma_ctlr_eoi(struct cpdma_ctlr *ctlr) +void cpdma_ctlr_eoi(struct cpdma_ctlr *ctlr, u32 value) { - dma_reg_write(ctlr, CPDMA_MACEOIVECTOR, 0); + dma_reg_write(ctlr, CPDMA_MACEOIVECTOR, value); } + EXPORT_SYMBOL_GPL(cpdma_ctlr_eoi); struct cpdma_chan *cpdma_chan_create(struct cpdma_ctlr *ctlr, int chan_num, cpdma_handler_fn handler) diff --cc drivers/pinctrl/pinctrl-nomadik.c index 3c80dd98304b,3197870d740a..36d20293de5c --- a/drivers/pinctrl/pinctrl-nomadik.c +++ b/drivers/pinctrl/pinctrl-nomadik.c @@@ -2103,8 -1845,12 +2103,12 @@@ static struct pinctrl_desc nmk_pinctrl_ }; static const struct of_device_id nmk_pinctrl_match[] = { + { + .compatible = "stericsson,nmk-pinctrl-stn8815", + .data = (void *)PINCTRL_NMK_STN8815, + }, { - .compatible = "stericsson,nmk_pinctrl", + .compatible = "stericsson,nmk-pinctrl", .data = (void *)PINCTRL_NMK_DB8500, }, {}, diff --cc include/uapi/linux/kvm.h index 77eb42d0af42,c70577cf67bc..3c56ba3d80c1 --- a/include/uapi/linux/kvm.h +++ b/include/uapi/linux/kvm.h @@@ -661,9 -636,8 +661,10 @@@ struct kvm_ppc_smmu_info #define KVM_CAP_IRQFD_RESAMPLE 82 #define KVM_CAP_PPC_BOOKE_WATCHDOG 83 #define KVM_CAP_PPC_HTAB_FD 84 +#define KVM_CAP_S390_CSS_SUPPORT 85 +#define KVM_CAP_PPC_EPR 86 #define KVM_CAP_ARM_PSCI 87 + #define KVM_CAP_ARM_SET_DEVICE_ADDR 88 #ifdef KVM_CAP_IRQ_ROUTING