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

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

Pull ARM SoC fixes from Arnd Bergmann:
"We have various small DT fixes, and one important regression fix:

The recent device tree bugfixes that were intended to address issues
that 'dtc' started warning about in 4.15 fixed various USB PHY device
nodes, but it turns out that we had code that depended on those nodes
being incorrect and the probe failing with a particular error code.
With the workaround we can also deal with correct device nodes.

The DT fixes include:

- Allwinner A10 and A20 had the display pipeline set up incorrectly
(introduced in v4.15)

- The Altera PMU lacked an interrupt-parent (never worked)

- Pin muxing on the Openblocks A7 (never worked)

- Clocks might get set up wrong on Armada 7K/8K (4.15 regression)

We now have additional device tree patches to address all the
remaining warnings introduced in 4.15, but decided to queue them for
4.16 instead, to avoid risking another regression like the USB PHY
thing mentioned above.

* tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
phy: work around 'phys' references to usb-nop-xceiv devices
ARM: sunxi_defconfig: Enable CMA
arm64: dts: socfpga: add missing interrupt-parent
ARM: dts: sun[47]i: Fix display backend 1 output to TCON0 remote endpoint
ARM64: dts: marvell: armada-cp110: Fix clock resources for various node
ARM: dts: da850-lcdk: Remove leading 0x and 0s from unit address
ARM: dts: kirkwood: fix pin-muxing of MPP7 on OpenBlocks A7

+33 -14
+2 -2
arch/arm/boot/dts/da850-lcdk.dts
··· 293 293 label = "u-boot env"; 294 294 reg = <0 0x020000>; 295 295 }; 296 - partition@0x020000 { 296 + partition@20000 { 297 297 /* The LCDK defaults to booting from this partition */ 298 298 label = "u-boot"; 299 299 reg = <0x020000 0x080000>; 300 300 }; 301 - partition@0x0a0000 { 301 + partition@a0000 { 302 302 label = "free space"; 303 303 reg = <0x0a0000 0>; 304 304 };
+8 -2
arch/arm/boot/dts/kirkwood-openblocks_a7.dts
··· 53 53 }; 54 54 55 55 pinctrl: pin-controller@10000 { 56 - pinctrl-0 = <&pmx_dip_switches &pmx_gpio_header>; 56 + pinctrl-0 = <&pmx_dip_switches &pmx_gpio_header 57 + &pmx_gpio_header_gpo>; 57 58 pinctrl-names = "default"; 58 59 59 60 pmx_uart0: pmx-uart0 { ··· 86 85 * ground. 87 86 */ 88 87 pmx_gpio_header: pmx-gpio-header { 89 - marvell,pins = "mpp17", "mpp7", "mpp29", "mpp28", 88 + marvell,pins = "mpp17", "mpp29", "mpp28", 90 89 "mpp35", "mpp34", "mpp40"; 91 90 marvell,function = "gpio"; 91 + }; 92 + 93 + pmx_gpio_header_gpo: pxm-gpio-header-gpo { 94 + marvell,pins = "mpp7"; 95 + marvell,function = "gpo"; 92 96 }; 93 97 94 98 pmx_gpio_init: pmx-init {
+1 -1
arch/arm/boot/dts/sun4i-a10.dtsi
··· 1104 1104 1105 1105 be1_out_tcon0: endpoint@0 { 1106 1106 reg = <0>; 1107 - remote-endpoint = <&tcon1_in_be0>; 1107 + remote-endpoint = <&tcon0_in_be1>; 1108 1108 }; 1109 1109 1110 1110 be1_out_tcon1: endpoint@1 {
+1 -1
arch/arm/boot/dts/sun7i-a20.dtsi
··· 1354 1354 1355 1355 be1_out_tcon0: endpoint@0 { 1356 1356 reg = <0>; 1357 - remote-endpoint = <&tcon1_in_be0>; 1357 + remote-endpoint = <&tcon0_in_be1>; 1358 1358 }; 1359 1359 1360 1360 be1_out_tcon1: endpoint@1 {
+2
arch/arm/configs/sunxi_defconfig
··· 10 10 CONFIG_NR_CPUS=8 11 11 CONFIG_AEABI=y 12 12 CONFIG_HIGHMEM=y 13 + CONFIG_CMA=y 13 14 CONFIG_ARM_APPENDED_DTB=y 14 15 CONFIG_ARM_ATAG_DTB_COMPAT=y 15 16 CONFIG_CPU_FREQ=y ··· 34 33 # CONFIG_WIRELESS is not set 35 34 CONFIG_DEVTMPFS=y 36 35 CONFIG_DEVTMPFS_MOUNT=y 36 + CONFIG_DMA_CMA=y 37 37 CONFIG_BLK_DEV_SD=y 38 38 CONFIG_ATA=y 39 39 CONFIG_AHCI_SUNXI=y
+1
arch/arm64/boot/dts/altera/socfpga_stratix10.dtsi
··· 66 66 <&cpu1>, 67 67 <&cpu2>, 68 68 <&cpu3>; 69 + interrupt-parent = <&intc>; 69 70 }; 70 71 71 72 psci {
+8 -5
arch/arm64/boot/dts/marvell/armada-cp110-master.dtsi
··· 63 63 cpm_ethernet: ethernet@0 { 64 64 compatible = "marvell,armada-7k-pp22"; 65 65 reg = <0x0 0x100000>, <0x129000 0xb000>; 66 - clocks = <&cpm_clk 1 3>, <&cpm_clk 1 9>, <&cpm_clk 1 5>; 67 - clock-names = "pp_clk", "gop_clk", "mg_clk"; 66 + clocks = <&cpm_clk 1 3>, <&cpm_clk 1 9>, 67 + <&cpm_clk 1 5>, <&cpm_clk 1 18>; 68 + clock-names = "pp_clk", "gop_clk", 69 + "mg_clk","axi_clk"; 68 70 marvell,system-controller = <&cpm_syscon0>; 69 71 status = "disabled"; 70 72 dma-coherent; ··· 157 155 #size-cells = <0>; 158 156 compatible = "marvell,orion-mdio"; 159 157 reg = <0x12a200 0x10>; 160 - clocks = <&cpm_clk 1 9>, <&cpm_clk 1 5>; 158 + clocks = <&cpm_clk 1 9>, <&cpm_clk 1 5>, 159 + <&cpm_clk 1 6>, <&cpm_clk 1 18>; 161 160 status = "disabled"; 162 161 }; 163 162 ··· 341 338 compatible = "marvell,armada-cp110-sdhci"; 342 339 reg = <0x780000 0x300>; 343 340 interrupts = <ICU_GRP_NSR 27 IRQ_TYPE_LEVEL_HIGH>; 344 - clock-names = "core"; 345 - clocks = <&cpm_clk 1 4>; 341 + clock-names = "core","axi"; 342 + clocks = <&cpm_clk 1 4>, <&cpm_clk 1 18>; 346 343 dma-coherent; 347 344 status = "disabled"; 348 345 };
+6 -3
arch/arm64/boot/dts/marvell/armada-cp110-slave.dtsi
··· 63 63 cps_ethernet: ethernet@0 { 64 64 compatible = "marvell,armada-7k-pp22"; 65 65 reg = <0x0 0x100000>, <0x129000 0xb000>; 66 - clocks = <&cps_clk 1 3>, <&cps_clk 1 9>, <&cps_clk 1 5>; 67 - clock-names = "pp_clk", "gop_clk", "mg_clk"; 66 + clocks = <&cps_clk 1 3>, <&cps_clk 1 9>, 67 + <&cps_clk 1 5>, <&cps_clk 1 18>; 68 + clock-names = "pp_clk", "gop_clk", 69 + "mg_clk", "axi_clk"; 68 70 marvell,system-controller = <&cps_syscon0>; 69 71 status = "disabled"; 70 72 dma-coherent; ··· 157 155 #size-cells = <0>; 158 156 compatible = "marvell,orion-mdio"; 159 157 reg = <0x12a200 0x10>; 160 - clocks = <&cps_clk 1 9>, <&cps_clk 1 5>; 158 + clocks = <&cps_clk 1 9>, <&cps_clk 1 5>, 159 + <&cps_clk 1 6>, <&cps_clk 1 18>; 161 160 status = "disabled"; 162 161 }; 163 162
+4
drivers/phy/phy-core.c
··· 410 410 if (ret) 411 411 return ERR_PTR(-ENODEV); 412 412 413 + /* This phy type handled by the usb-phy subsystem for now */ 414 + if (of_device_is_compatible(args.np, "usb-nop-xceiv")) 415 + return ERR_PTR(-ENODEV); 416 + 413 417 mutex_lock(&phy_provider_mutex); 414 418 phy_provider = of_phy_provider_lookup(args.np); 415 419 if (IS_ERR(phy_provider) || !try_module_get(phy_provider->owner)) {