Merge tag 'fixes-v4.0-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into fixes

Fixes for omaps for the -rc cycle:

- Fix a device tree based booting vs legacy booting regression for
omap3 crypto hardware by adding the missing DMA channels.

- Fix /sys/bus/soc/devices/soc0/family for am33xx devices.

- Fix two timer issues that can cause hangs if the timer related
hwmod data is missing like it often initially is for new SoCs.

- Remove pcie hwmods entry from dts as that causes runtime PM to
fail for the PHYs.

- A paper bag type dts configuration fix for dm816x GPIO
interrupts that I just noticed. This is most of the changes
diffstat wise, but as it's a basic feature for connecting
devices and things work otherwise, it should be fixed.

* tag 'fixes-v4.0-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap:
ARM: dts: Fix gpio interrupts for dm816x
ARM: dts: dra7: remove ti,hwmod property from pcie phy
ARM: OMAP: dmtimer: disable pm runtime on remove
ARM: OMAP: dmtimer: check for pm_runtime_get_sync() failure
ARM: OMAP2+: Fix socbus family info for AM33xx devices
ARM: dts: omap3: Add missing dmas for crypto

Signed-off-by: Olof Johansson <olof@lixom.net>

Changed files
+53 -7
arch
arm
+19
arch/arm/boot/dts/dm8168-evm.dts
··· 36 36 >; 37 37 }; 38 38 39 + mmc_pins: pinmux_mmc_pins { 40 + pinctrl-single,pins = < 41 + DM816X_IOPAD(0x0a70, MUX_MODE0) /* SD_POW */ 42 + DM816X_IOPAD(0x0a74, MUX_MODE0) /* SD_CLK */ 43 + DM816X_IOPAD(0x0a78, MUX_MODE0) /* SD_CMD */ 44 + DM816X_IOPAD(0x0a7C, MUX_MODE0) /* SD_DAT0 */ 45 + DM816X_IOPAD(0x0a80, MUX_MODE0) /* SD_DAT1 */ 46 + DM816X_IOPAD(0x0a84, MUX_MODE0) /* SD_DAT2 */ 47 + DM816X_IOPAD(0x0a88, MUX_MODE0) /* SD_DAT2 */ 48 + DM816X_IOPAD(0x0a8c, MUX_MODE2) /* GP1[7] */ 49 + DM816X_IOPAD(0x0a90, MUX_MODE2) /* GP1[8] */ 50 + >; 51 + }; 52 + 39 53 usb0_pins: pinmux_usb0_pins { 40 54 pinctrl-single,pins = < 41 55 DM816X_IOPAD(0x0d00, MUX_MODE0) /* USB0_DRVVBUS */ ··· 151 137 }; 152 138 153 139 &mmc1 { 140 + pinctrl-names = "default"; 141 + pinctrl-0 = <&mmc_pins>; 154 142 vmmc-supply = <&vmmcsd_fixed>; 143 + bus-width = <4>; 144 + cd-gpios = <&gpio2 7 GPIO_ACTIVE_LOW>; 145 + wp-gpios = <&gpio2 8 GPIO_ACTIVE_LOW>; 155 146 }; 156 147 157 148 /* At least dm8168-evm rev c won't support multipoint, later may */
+14 -4
arch/arm/boot/dts/dm816x.dtsi
··· 150 150 }; 151 151 152 152 gpio1: gpio@48032000 { 153 - compatible = "ti,omap3-gpio"; 153 + compatible = "ti,omap4-gpio"; 154 154 ti,hwmods = "gpio1"; 155 + ti,gpio-always-on; 155 156 reg = <0x48032000 0x1000>; 156 - interrupts = <97>; 157 + interrupts = <96>; 158 + gpio-controller; 159 + #gpio-cells = <2>; 160 + interrupt-controller; 161 + #interrupt-cells = <2>; 157 162 }; 158 163 159 164 gpio2: gpio@4804c000 { 160 - compatible = "ti,omap3-gpio"; 165 + compatible = "ti,omap4-gpio"; 161 166 ti,hwmods = "gpio2"; 167 + ti,gpio-always-on; 162 168 reg = <0x4804c000 0x1000>; 163 - interrupts = <99>; 169 + interrupts = <98>; 170 + gpio-controller; 171 + #gpio-cells = <2>; 172 + interrupt-controller; 173 + #interrupt-cells = <2>; 164 174 }; 165 175 166 176 gpmc: gpmc@50000000 {
-2
arch/arm/boot/dts/dra7.dtsi
··· 1111 1111 "wkupclk", "refclk", 1112 1112 "div-clk", "phy-div"; 1113 1113 #phy-cells = <0>; 1114 - ti,hwmods = "pcie1-phy"; 1115 1114 }; 1116 1115 1117 1116 pcie2_phy: pciephy@4a095000 { ··· 1129 1130 "wkupclk", "refclk", 1130 1131 "div-clk", "phy-div"; 1131 1132 #phy-cells = <0>; 1132 - ti,hwmods = "pcie2-phy"; 1133 1133 status = "disabled"; 1134 1134 }; 1135 1135 };
+4
arch/arm/boot/dts/omap3.dtsi
··· 92 92 ti,hwmods = "aes"; 93 93 reg = <0x480c5000 0x50>; 94 94 interrupts = <0>; 95 + dmas = <&sdma 65 &sdma 66>; 96 + dma-names = "tx", "rx"; 95 97 }; 96 98 97 99 prm: prm@48306000 { ··· 552 550 ti,hwmods = "sham"; 553 551 reg = <0x480c3000 0x64>; 554 552 interrupts = <49>; 553 + dmas = <&sdma 69>; 554 + dma-names = "rx"; 555 555 }; 556 556 557 557 smartreflex_core: smartreflex@480cb000 {
+2
arch/arm/mach-omap2/id.c
··· 720 720 return kasprintf(GFP_KERNEL, "OMAP4"); 721 721 else if (soc_is_omap54xx()) 722 722 return kasprintf(GFP_KERNEL, "OMAP5"); 723 + else if (soc_is_am33xx() || soc_is_am335x()) 724 + return kasprintf(GFP_KERNEL, "AM33xx"); 723 725 else if (soc_is_am43xx()) 724 726 return kasprintf(GFP_KERNEL, "AM43xx"); 725 727 else if (soc_is_dra7xx())
+14 -1
arch/arm/plat-omap/dmtimer.c
··· 799 799 struct device *dev = &pdev->dev; 800 800 const struct of_device_id *match; 801 801 const struct dmtimer_platform_data *pdata; 802 + int ret; 802 803 803 804 match = of_match_device(of_match_ptr(omap_timer_match), dev); 804 805 pdata = match ? match->data : dev->platform_data; ··· 861 860 } 862 861 863 862 if (!timer->reserved) { 864 - pm_runtime_get_sync(dev); 863 + ret = pm_runtime_get_sync(dev); 864 + if (ret < 0) { 865 + dev_err(dev, "%s: pm_runtime_get_sync failed!\n", 866 + __func__); 867 + goto err_get_sync; 868 + } 865 869 __omap_dm_timer_init_regs(timer); 866 870 pm_runtime_put(dev); 867 871 } ··· 879 873 dev_dbg(dev, "Device Probed.\n"); 880 874 881 875 return 0; 876 + 877 + err_get_sync: 878 + pm_runtime_put_noidle(dev); 879 + pm_runtime_disable(dev); 880 + return ret; 882 881 } 883 882 884 883 /** ··· 909 898 break; 910 899 } 911 900 spin_unlock_irqrestore(&dm_timer_lock, flags); 901 + 902 + pm_runtime_disable(&pdev->dev); 912 903 913 904 return ret; 914 905 }