Merge tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc

Pull ARM SoC fixes from Olof Johansson:
"Another week, another batch of fixes for arm-soc platforms.

Nothing controversial here, a handful of fixes for regressions and/or
serious problems across several of the platforms. Things are slowing
down nicely on fix rates for 3.10"

* tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
ARM: exynos: add debug_ll_io_init() call in exynos_init_io()
ARM: EXYNOS: uncompress - print debug messages if DEBUG_LL is defined
ARM: shmobile: sh73a0: Update CMT clockevent rating to 80
sh-pfc: r8a7779: Don't group USB OVC and PENC pins
ARM: mxs: icoll: Fix interrupts gpio bank 0
ARM: imx: clk-imx6q: AXI clock select index is incorrect
ARM: bcm2835: override the HW UART periphid
ARM: mvebu: Fix bug in coherency fabric low level init function
ARM: Kirkwood: TS219: Fix crash by double PCIe instantiation
ARM: ux500: Provide supplies for AUX1, AUX2 and AUX3
ARM: ux500: Only configure wake-up reasons on ux500 based platforms
ARM: dts: imx: fix clocks for cspi
ARM i.MX6q: fix for ldb_di_sels

Changed files
+84 -49
arch
arm
boot
mach-exynos
mach-imx
mach-kirkwood
mach-mvebu
mach-shmobile
mach-ux500
plat-samsung
include
drivers
irqchip
pinctrl
sh-pfc
+1
arch/arm/boot/dts/bcm2835.dtsi
··· 44 44 reg = <0x7e201000 0x1000>; 45 45 interrupts = <2 25>; 46 46 clock-frequency = <3000000>; 47 + arm,primecell-periphid = <0x00241011>; 47 48 }; 48 49 49 50 gpio: gpio {
+6 -6
arch/arm/boot/dts/imx25.dtsi
··· 141 141 #size-cells = <0>; 142 142 compatible = "fsl,imx25-cspi", "fsl,imx35-cspi"; 143 143 reg = <0x43fa4000 0x4000>; 144 - clocks = <&clks 62>; 145 - clock-names = "ipg"; 144 + clocks = <&clks 62>, <&clks 62>; 145 + clock-names = "ipg", "per"; 146 146 interrupts = <14>; 147 147 status = "disabled"; 148 148 }; ··· 182 182 compatible = "fsl,imx25-cspi", "fsl,imx35-cspi"; 183 183 reg = <0x50004000 0x4000>; 184 184 interrupts = <0>; 185 - clocks = <&clks 80>; 186 - clock-names = "ipg"; 185 + clocks = <&clks 80>, <&clks 80>; 186 + clock-names = "ipg", "per"; 187 187 status = "disabled"; 188 188 }; 189 189 ··· 210 210 #size-cells = <0>; 211 211 compatible = "fsl,imx25-cspi", "fsl,imx35-cspi"; 212 212 reg = <0x50010000 0x4000>; 213 - clocks = <&clks 79>; 214 - clock-names = "ipg"; 213 + clocks = <&clks 79>, <&clks 79>; 214 + clock-names = "ipg", "per"; 215 215 interrupts = <13>; 216 216 status = "disabled"; 217 217 };
+3 -3
arch/arm/boot/dts/imx27.dtsi
··· 131 131 compatible = "fsl,imx27-cspi"; 132 132 reg = <0x1000e000 0x1000>; 133 133 interrupts = <16>; 134 - clocks = <&clks 53>, <&clks 0>; 134 + clocks = <&clks 53>, <&clks 53>; 135 135 clock-names = "ipg", "per"; 136 136 status = "disabled"; 137 137 }; ··· 142 142 compatible = "fsl,imx27-cspi"; 143 143 reg = <0x1000f000 0x1000>; 144 144 interrupts = <15>; 145 - clocks = <&clks 52>, <&clks 0>; 145 + clocks = <&clks 52>, <&clks 52>; 146 146 clock-names = "ipg", "per"; 147 147 status = "disabled"; 148 148 }; ··· 223 223 compatible = "fsl,imx27-cspi"; 224 224 reg = <0x10017000 0x1000>; 225 225 interrupts = <6>; 226 - clocks = <&clks 51>, <&clks 0>; 226 + clocks = <&clks 51>, <&clks 51>; 227 227 clock-names = "ipg", "per"; 228 228 status = "disabled"; 229 229 };
+1 -1
arch/arm/boot/dts/imx51.dtsi
··· 631 631 compatible = "fsl,imx51-cspi", "fsl,imx35-cspi"; 632 632 reg = <0x83fc0000 0x4000>; 633 633 interrupts = <38>; 634 - clocks = <&clks 55>, <&clks 0>; 634 + clocks = <&clks 55>, <&clks 55>; 635 635 clock-names = "ipg", "per"; 636 636 status = "disabled"; 637 637 };
+1 -1
arch/arm/boot/dts/imx53.dtsi
··· 714 714 compatible = "fsl,imx53-cspi", "fsl,imx35-cspi"; 715 715 reg = <0x63fc0000 0x4000>; 716 716 interrupts = <38>; 717 - clocks = <&clks 55>, <&clks 0>; 717 + clocks = <&clks 55>, <&clks 55>; 718 718 clock-names = "ipg", "per"; 719 719 status = "disabled"; 720 720 };
+2
arch/arm/mach-exynos/common.c
··· 386 386 387 387 void __init exynos_init_io(struct map_desc *mach_desc, int size) 388 388 { 389 + debug_ll_io_init(); 390 + 389 391 #ifdef CONFIG_OF 390 392 if (initial_boot_params) 391 393 of_scan_flat_dt(exynos_fdt_map_chipid, NULL);
+2 -2
arch/arm/mach-imx/clk-imx6q.c
··· 181 181 static const char *periph2_clk2_sels[] = { "pll3_usb_otg", "pll2_bus", }; 182 182 static const char *periph_sels[] = { "periph_pre", "periph_clk2", }; 183 183 static const char *periph2_sels[] = { "periph2_pre", "periph2_clk2", }; 184 - static const char *axi_sels[] = { "periph", "pll2_pfd2_396m", "pll3_pfd1_540m", }; 184 + static const char *axi_sels[] = { "periph", "pll2_pfd2_396m", "periph", "pll3_pfd1_540m", }; 185 185 static const char *audio_sels[] = { "pll4_post_div", "pll3_pfd2_508m", "pll3_pfd3_454m", "pll3_usb_otg", }; 186 186 static const char *gpu_axi_sels[] = { "axi", "ahb", }; 187 187 static const char *gpu2d_core_sels[] = { "axi", "pll3_usb_otg", "pll2_pfd0_352m", "pll2_pfd2_396m", }; 188 188 static const char *gpu3d_core_sels[] = { "mmdc_ch0_axi", "pll3_usb_otg", "pll2_pfd1_594m", "pll2_pfd2_396m", }; 189 189 static const char *gpu3d_shader_sels[] = { "mmdc_ch0_axi", "pll3_usb_otg", "pll2_pfd1_594m", "pll3_pfd0_720m", }; 190 190 static const char *ipu_sels[] = { "mmdc_ch0_axi", "pll2_pfd2_396m", "pll3_120m", "pll3_pfd1_540m", }; 191 - static const char *ldb_di_sels[] = { "pll5_video", "pll2_pfd0_352m", "pll2_pfd2_396m", "mmdc_ch1_axi", "pll3_usb_otg", }; 191 + static const char *ldb_di_sels[] = { "pll5_video_div", "pll2_pfd0_352m", "pll2_pfd2_396m", "mmdc_ch1_axi", "pll3_usb_otg", }; 192 192 static const char *ipu_di_pre_sels[] = { "mmdc_ch0_axi", "pll3_usb_otg", "pll5_video_div", "pll2_pfd0_352m", "pll2_pfd2_396m", "pll3_pfd1_540m", }; 193 193 static const char *ipu1_di0_sels[] = { "ipu1_di0_pre", "dummy", "dummy", "ldb_di0", "ldb_di1", }; 194 194 static const char *ipu1_di1_sels[] = { "ipu1_di1_pre", "dummy", "dummy", "ldb_di0", "ldb_di1", };
-10
arch/arm/mach-kirkwood/board-ts219.c
··· 41 41 42 42 pm_power_off = qnap_tsx1x_power_off; 43 43 } 44 - 45 - /* FIXME: Will not work with DT. Maybe use MPP40_GPIO? */ 46 - static int __init ts219_pci_init(void) 47 - { 48 - if (machine_is_ts219()) 49 - kirkwood_pcie_init(KW_PCIE0); 50 - 51 - return 0; 52 - } 53 - subsys_initcall(ts219_pci_init);
+11 -5
arch/arm/mach-mvebu/coherency_ll.S
··· 32 32 33 33 /* Add CPU to SMP group - Atomic */ 34 34 add r3, r0, #ARMADA_XP_CFB_CTL_REG_OFFSET 35 - ldr r2, [r3] 35 + 1: 36 + ldrex r2, [r3] 36 37 orr r2, r2, r1 37 - str r2, [r3] 38 + strex r0, r2, [r3] 39 + cmp r0, #0 40 + bne 1b 38 41 39 42 /* Enable coherency on CPU - Atomic */ 40 - add r3, r0, #ARMADA_XP_CFB_CFG_REG_OFFSET 41 - ldr r2, [r3] 43 + add r3, r3, #ARMADA_XP_CFB_CFG_REG_OFFSET 44 + 1: 45 + ldrex r2, [r3] 42 46 orr r2, r2, r1 43 - str r2, [r3] 47 + strex r0, r2, [r3] 48 + cmp r0, #0 49 + bne 1b 44 50 45 51 dsb 46 52
+1 -1
arch/arm/mach-shmobile/setup-sh73a0.c
··· 252 252 .name = "CMT10", 253 253 .channel_offset = 0x10, 254 254 .timer_bit = 0, 255 - .clockevent_rating = 125, 255 + .clockevent_rating = 80, 256 256 .clocksource_rating = 125, 257 257 }; 258 258
+3
arch/arm/mach-ux500/board-mop500-regulators.c
··· 374 374 static struct regulator_init_data ab8500_regulators[AB8500_NUM_REGULATORS] = { 375 375 /* supplies to the display/camera */ 376 376 [AB8500_LDO_AUX1] = { 377 + .supply_regulator = "ab8500-ext-supply3", 377 378 .constraints = { 378 379 .name = "V-DISPLAY", 379 380 .min_uV = 2800000, ··· 388 387 }, 389 388 /* supplies to the on-board eMMC */ 390 389 [AB8500_LDO_AUX2] = { 390 + .supply_regulator = "ab8500-ext-supply3", 391 391 .constraints = { 392 392 .name = "V-eMMC1", 393 393 .min_uV = 1100000, ··· 404 402 }, 405 403 /* supply for VAUX3, supplies to SDcard slots */ 406 404 [AB8500_LDO_AUX3] = { 405 + .supply_regulator = "ab8500-ext-supply3", 407 406 .constraints = { 408 407 .name = "V-MMC-SD", 409 408 .min_uV = 1100000,
+4
arch/arm/mach-ux500/cpuidle.c
··· 21 21 #include <asm/proc-fns.h> 22 22 23 23 #include "db8500-regs.h" 24 + #include "id.h" 24 25 25 26 static atomic_t master = ATOMIC_INIT(0); 26 27 static DEFINE_SPINLOCK(master_lock); ··· 115 114 116 115 int __init ux500_idle_init(void) 117 116 { 117 + if (!(cpu_is_u8500_family() || cpu_is_ux540_family())) 118 + return -ENODEV; 119 + 118 120 /* Configure wake up reasons */ 119 121 prcmu_enable_wakeups(PRCMU_WAKEUP(ARM) | PRCMU_WAKEUP(RTC) | 120 122 PRCMU_WAKEUP(ABB));
+9 -1
arch/arm/plat-samsung/include/plat/uncompress.h
··· 66 66 67 67 static void putc(int ch) 68 68 { 69 + if (!config_enabled(CONFIG_DEBUG_LL)) 70 + return; 71 + 69 72 if (uart_rd(S3C2410_UFCON) & S3C2410_UFCON_FIFOMODE) { 70 73 int level; 71 74 ··· 121 118 #ifdef CONFIG_S3C_BOOT_UART_FORCE_FIFO 122 119 static inline void arch_enable_uart_fifo(void) 123 120 { 124 - u32 fifocon = uart_rd(S3C2410_UFCON); 121 + u32 fifocon; 122 + 123 + if (!config_enabled(CONFIG_DEBUG_LL)) 124 + return; 125 + 126 + fifocon = uart_rd(S3C2410_UFCON); 125 127 126 128 if (!(fifocon & S3C2410_UFCON_FIFOMODE)) { 127 129 fifocon |= S3C2410_UFCON_RESETBOTH;
+4 -10
drivers/irqchip/irq-mxs.c
··· 76 76 { 77 77 u32 irqnr; 78 78 79 - do { 80 - irqnr = __raw_readl(icoll_base + HW_ICOLL_STAT_OFFSET); 81 - if (irqnr != 0x7f) { 82 - __raw_writel(irqnr, icoll_base + HW_ICOLL_VECTOR); 83 - irqnr = irq_find_mapping(icoll_domain, irqnr); 84 - handle_IRQ(irqnr, regs); 85 - continue; 86 - } 87 - break; 88 - } while (1); 79 + irqnr = __raw_readl(icoll_base + HW_ICOLL_STAT_OFFSET); 80 + __raw_writel(irqnr, icoll_base + HW_ICOLL_VECTOR); 81 + irqnr = irq_find_mapping(icoll_domain, irqnr); 82 + handle_IRQ(irqnr, regs); 89 83 } 90 84 91 85 static int icoll_irq_domain_map(struct irq_domain *d, unsigned int virq,
+36 -9
drivers/pinctrl/sh-pfc/pfc-r8a7779.c
··· 2357 2357 }; 2358 2358 /* - USB0 ------------------------------------------------------------------- */ 2359 2359 static const unsigned int usb0_pins[] = { 2360 - /* OVC */ 2361 - 150, 154, 2360 + /* PENC */ 2361 + 154, 2362 2362 }; 2363 2363 static const unsigned int usb0_mux[] = { 2364 - USB_OVC0_MARK, USB_PENC0_MARK, 2364 + USB_PENC0_MARK, 2365 + }; 2366 + static const unsigned int usb0_ovc_pins[] = { 2367 + /* USB_OVC */ 2368 + 150 2369 + }; 2370 + static const unsigned int usb0_ovc_mux[] = { 2371 + USB_OVC0_MARK, 2365 2372 }; 2366 2373 /* - USB1 ------------------------------------------------------------------- */ 2367 2374 static const unsigned int usb1_pins[] = { 2368 - /* OVC */ 2369 - 152, 155, 2375 + /* PENC */ 2376 + 155, 2370 2377 }; 2371 2378 static const unsigned int usb1_mux[] = { 2372 - USB_OVC1_MARK, USB_PENC1_MARK, 2379 + USB_PENC1_MARK, 2380 + }; 2381 + static const unsigned int usb1_ovc_pins[] = { 2382 + /* USB_OVC */ 2383 + 152, 2384 + }; 2385 + static const unsigned int usb1_ovc_mux[] = { 2386 + USB_OVC1_MARK, 2373 2387 }; 2374 2388 /* - USB2 ------------------------------------------------------------------- */ 2375 2389 static const unsigned int usb2_pins[] = { 2376 - /* OVC, PENC */ 2377 - 125, 156, 2390 + /* PENC */ 2391 + 156, 2378 2392 }; 2379 2393 static const unsigned int usb2_mux[] = { 2380 - USB_OVC2_MARK, USB_PENC2_MARK, 2394 + USB_PENC2_MARK, 2395 + }; 2396 + static const unsigned int usb2_ovc_pins[] = { 2397 + /* USB_OVC */ 2398 + 125, 2399 + }; 2400 + static const unsigned int usb2_ovc_mux[] = { 2401 + USB_OVC2_MARK, 2381 2402 }; 2382 2403 2383 2404 static const struct sh_pfc_pin_group pinmux_groups[] = { ··· 2522 2501 SH_PFC_PIN_GROUP(sdhi3_cd), 2523 2502 SH_PFC_PIN_GROUP(sdhi3_wp), 2524 2503 SH_PFC_PIN_GROUP(usb0), 2504 + SH_PFC_PIN_GROUP(usb0_ovc), 2525 2505 SH_PFC_PIN_GROUP(usb1), 2506 + SH_PFC_PIN_GROUP(usb1_ovc), 2526 2507 SH_PFC_PIN_GROUP(usb2), 2508 + SH_PFC_PIN_GROUP(usb2_ovc), 2527 2509 }; 2528 2510 2529 2511 static const char * const du0_groups[] = { ··· 2707 2683 2708 2684 static const char * const usb0_groups[] = { 2709 2685 "usb0", 2686 + "usb0_ovc", 2710 2687 }; 2711 2688 2712 2689 static const char * const usb1_groups[] = { 2713 2690 "usb1", 2691 + "usb1_ovc", 2714 2692 }; 2715 2693 2716 2694 static const char * const usb2_groups[] = { 2717 2695 "usb2", 2696 + "usb2_ovc", 2718 2697 }; 2719 2698 2720 2699 static const struct sh_pfc_function pinmux_functions[] = {