Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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

Pull ARM SoC fixes from Arnd Bergmann:
"Here are a couple of bugfixes for v4.8-rc.

Most of them have actually been around for a while this time but for
some reason didn't get applied early on. The shmobile regulator fix
is the only one that isn't completely obvious.

Device tree changes:
- archtimer interrupts must be level triggered (multiple platforms)
- fix for USB and MMC clocks on STiH410
- fix split DT repository in case of raspberry-pi 3
- a new use of skeleton.dtsi on arm64 has crept in after that was
removed.

defconfig updates:
- xilinx vdma has a new Kconfig symbol name
- keystone requires CONFIG_NOP_USB_XCEIV since v4.8-rc1

Code fixes:
- fix regulator quirk on shmobile
- suspend-to-ram regression on EXYNOS

Maintainer updates:
- Javier Martinez Canillas is now a reviewer for Samsung EXYNOS"

* tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
ARM: keystone: defconfig: Fix USB configuration
arm64: dts: Fix broken architected timer interrupt trigger
ARM: multi_v7_defconfig: update XILINX_VDMA
ARM64: dts: bcm: Use a symlink to R-Pi dtsi files from arch=arm
ARM: dts: Remove use of skeleton.dtsi from bcm283x.dtsi
ARM: dts: STiH407-family: Provide interconnect clock for consumption in ST SDHCI
ARM: dts: STiH410: Handle interconnect clock required by EHCI/OHCI (USB)
ARM: shmobile: fix regulator quirk for Gen2
ARM: EXYNOS: Clear OF_POPULATED flag from PMU node in IRQ init callback
MAINTAINERS: Add myself as reviewer for Samsung Exynos support

+99 -93
+1
MAINTAINERS
··· 1625 1625 ARM/SAMSUNG EXYNOS ARM ARCHITECTURES 1626 1626 M: Kukjin Kim <kgene@kernel.org> 1627 1627 M: Krzysztof Kozlowski <krzk@kernel.org> 1628 + R: Javier Martinez Canillas <javier@osg.samsung.com> 1628 1629 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) 1629 1630 L: linux-samsung-soc@vger.kernel.org (moderated for non-subscribers) 1630 1631 S: Maintained
+1
arch/arm/boot/dts/bcm2835-rpi.dtsi
··· 2 2 3 3 / { 4 4 memory { 5 + device_type = "memory"; 5 6 reg = <0 0x10000000>; 6 7 }; 7 8
+2 -1
arch/arm/boot/dts/bcm283x.dtsi
··· 2 2 #include <dt-bindings/clock/bcm2835.h> 3 3 #include <dt-bindings/clock/bcm2835-aux.h> 4 4 #include <dt-bindings/gpio/gpio.h> 5 - #include "skeleton.dtsi" 6 5 7 6 /* This include file covers the common peripherals and configuration between 8 7 * bcm2835 and bcm2836 implementations, leaving the CPU configuration to ··· 12 13 compatible = "brcm,bcm2835"; 13 14 model = "BCM2835"; 14 15 interrupt-parent = <&intc>; 16 + #address-cells = <1>; 17 + #size-cells = <1>; 15 18 16 19 chosen { 17 20 bootargs = "earlyprintk console=ttyAMA0";
+6 -4
arch/arm/boot/dts/stih407-family.dtsi
··· 550 550 interrupt-names = "mmcirq"; 551 551 pinctrl-names = "default"; 552 552 pinctrl-0 = <&pinctrl_mmc0>; 553 - clock-names = "mmc"; 554 - clocks = <&clk_s_c0_flexgen CLK_MMC_0>; 553 + clock-names = "mmc", "icn"; 554 + clocks = <&clk_s_c0_flexgen CLK_MMC_0>, 555 + <&clk_s_c0_flexgen CLK_RX_ICN_HVA>; 555 556 bus-width = <8>; 556 557 non-removable; 557 558 }; ··· 566 565 interrupt-names = "mmcirq"; 567 566 pinctrl-names = "default"; 568 567 pinctrl-0 = <&pinctrl_sd1>; 569 - clock-names = "mmc"; 570 - clocks = <&clk_s_c0_flexgen CLK_MMC_1>; 568 + clock-names = "mmc", "icn"; 569 + clocks = <&clk_s_c0_flexgen CLK_MMC_1>, 570 + <&clk_s_c0_flexgen CLK_RX_ICN_HVA>; 571 571 resets = <&softreset STIH407_MMC1_SOFTRESET>; 572 572 bus-width = <4>; 573 573 };
+8 -4
arch/arm/boot/dts/stih410.dtsi
··· 41 41 compatible = "st,st-ohci-300x"; 42 42 reg = <0x9a03c00 0x100>; 43 43 interrupts = <GIC_SPI 180 IRQ_TYPE_NONE>; 44 - clocks = <&clk_s_c0_flexgen CLK_TX_ICN_DISP_0>; 44 + clocks = <&clk_s_c0_flexgen CLK_TX_ICN_DISP_0>, 45 + <&clk_s_c0_flexgen CLK_RX_ICN_DISP_0>; 45 46 resets = <&powerdown STIH407_USB2_PORT0_POWERDOWN>, 46 47 <&softreset STIH407_USB2_PORT0_SOFTRESET>; 47 48 reset-names = "power", "softreset"; ··· 58 57 interrupts = <GIC_SPI 151 IRQ_TYPE_NONE>; 59 58 pinctrl-names = "default"; 60 59 pinctrl-0 = <&pinctrl_usb0>; 61 - clocks = <&clk_s_c0_flexgen CLK_TX_ICN_DISP_0>; 60 + clocks = <&clk_s_c0_flexgen CLK_TX_ICN_DISP_0>, 61 + <&clk_s_c0_flexgen CLK_RX_ICN_DISP_0>; 62 62 resets = <&powerdown STIH407_USB2_PORT0_POWERDOWN>, 63 63 <&softreset STIH407_USB2_PORT0_SOFTRESET>; 64 64 reset-names = "power", "softreset"; ··· 73 71 compatible = "st,st-ohci-300x"; 74 72 reg = <0x9a83c00 0x100>; 75 73 interrupts = <GIC_SPI 181 IRQ_TYPE_NONE>; 76 - clocks = <&clk_s_c0_flexgen CLK_TX_ICN_DISP_0>; 74 + clocks = <&clk_s_c0_flexgen CLK_TX_ICN_DISP_0>, 75 + <&clk_s_c0_flexgen CLK_RX_ICN_DISP_0>; 77 76 resets = <&powerdown STIH407_USB2_PORT1_POWERDOWN>, 78 77 <&softreset STIH407_USB2_PORT1_SOFTRESET>; 79 78 reset-names = "power", "softreset"; ··· 90 87 interrupts = <GIC_SPI 153 IRQ_TYPE_NONE>; 91 88 pinctrl-names = "default"; 92 89 pinctrl-0 = <&pinctrl_usb1>; 93 - clocks = <&clk_s_c0_flexgen CLK_TX_ICN_DISP_0>; 90 + clocks = <&clk_s_c0_flexgen CLK_TX_ICN_DISP_0>, 91 + <&clk_s_c0_flexgen CLK_RX_ICN_DISP_0>; 94 92 resets = <&powerdown STIH407_USB2_PORT1_POWERDOWN>, 95 93 <&softreset STIH407_USB2_PORT1_SOFTRESET>; 96 94 reset-names = "power", "softreset";
+1
arch/arm/configs/keystone_defconfig
··· 161 161 CONFIG_USB_XHCI_HCD=y 162 162 CONFIG_USB_STORAGE=y 163 163 CONFIG_USB_DWC3=y 164 + CONFIG_NOP_USB_XCEIV=y 164 165 CONFIG_KEYSTONE_USB_PHY=y 165 166 CONFIG_NEW_LEDS=y 166 167 CONFIG_LEDS_CLASS=y
+1 -1
arch/arm/configs/multi_v7_defconfig
··· 781 781 CONFIG_DMA_BCM2835=y 782 782 CONFIG_DMA_OMAP=y 783 783 CONFIG_QCOM_BAM_DMA=y 784 - CONFIG_XILINX_VDMA=y 784 + CONFIG_XILINX_DMA=y 785 785 CONFIG_DMA_SUN6I=y 786 786 CONFIG_STAGING=y 787 787 CONFIG_SENSORS_ISL29018=y
+6
arch/arm/mach-exynos/suspend.c
··· 255 255 return -ENOMEM; 256 256 } 257 257 258 + /* 259 + * Clear the OF_POPULATED flag set in of_irq_init so that 260 + * later the Exynos PMU platform device won't be skipped. 261 + */ 262 + of_node_clear_flag(node, OF_POPULATED); 263 + 258 264 return 0; 259 265 } 260 266
+26 -36
arch/arm/mach-shmobile/regulator-quirk-rcar-gen2.c
··· 41 41 42 42 #define REGULATOR_IRQ_MASK BIT(2) /* IRQ2, active low */ 43 43 44 + /* start of DA9210 System Control and Event Registers */ 45 + #define DA9210_REG_MASK_A 0x54 46 + 44 47 static void __iomem *irqc; 45 48 46 - static const u8 da9063_mask_regs[] = { 47 - DA9063_REG_IRQ_MASK_A, 48 - DA9063_REG_IRQ_MASK_B, 49 - DA9063_REG_IRQ_MASK_C, 50 - DA9063_REG_IRQ_MASK_D, 49 + /* first byte sets the memory pointer, following are consecutive reg values */ 50 + static u8 da9063_irq_clr[] = { DA9063_REG_IRQ_MASK_A, 0xff, 0xff, 0xff, 0xff }; 51 + static u8 da9210_irq_clr[] = { DA9210_REG_MASK_A, 0xff, 0xff }; 52 + 53 + static struct i2c_msg da9xxx_msgs[2] = { 54 + { 55 + .addr = 0x58, 56 + .len = ARRAY_SIZE(da9063_irq_clr), 57 + .buf = da9063_irq_clr, 58 + }, { 59 + .addr = 0x68, 60 + .len = ARRAY_SIZE(da9210_irq_clr), 61 + .buf = da9210_irq_clr, 62 + }, 51 63 }; 52 - 53 - /* DA9210 System Control and Event Registers */ 54 - #define DA9210_REG_MASK_A 0x54 55 - #define DA9210_REG_MASK_B 0x55 56 - 57 - static const u8 da9210_mask_regs[] = { 58 - DA9210_REG_MASK_A, 59 - DA9210_REG_MASK_B, 60 - }; 61 - 62 - static void da9xxx_mask_irqs(struct i2c_client *client, const u8 regs[], 63 - unsigned int nregs) 64 - { 65 - unsigned int i; 66 - 67 - dev_info(&client->dev, "Masking %s interrupt sources\n", client->name); 68 - 69 - for (i = 0; i < nregs; i++) { 70 - int error = i2c_smbus_write_byte_data(client, regs[i], ~0); 71 - if (error) { 72 - dev_err(&client->dev, "i2c error %d\n", error); 73 - return; 74 - } 75 - } 76 - } 77 64 78 65 static int regulator_quirk_notify(struct notifier_block *nb, 79 66 unsigned long action, void *data) ··· 80 93 client = to_i2c_client(dev); 81 94 dev_dbg(dev, "Detected %s\n", client->name); 82 95 83 - if ((client->addr == 0x58 && !strcmp(client->name, "da9063"))) 84 - da9xxx_mask_irqs(client, da9063_mask_regs, 85 - ARRAY_SIZE(da9063_mask_regs)); 86 - else if (client->addr == 0x68 && !strcmp(client->name, "da9210")) 87 - da9xxx_mask_irqs(client, da9210_mask_regs, 88 - ARRAY_SIZE(da9210_mask_regs)); 96 + if ((client->addr == 0x58 && !strcmp(client->name, "da9063")) || 97 + (client->addr == 0x68 && !strcmp(client->name, "da9210"))) { 98 + int ret; 99 + 100 + dev_info(&client->dev, "clearing da9063/da9210 interrupts\n"); 101 + ret = i2c_transfer(client->adapter, da9xxx_msgs, ARRAY_SIZE(da9xxx_msgs)); 102 + if (ret != ARRAY_SIZE(da9xxx_msgs)) 103 + dev_err(&client->dev, "i2c error %d\n", ret); 104 + } 89 105 90 106 mon = ioread32(irqc + IRQC_MONITOR); 91 107 if (mon & REGULATOR_IRQ_MASK)
+4 -4
arch/arm64/boot/dts/altera/socfpga_stratix10.dtsi
··· 255 255 /* Local timer */ 256 256 timer { 257 257 compatible = "arm,armv8-timer"; 258 - interrupts = <1 13 0xf01>, 259 - <1 14 0xf01>, 260 - <1 11 0xf01>, 261 - <1 10 0xf01>; 258 + interrupts = <1 13 0xf08>, 259 + <1 14 0xf08>, 260 + <1 11 0xf08>, 261 + <1 10 0xf08>; 262 262 }; 263 263 264 264 timer0: timer0@ffc03000 {
+4 -4
arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi
··· 102 102 timer { 103 103 compatible = "arm,armv8-timer"; 104 104 interrupts = <GIC_PPI 13 105 - (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_EDGE_RISING)>, 105 + (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>, 106 106 <GIC_PPI 14 107 - (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_EDGE_RISING)>, 107 + (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>, 108 108 <GIC_PPI 11 109 - (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_EDGE_RISING)>, 109 + (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>, 110 110 <GIC_PPI 10 111 - (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_EDGE_RISING)>; 111 + (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>; 112 112 }; 113 113 114 114 xtal: xtal-clk {
+4 -4
arch/arm64/boot/dts/apm/apm-storm.dtsi
··· 110 110 111 111 timer { 112 112 compatible = "arm,armv8-timer"; 113 - interrupts = <1 0 0xff01>, /* Secure Phys IRQ */ 114 - <1 13 0xff01>, /* Non-secure Phys IRQ */ 115 - <1 14 0xff01>, /* Virt IRQ */ 116 - <1 15 0xff01>; /* Hyp IRQ */ 113 + interrupts = <1 0 0xff08>, /* Secure Phys IRQ */ 114 + <1 13 0xff08>, /* Non-secure Phys IRQ */ 115 + <1 14 0xff08>, /* Virt IRQ */ 116 + <1 15 0xff08>; /* Hyp IRQ */ 117 117 clock-frequency = <50000000>; 118 118 }; 119 119
+2 -2
arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-b.dts
··· 1 1 /dts-v1/; 2 2 #include "bcm2837.dtsi" 3 - #include "../../../../arm/boot/dts/bcm2835-rpi.dtsi" 4 - #include "../../../../arm/boot/dts/bcm283x-rpi-smsc9514.dtsi" 3 + #include "bcm2835-rpi.dtsi" 4 + #include "bcm283x-rpi-smsc9514.dtsi" 5 5 6 6 / { 7 7 compatible = "raspberrypi,3-model-b", "brcm,bcm2837";
+1 -1
arch/arm64/boot/dts/broadcom/bcm2837.dtsi
··· 1 - #include "../../../../arm/boot/dts/bcm283x.dtsi" 1 + #include "bcm283x.dtsi" 2 2 3 3 / { 4 4 compatible = "brcm,bcm2836";
+4 -4
arch/arm64/boot/dts/broadcom/ns2.dtsi
··· 88 88 timer { 89 89 compatible = "arm,armv8-timer"; 90 90 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_RAW(0xff) | 91 - IRQ_TYPE_EDGE_RISING)>, 91 + IRQ_TYPE_LEVEL_LOW)>, 92 92 <GIC_PPI 14 (GIC_CPU_MASK_RAW(0xff) | 93 - IRQ_TYPE_EDGE_RISING)>, 93 + IRQ_TYPE_LEVEL_LOW)>, 94 94 <GIC_PPI 11 (GIC_CPU_MASK_RAW(0xff) | 95 - IRQ_TYPE_EDGE_RISING)>, 95 + IRQ_TYPE_LEVEL_LOW)>, 96 96 <GIC_PPI 10 (GIC_CPU_MASK_RAW(0xff) | 97 - IRQ_TYPE_EDGE_RISING)>; 97 + IRQ_TYPE_LEVEL_LOW)>; 98 98 }; 99 99 100 100 pmu {
+4 -4
arch/arm64/boot/dts/cavium/thunder-88xx.dtsi
··· 354 354 355 355 timer { 356 356 compatible = "arm,armv8-timer"; 357 - interrupts = <1 13 0xff01>, 358 - <1 14 0xff01>, 359 - <1 11 0xff01>, 360 - <1 10 0xff01>; 357 + interrupts = <1 13 4>, 358 + <1 14 4>, 359 + <1 11 4>, 360 + <1 10 4>; 361 361 }; 362 362 363 363 pmu {
+4 -4
arch/arm64/boot/dts/exynos/exynos7.dtsi
··· 473 473 474 474 timer { 475 475 compatible = "arm,armv8-timer"; 476 - interrupts = <1 13 0xff01>, 477 - <1 14 0xff01>, 478 - <1 11 0xff01>, 479 - <1 10 0xff01>; 476 + interrupts = <1 13 0xff08>, 477 + <1 14 0xff08>, 478 + <1 11 0xff08>, 479 + <1 10 0xff08>; 480 480 }; 481 481 482 482 pmu_system_controller: system-controller@105c0000 {
+4 -4
arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi
··· 119 119 120 120 timer { 121 121 compatible = "arm,armv8-timer"; 122 - interrupts = <1 13 0x1>, /* Physical Secure PPI */ 123 - <1 14 0x1>, /* Physical Non-Secure PPI */ 124 - <1 11 0x1>, /* Virtual PPI */ 125 - <1 10 0x1>; /* Hypervisor PPI */ 122 + interrupts = <1 13 0xf08>, /* Physical Secure PPI */ 123 + <1 14 0xf08>, /* Physical Non-Secure PPI */ 124 + <1 11 0xf08>, /* Virtual PPI */ 125 + <1 10 0xf08>; /* Hypervisor PPI */ 126 126 }; 127 127 128 128 pmu {
+4 -4
arch/arm64/boot/dts/freescale/fsl-ls2080a.dtsi
··· 191 191 192 192 timer { 193 193 compatible = "arm,armv8-timer"; 194 - interrupts = <1 13 0x8>, /* Physical Secure PPI, active-low */ 195 - <1 14 0x8>, /* Physical Non-Secure PPI, active-low */ 196 - <1 11 0x8>, /* Virtual PPI, active-low */ 197 - <1 10 0x8>; /* Hypervisor PPI, active-low */ 194 + interrupts = <1 13 4>, /* Physical Secure PPI, active-low */ 195 + <1 14 4>, /* Physical Non-Secure PPI, active-low */ 196 + <1 11 4>, /* Virtual PPI, active-low */ 197 + <1 10 4>; /* Hypervisor PPI, active-low */ 198 198 }; 199 199 200 200 pmu {
+4 -4
arch/arm64/boot/dts/marvell/armada-ap806.dtsi
··· 122 122 123 123 timer { 124 124 compatible = "arm,armv8-timer"; 125 - interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_EDGE_RISING)>, 126 - <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_EDGE_RISING)>, 127 - <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_EDGE_RISING)>, 128 - <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_EDGE_RISING)>; 125 + interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 126 + <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 127 + <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 128 + <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>; 129 129 }; 130 130 131 131 odmi: odmi@300000 {
+4 -4
arch/arm64/boot/dts/socionext/uniphier-ph1-ld20.dtsi
··· 129 129 130 130 timer { 131 131 compatible = "arm,armv8-timer"; 132 - interrupts = <1 13 0xf01>, 133 - <1 14 0xf01>, 134 - <1 11 0xf01>, 135 - <1 10 0xf01>; 132 + interrupts = <1 13 4>, 133 + <1 14 4>, 134 + <1 11 4>, 135 + <1 10 4>; 136 136 }; 137 137 138 138 soc {
+4 -4
arch/arm64/boot/dts/xilinx/zynqmp.dtsi
··· 65 65 timer { 66 66 compatible = "arm,armv8-timer"; 67 67 interrupt-parent = <&gic>; 68 - interrupts = <1 13 0xf01>, 69 - <1 14 0xf01>, 70 - <1 11 0xf01>, 71 - <1 10 0xf01>; 68 + interrupts = <1 13 0xf08>, 69 + <1 14 0xf08>, 70 + <1 11 0xf08>, 71 + <1 10 0xf08>; 72 72 }; 73 73 74 74 amba_apu {