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

Merge tag 'soc-fsl-fix-v4.19-2' into HEAD

NXP/FSL SoC driver fixes for v4.19 round 2

- Fix crash of qman_portal by deferring its probe if qman is not probed

Li Yang 56740a71 afa86d26

+285 -199
+1 -1
MAINTAINERS
··· 1251 1251 1252 1252 ARM/Annapurna Labs ALPINE ARCHITECTURE 1253 1253 M: Tsahee Zidenberg <tsahee@annapurnalabs.com> 1254 - M: Antoine Tenart <antoine.tenart@free-electrons.com> 1254 + M: Antoine Tenart <antoine.tenart@bootlin.com> 1255 1255 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) 1256 1256 S: Maintained 1257 1257 F: arch/arm/mach-alpine/
arch/arm/boot/dts/am335x-osd3358-sm-red.dts
+1
arch/arm/boot/dts/am4372.dtsi
··· 469 469 ti,hwmods = "rtc"; 470 470 clocks = <&clk_32768_ck>; 471 471 clock-names = "int-clk"; 472 + system-power-controller; 472 473 status = "disabled"; 473 474 }; 474 475
+2
arch/arm/boot/dts/at91-sama5d2_ptc_ek.dts
··· 11 11 #include "sama5d2-pinfunc.h" 12 12 #include <dt-bindings/mfd/atmel-flexcom.h> 13 13 #include <dt-bindings/gpio/gpio.h> 14 + #include <dt-bindings/pinctrl/at91.h> 14 15 15 16 / { 16 17 model = "Atmel SAMA5D2 PTC EK"; ··· 300 299 <PIN_PA30__NWE_NANDWE>, 301 300 <PIN_PB2__NRD_NANDOE>; 302 301 bias-pull-up; 302 + atmel,drive-strength = <ATMEL_PIO_DRVSTR_ME>; 303 303 }; 304 304 305 305 ale_cle_rdy_cs {
+8 -6
arch/arm/boot/dts/bcm63138.dtsi
··· 106 106 global_timer: timer@1e200 { 107 107 compatible = "arm,cortex-a9-global-timer"; 108 108 reg = <0x1e200 0x20>; 109 - interrupts = <GIC_PPI 11 IRQ_TYPE_LEVEL_HIGH>; 109 + interrupts = <GIC_PPI 11 IRQ_TYPE_EDGE_RISING>; 110 110 clocks = <&axi_clk>; 111 111 }; 112 112 113 113 local_timer: local-timer@1e600 { 114 114 compatible = "arm,cortex-a9-twd-timer"; 115 115 reg = <0x1e600 0x20>; 116 - interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_HIGH>; 116 + interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(2) | 117 + IRQ_TYPE_EDGE_RISING)>; 117 118 clocks = <&axi_clk>; 118 119 }; 119 120 120 121 twd_watchdog: watchdog@1e620 { 121 122 compatible = "arm,cortex-a9-twd-wdt"; 122 123 reg = <0x1e620 0x20>; 123 - interrupts = <GIC_PPI 14 IRQ_TYPE_LEVEL_HIGH>; 124 + interrupts = <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(2) | 125 + IRQ_TYPE_LEVEL_HIGH)>; 124 126 }; 125 127 126 128 armpll: armpll { ··· 160 158 serial0: serial@600 { 161 159 compatible = "brcm,bcm6345-uart"; 162 160 reg = <0x600 0x1b>; 163 - interrupts = <GIC_SPI 32 0>; 161 + interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>; 164 162 clocks = <&periph_clk>; 165 163 clock-names = "periph"; 166 164 status = "disabled"; ··· 169 167 serial1: serial@620 { 170 168 compatible = "brcm,bcm6345-uart"; 171 169 reg = <0x620 0x1b>; 172 - interrupts = <GIC_SPI 33 0>; 170 + interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>; 173 171 clocks = <&periph_clk>; 174 172 clock-names = "periph"; 175 173 status = "disabled"; ··· 182 180 reg = <0x2000 0x600>, <0xf0 0x10>; 183 181 reg-names = "nand", "nand-int-base"; 184 182 status = "disabled"; 185 - interrupts = <GIC_SPI 38 0>; 183 + interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>; 186 184 interrupt-names = "nand"; 187 185 }; 188 186
+41 -49
arch/arm/boot/dts/imx23-evk.dts
··· 13 13 reg = <0x40000000 0x08000000>; 14 14 }; 15 15 16 + reg_vddio_sd0: regulator-vddio-sd0 { 17 + compatible = "regulator-fixed"; 18 + regulator-name = "vddio-sd0"; 19 + regulator-min-microvolt = <3300000>; 20 + regulator-max-microvolt = <3300000>; 21 + gpio = <&gpio1 29 0>; 22 + }; 23 + 24 + reg_lcd_3v3: regulator-lcd-3v3 { 25 + compatible = "regulator-fixed"; 26 + regulator-name = "lcd-3v3"; 27 + regulator-min-microvolt = <3300000>; 28 + regulator-max-microvolt = <3300000>; 29 + gpio = <&gpio1 18 0>; 30 + enable-active-high; 31 + }; 32 + 33 + reg_lcd_5v: regulator-lcd-5v { 34 + compatible = "regulator-fixed"; 35 + regulator-name = "lcd-5v"; 36 + regulator-min-microvolt = <5000000>; 37 + regulator-max-microvolt = <5000000>; 38 + }; 39 + 40 + panel { 41 + compatible = "sii,43wvf1g"; 42 + backlight = <&backlight_display>; 43 + dvdd-supply = <&reg_lcd_3v3>; 44 + avdd-supply = <&reg_lcd_5v>; 45 + 46 + port { 47 + panel_in: endpoint { 48 + remote-endpoint = <&display_out>; 49 + }; 50 + }; 51 + }; 52 + 16 53 apb@80000000 { 17 54 apbh@80000000 { 18 55 gpmi-nand@8000c000 { ··· 89 52 lcdif@80030000 { 90 53 pinctrl-names = "default"; 91 54 pinctrl-0 = <&lcdif_24bit_pins_a>; 92 - lcd-supply = <&reg_lcd_3v3>; 93 - display = <&display0>; 94 55 status = "okay"; 95 56 96 - display0: display0 { 97 - bits-per-pixel = <32>; 98 - bus-width = <24>; 99 - 100 - display-timings { 101 - native-mode = <&timing0>; 102 - timing0: timing0 { 103 - clock-frequency = <9200000>; 104 - hactive = <480>; 105 - vactive = <272>; 106 - hback-porch = <15>; 107 - hfront-porch = <8>; 108 - vback-porch = <12>; 109 - vfront-porch = <4>; 110 - hsync-len = <1>; 111 - vsync-len = <1>; 112 - hsync-active = <0>; 113 - vsync-active = <0>; 114 - de-active = <1>; 115 - pixelclk-active = <0>; 116 - }; 57 + port { 58 + display_out: endpoint { 59 + remote-endpoint = <&panel_in>; 117 60 }; 118 61 }; 119 62 }; ··· 135 118 }; 136 119 }; 137 120 138 - regulators { 139 - compatible = "simple-bus"; 140 - #address-cells = <1>; 141 - #size-cells = <0>; 142 - 143 - reg_vddio_sd0: regulator@0 { 144 - compatible = "regulator-fixed"; 145 - reg = <0>; 146 - regulator-name = "vddio-sd0"; 147 - regulator-min-microvolt = <3300000>; 148 - regulator-max-microvolt = <3300000>; 149 - gpio = <&gpio1 29 0>; 150 - }; 151 - 152 - reg_lcd_3v3: regulator@1 { 153 - compatible = "regulator-fixed"; 154 - reg = <1>; 155 - regulator-name = "lcd-3v3"; 156 - regulator-min-microvolt = <3300000>; 157 - regulator-max-microvolt = <3300000>; 158 - gpio = <&gpio1 18 0>; 159 - enable-active-high; 160 - }; 161 - }; 162 - 163 - backlight { 121 + backlight_display: backlight { 164 122 compatible = "pwm-backlight"; 165 123 pwms = <&pwm 2 5000000>; 166 124 brightness-levels = <0 4 8 16 32 64 128 255>;
+85 -98
arch/arm/boot/dts/imx28-evk.dts
··· 13 13 reg = <0x40000000 0x08000000>; 14 14 }; 15 15 16 + 17 + reg_3p3v: regulator-3p3v { 18 + compatible = "regulator-fixed"; 19 + regulator-name = "3P3V"; 20 + regulator-min-microvolt = <3300000>; 21 + regulator-max-microvolt = <3300000>; 22 + regulator-always-on; 23 + }; 24 + 25 + reg_vddio_sd0: regulator-vddio-sd0 { 26 + compatible = "regulator-fixed"; 27 + regulator-name = "vddio-sd0"; 28 + regulator-min-microvolt = <3300000>; 29 + regulator-max-microvolt = <3300000>; 30 + gpio = <&gpio3 28 0>; 31 + }; 32 + 33 + reg_fec_3v3: regulator-fec-3v3 { 34 + compatible = "regulator-fixed"; 35 + regulator-name = "fec-3v3"; 36 + regulator-min-microvolt = <3300000>; 37 + regulator-max-microvolt = <3300000>; 38 + gpio = <&gpio2 15 0>; 39 + }; 40 + 41 + reg_usb0_vbus: regulator-usb0-vbus { 42 + compatible = "regulator-fixed"; 43 + regulator-name = "usb0_vbus"; 44 + regulator-min-microvolt = <5000000>; 45 + regulator-max-microvolt = <5000000>; 46 + gpio = <&gpio3 9 0>; 47 + enable-active-high; 48 + }; 49 + 50 + reg_usb1_vbus: regulator-usb1-vbus { 51 + compatible = "regulator-fixed"; 52 + regulator-name = "usb1_vbus"; 53 + regulator-min-microvolt = <5000000>; 54 + regulator-max-microvolt = <5000000>; 55 + gpio = <&gpio3 8 0>; 56 + enable-active-high; 57 + }; 58 + 59 + reg_lcd_3v3: regulator-lcd-3v3 { 60 + compatible = "regulator-fixed"; 61 + regulator-name = "lcd-3v3"; 62 + regulator-min-microvolt = <3300000>; 63 + regulator-max-microvolt = <3300000>; 64 + gpio = <&gpio3 30 0>; 65 + enable-active-high; 66 + }; 67 + 68 + reg_can_3v3: regulator-can-3v3 { 69 + compatible = "regulator-fixed"; 70 + regulator-name = "can-3v3"; 71 + regulator-min-microvolt = <3300000>; 72 + regulator-max-microvolt = <3300000>; 73 + gpio = <&gpio2 13 0>; 74 + enable-active-high; 75 + }; 76 + 77 + reg_lcd_5v: regulator-lcd-5v { 78 + compatible = "regulator-fixed"; 79 + regulator-name = "lcd-5v"; 80 + regulator-min-microvolt = <5000000>; 81 + regulator-max-microvolt = <5000000>; 82 + }; 83 + 84 + panel { 85 + compatible = "sii,43wvf1g"; 86 + backlight = <&backlight_display>; 87 + dvdd-supply = <&reg_lcd_3v3>; 88 + avdd-supply = <&reg_lcd_5v>; 89 + 90 + port { 91 + panel_in: endpoint { 92 + remote-endpoint = <&display_out>; 93 + }; 94 + }; 95 + }; 96 + 16 97 apb@80000000 { 17 98 apbh@80000000 { 18 99 gpmi-nand@8000c000 { ··· 197 116 pinctrl-names = "default"; 198 117 pinctrl-0 = <&lcdif_24bit_pins_a 199 118 &lcdif_pins_evk>; 200 - lcd-supply = <&reg_lcd_3v3>; 201 - display = <&display0>; 202 119 status = "okay"; 203 120 204 - display0: display0 { 205 - bits-per-pixel = <32>; 206 - bus-width = <24>; 207 - 208 - display-timings { 209 - native-mode = <&timing0>; 210 - timing0: timing0 { 211 - clock-frequency = <33500000>; 212 - hactive = <800>; 213 - vactive = <480>; 214 - hback-porch = <89>; 215 - hfront-porch = <164>; 216 - vback-porch = <23>; 217 - vfront-porch = <10>; 218 - hsync-len = <10>; 219 - vsync-len = <10>; 220 - hsync-active = <0>; 221 - vsync-active = <0>; 222 - de-active = <1>; 223 - pixelclk-active = <0>; 224 - }; 121 + port { 122 + display_out: endpoint { 123 + remote-endpoint = <&panel_in>; 225 124 }; 226 125 }; 227 126 }; ··· 330 269 }; 331 270 }; 332 271 333 - regulators { 334 - compatible = "simple-bus"; 335 - #address-cells = <1>; 336 - #size-cells = <0>; 337 - 338 - reg_3p3v: regulator@0 { 339 - compatible = "regulator-fixed"; 340 - reg = <0>; 341 - regulator-name = "3P3V"; 342 - regulator-min-microvolt = <3300000>; 343 - regulator-max-microvolt = <3300000>; 344 - regulator-always-on; 345 - }; 346 - 347 - reg_vddio_sd0: regulator@1 { 348 - compatible = "regulator-fixed"; 349 - reg = <1>; 350 - regulator-name = "vddio-sd0"; 351 - regulator-min-microvolt = <3300000>; 352 - regulator-max-microvolt = <3300000>; 353 - gpio = <&gpio3 28 0>; 354 - }; 355 - 356 - reg_fec_3v3: regulator@2 { 357 - compatible = "regulator-fixed"; 358 - reg = <2>; 359 - regulator-name = "fec-3v3"; 360 - regulator-min-microvolt = <3300000>; 361 - regulator-max-microvolt = <3300000>; 362 - gpio = <&gpio2 15 0>; 363 - }; 364 - 365 - reg_usb0_vbus: regulator@3 { 366 - compatible = "regulator-fixed"; 367 - reg = <3>; 368 - regulator-name = "usb0_vbus"; 369 - regulator-min-microvolt = <5000000>; 370 - regulator-max-microvolt = <5000000>; 371 - gpio = <&gpio3 9 0>; 372 - enable-active-high; 373 - }; 374 - 375 - reg_usb1_vbus: regulator@4 { 376 - compatible = "regulator-fixed"; 377 - reg = <4>; 378 - regulator-name = "usb1_vbus"; 379 - regulator-min-microvolt = <5000000>; 380 - regulator-max-microvolt = <5000000>; 381 - gpio = <&gpio3 8 0>; 382 - enable-active-high; 383 - }; 384 - 385 - reg_lcd_3v3: regulator@5 { 386 - compatible = "regulator-fixed"; 387 - reg = <5>; 388 - regulator-name = "lcd-3v3"; 389 - regulator-min-microvolt = <3300000>; 390 - regulator-max-microvolt = <3300000>; 391 - gpio = <&gpio3 30 0>; 392 - enable-active-high; 393 - }; 394 - 395 - reg_can_3v3: regulator@6 { 396 - compatible = "regulator-fixed"; 397 - reg = <6>; 398 - regulator-name = "can-3v3"; 399 - regulator-min-microvolt = <3300000>; 400 - regulator-max-microvolt = <3300000>; 401 - gpio = <&gpio2 13 0>; 402 - enable-active-high; 403 - }; 404 - 405 - }; 406 - 407 272 sound { 408 273 compatible = "fsl,imx28-evk-sgtl5000", 409 274 "fsl,mxs-audio-sgtl5000"; ··· 350 363 }; 351 364 }; 352 365 353 - backlight { 366 + backlight_display: backlight { 354 367 compatible = "pwm-backlight"; 355 368 pwms = <&pwm 2 5000000>; 356 369 brightness-levels = <0 4 8 16 32 64 128 255>;
+8 -4
arch/arm/boot/dts/imx7d.dtsi
··· 126 126 interrupt-names = "msi"; 127 127 #interrupt-cells = <1>; 128 128 interrupt-map-mask = <0 0 0 0x7>; 129 - interrupt-map = <0 0 0 1 &intc GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>, 130 - <0 0 0 2 &intc GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>, 131 - <0 0 0 3 &intc GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>, 132 - <0 0 0 4 &intc GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>; 129 + /* 130 + * Reference manual lists pci irqs incorrectly 131 + * Real hardware ordering is same as imx6: D+MSI, C, B, A 132 + */ 133 + interrupt-map = <0 0 0 1 &intc GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>, 134 + <0 0 0 2 &intc GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>, 135 + <0 0 0 3 &intc GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>, 136 + <0 0 0 4 &intc GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>; 133 137 clocks = <&clks IMX7D_PCIE_CTRL_ROOT_CLK>, 134 138 <&clks IMX7D_PLL_ENET_MAIN_100M_CLK>, 135 139 <&clks IMX7D_PCIE_PHY_ROOT_CLK>;
+10 -10
arch/arm/boot/dts/omap4-droid4-xt894.dts
··· 354 354 &mmc2 { 355 355 vmmc-supply = <&vsdio>; 356 356 bus-width = <8>; 357 - non-removable; 357 + ti,non-removable; 358 358 }; 359 359 360 360 &mmc3 { ··· 621 621 OMAP4_IOPAD(0x10c, PIN_INPUT | MUX_MODE1) /* abe_mcbsp3_fsx */ 622 622 >; 623 623 }; 624 - }; 625 - 626 - &omap4_pmx_wkup { 627 - usb_gpio_mux_sel2: pinmux_usb_gpio_mux_sel2_pins { 628 - /* gpio_wk0 */ 629 - pinctrl-single,pins = < 630 - OMAP4_IOPAD(0x040, PIN_OUTPUT_PULLDOWN | MUX_MODE3) 631 - >; 632 - }; 633 624 634 625 vibrator_direction_pin: pinmux_vibrator_direction_pin { 635 626 pinctrl-single,pins = < ··· 631 640 vibrator_enable_pin: pinmux_vibrator_enable_pin { 632 641 pinctrl-single,pins = < 633 642 OMAP4_IOPAD(0X1d0, PIN_OUTPUT | MUX_MODE1) /* dmtimer9_pwm_evt (gpio_28) */ 643 + >; 644 + }; 645 + }; 646 + 647 + &omap4_pmx_wkup { 648 + usb_gpio_mux_sel2: pinmux_usb_gpio_mux_sel2_pins { 649 + /* gpio_wk0 */ 650 + pinctrl-single,pins = < 651 + OMAP4_IOPAD(0x040, PIN_OUTPUT_PULLDOWN | MUX_MODE3) 634 652 >; 635 653 }; 636 654 };
+1 -2
arch/arm/boot/dts/sun8i-r40.dtsi
··· 800 800 }; 801 801 802 802 hdmi_phy: hdmi-phy@1ef0000 { 803 - compatible = "allwinner,sun8i-r40-hdmi-phy", 804 - "allwinner,sun50i-a64-hdmi-phy"; 803 + compatible = "allwinner,sun8i-r40-hdmi-phy"; 805 804 reg = <0x01ef0000 0x10000>; 806 805 clocks = <&ccu CLK_BUS_HDMI1>, <&ccu CLK_HDMI_SLOW>, 807 806 <&ccu 7>, <&ccu 16>;
+1
arch/arm/configs/imx_v6_v7_defconfig
··· 257 257 CONFIG_DRM=y 258 258 CONFIG_DRM_PANEL_LVDS=y 259 259 CONFIG_DRM_PANEL_SIMPLE=y 260 + CONFIG_DRM_PANEL_SEIKO_43WVF1G=y 260 261 CONFIG_DRM_DW_HDMI_AHB_AUDIO=m 261 262 CONFIG_DRM_DW_HDMI_CEC=y 262 263 CONFIG_DRM_IMX=y
+1
arch/arm/configs/mxs_defconfig
··· 95 95 CONFIG_REGULATOR=y 96 96 CONFIG_REGULATOR_FIXED_VOLTAGE=y 97 97 CONFIG_DRM=y 98 + CONFIG_DRM_PANEL_SEIKO_43WVF1G=y 98 99 CONFIG_DRM_MXSFB=y 99 100 CONFIG_FB_MODE_HELPERS=y 100 101 CONFIG_BACKLIGHT_LCD_SUPPORT=y
+8 -6
arch/arm/configs/versatile_defconfig
··· 5 5 CONFIG_LOG_BUF_SHIFT=14 6 6 CONFIG_BLK_DEV_INITRD=y 7 7 CONFIG_SLAB=y 8 - CONFIG_MODULES=y 9 - CONFIG_MODULE_UNLOAD=y 10 - CONFIG_PARTITION_ADVANCED=y 11 8 # CONFIG_ARCH_MULTI_V7 is not set 12 9 CONFIG_ARCH_VERSATILE=y 13 10 CONFIG_AEABI=y 14 11 CONFIG_OABI_COMPAT=y 15 - CONFIG_CMA=y 16 12 CONFIG_ZBOOT_ROM_TEXT=0x0 17 13 CONFIG_ZBOOT_ROM_BSS=0x0 18 14 CONFIG_CMDLINE="root=1f03 mem=32M" 19 15 CONFIG_FPE_NWFPE=y 20 16 CONFIG_VFP=y 17 + CONFIG_MODULES=y 18 + CONFIG_MODULE_UNLOAD=y 19 + CONFIG_PARTITION_ADVANCED=y 20 + CONFIG_CMA=y 21 21 CONFIG_NET=y 22 22 CONFIG_PACKET=y 23 23 CONFIG_UNIX=y ··· 59 59 CONFIG_DRM=y 60 60 CONFIG_DRM_PANEL_ARM_VERSATILE=y 61 61 CONFIG_DRM_PANEL_SIMPLE=y 62 + CONFIG_DRM_DUMB_VGA_DAC=y 62 63 CONFIG_DRM_PL111=y 63 64 CONFIG_FB_MODE_HELPERS=y 64 65 CONFIG_BACKLIGHT_LCD_SUPPORT=y ··· 90 89 CONFIG_NFSD_V3=y 91 90 CONFIG_NLS_CODEPAGE_850=m 92 91 CONFIG_NLS_ISO8859_1=m 92 + CONFIG_FONTS=y 93 + CONFIG_FONT_ACORN_8x8=y 94 + CONFIG_DEBUG_FS=y 93 95 CONFIG_MAGIC_SYSRQ=y 94 96 CONFIG_DEBUG_KERNEL=y 95 97 CONFIG_DEBUG_USER=y 96 98 CONFIG_DEBUG_LL=y 97 - CONFIG_FONTS=y 98 - CONFIG_FONT_ACORN_8x8=y
+38 -1
arch/arm/mach-omap2/omap_hwmod.c
··· 2161 2161 } 2162 2162 2163 2163 /** 2164 + * omap_hwmod_fix_mpu_rt_idx - fix up mpu_rt_idx register offsets 2165 + * 2166 + * @oh: struct omap_hwmod * 2167 + * @np: struct device_node * 2168 + * 2169 + * Fix up module register offsets for modules with mpu_rt_idx. 2170 + * Only needed for cpsw with interconnect target module defined 2171 + * in device tree while still using legacy hwmod platform data 2172 + * for rev, sysc and syss registers. 2173 + * 2174 + * Can be removed when all cpsw hwmod platform data has been 2175 + * dropped. 2176 + */ 2177 + static void omap_hwmod_fix_mpu_rt_idx(struct omap_hwmod *oh, 2178 + struct device_node *np, 2179 + struct resource *res) 2180 + { 2181 + struct device_node *child = NULL; 2182 + int error; 2183 + 2184 + child = of_get_next_child(np, child); 2185 + if (!child) 2186 + return; 2187 + 2188 + error = of_address_to_resource(child, oh->mpu_rt_idx, res); 2189 + if (error) 2190 + pr_err("%s: error mapping mpu_rt_idx: %i\n", 2191 + __func__, error); 2192 + } 2193 + 2194 + /** 2164 2195 * omap_hwmod_parse_module_range - map module IO range from device tree 2165 2196 * @oh: struct omap_hwmod * 2166 2197 * @np: struct device_node * ··· 2251 2220 size = be32_to_cpup(ranges); 2252 2221 2253 2222 pr_debug("omap_hwmod: %s %s at 0x%llx size 0x%llx\n", 2254 - oh->name, np->name, base, size); 2223 + oh ? oh->name : "", np->name, base, size); 2224 + 2225 + if (oh && oh->mpu_rt_idx) { 2226 + omap_hwmod_fix_mpu_rt_idx(oh, np, res); 2227 + 2228 + return 0; 2229 + } 2255 2230 2256 2231 res->start = base; 2257 2232 res->end = base + size - 1;
+2
arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dts
··· 46 46 pinctrl-0 = <&mmc0_pins>; 47 47 vmmc-supply = <&reg_cldo1>; 48 48 cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; 49 + bus-width = <4>; 49 50 status = "okay"; 50 51 }; 51 52 ··· 57 56 vqmmc-supply = <&reg_bldo2>; 58 57 non-removable; 59 58 cap-mmc-hw-reset; 59 + bus-width = <8>; 60 60 status = "okay"; 61 61 }; 62 62
+3
arch/arm64/configs/defconfig
··· 38 38 CONFIG_ARCH_BERLIN=y 39 39 CONFIG_ARCH_BRCMSTB=y 40 40 CONFIG_ARCH_EXYNOS=y 41 + CONFIG_ARCH_K3=y 41 42 CONFIG_ARCH_LAYERSCAPE=y 42 43 CONFIG_ARCH_LG1K=y 43 44 CONFIG_ARCH_HISI=y ··· 606 605 CONFIG_ARCH_TEGRA_210_SOC=y 607 606 CONFIG_ARCH_TEGRA_186_SOC=y 608 607 CONFIG_ARCH_TEGRA_194_SOC=y 608 + CONFIG_ARCH_K3_AM6_SOC=y 609 + CONFIG_SOC_TI=y 609 610 CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=y 610 611 CONFIG_EXTCON_USB_GPIO=y 611 612 CONFIG_EXTCON_USBC_CROS_EC=y
+16 -19
drivers/bus/ti-sysc.c
··· 498 498 499 499 /** 500 500 * syc_ioremap - ioremap register space for the interconnect target module 501 - * @ddata: deviec driver data 501 + * @ddata: device driver data 502 502 * 503 503 * Note that the interconnect target module registers can be anywhere 504 - * within the first child device address space. For example, SGX has 505 - * them at offset 0x1fc00 in the 32MB module address space. We just 506 - * what we need around the interconnect target module registers. 504 + * within the interconnect target module range. For example, SGX has 505 + * them at offset 0x1fc00 in the 32MB module address space. And cpsw 506 + * has them at offset 0x1200 in the CPSW_WR child. Usually the 507 + * the interconnect target module registers are at the beginning of 508 + * the module range though. 507 509 */ 508 510 static int sysc_ioremap(struct sysc *ddata) 509 511 { 510 - u32 size = 0; 512 + int size; 511 513 512 - if (ddata->offsets[SYSC_SYSSTATUS] >= 0) 513 - size = ddata->offsets[SYSC_SYSSTATUS]; 514 - else if (ddata->offsets[SYSC_SYSCONFIG] >= 0) 515 - size = ddata->offsets[SYSC_SYSCONFIG]; 516 - else if (ddata->offsets[SYSC_REVISION] >= 0) 517 - size = ddata->offsets[SYSC_REVISION]; 518 - else 514 + size = max3(ddata->offsets[SYSC_REVISION], 515 + ddata->offsets[SYSC_SYSCONFIG], 516 + ddata->offsets[SYSC_SYSSTATUS]); 517 + 518 + if (size < 0 || (size + sizeof(u32)) > ddata->module_size) 519 519 return -EINVAL; 520 - 521 - size &= 0xfff00; 522 - size += SZ_256; 523 520 524 521 ddata->module_va = devm_ioremap(ddata->dev, 525 522 ddata->module_pa, 526 - size); 523 + size + sizeof(u32)); 527 524 if (!ddata->module_va) 528 525 return -EIO; 529 526 ··· 1221 1224 if (!pm_runtime_status_suspended(dev)) { 1222 1225 error = pm_generic_runtime_suspend(dev); 1223 1226 if (error) { 1224 - dev_err(dev, "%s error at %i: %i\n", 1225 - __func__, __LINE__, error); 1227 + dev_warn(dev, "%s busy at %i: %i\n", 1228 + __func__, __LINE__, error); 1226 1229 1227 - return error; 1230 + return 0; 1228 1231 } 1229 1232 1230 1233 error = sysc_runtime_suspend(ddata->dev);
+7 -1
drivers/firmware/arm_scmi/perf.c
··· 166 166 le32_to_cpu(attr->sustained_freq_khz); 167 167 dom_info->sustained_perf_level = 168 168 le32_to_cpu(attr->sustained_perf_level); 169 - dom_info->mult_factor = (dom_info->sustained_freq_khz * 1000) / 169 + if (!dom_info->sustained_freq_khz || 170 + !dom_info->sustained_perf_level) 171 + /* CPUFreq converts to kHz, hence default 1000 */ 172 + dom_info->mult_factor = 1000; 173 + else 174 + dom_info->mult_factor = 175 + (dom_info->sustained_freq_khz * 1000) / 170 176 dom_info->sustained_perf_level; 171 177 memcpy(dom_info->name, attr->name, SCMI_MAX_STR_SIZE); 172 178 }
+1
drivers/hwmon/raspberrypi-hwmon.c
··· 164 164 MODULE_AUTHOR("Stefan Wahren <stefan.wahren@i2se.com>"); 165 165 MODULE_DESCRIPTION("Raspberry Pi voltage sensor driver"); 166 166 MODULE_LICENSE("GPL v2"); 167 + MODULE_ALIAS("platform:raspberrypi-hwmon");
+1 -1
drivers/memory/ti-aemif.c
··· 411 411 if (ret < 0) 412 412 goto error; 413 413 } 414 - } else { 414 + } else if (pdata) { 415 415 for (i = 0; i < pdata->num_sub_devices; i++) { 416 416 pdata->sub_devices[i].dev.parent = dev; 417 417 ret = platform_device_register(&pdata->sub_devices[i]);
+11
drivers/soc/fsl/qbman/bman_ccsr.c
··· 120 120 */ 121 121 static dma_addr_t fbpr_a; 122 122 static size_t fbpr_sz; 123 + static int __bman_probed; 123 124 124 125 static int bman_fbpr(struct reserved_mem *rmem) 125 126 { ··· 167 166 return IRQ_HANDLED; 168 167 } 169 168 169 + int bman_is_probed(void) 170 + { 171 + return __bman_probed; 172 + } 173 + EXPORT_SYMBOL_GPL(bman_is_probed); 174 + 170 175 static int fsl_bman_probe(struct platform_device *pdev) 171 176 { 172 177 int ret, err_irq; ··· 181 174 struct resource *res; 182 175 u16 id, bm_pool_cnt; 183 176 u8 major, minor; 177 + 178 + __bman_probed = -1; 184 179 185 180 res = platform_get_resource(pdev, IORESOURCE_MEM, 0); 186 181 if (!res) { ··· 263 254 0, bm_pool_cnt - 1, ret); 264 255 return ret; 265 256 } 257 + 258 + __bman_probed = 1; 266 259 267 260 return 0; 268 261 };
+3
drivers/soc/fsl/qbman/qman.c
··· 2729 2729 { 2730 2730 unsigned long addr; 2731 2731 2732 + if (!p) 2733 + return -ENODEV; 2734 + 2732 2735 addr = gen_pool_alloc(p, cnt); 2733 2736 if (!addr) 2734 2737 return -ENOMEM;
+11
drivers/soc/fsl/qbman/qman_ccsr.c
··· 273 273 static u32 __iomem *qm_ccsr_start; 274 274 /* A SDQCR mask comprising all the available/visible pool channels */ 275 275 static u32 qm_pools_sdqcr; 276 + static int __qman_probed; 276 277 277 278 static inline u32 qm_ccsr_in(u32 offset) 278 279 { ··· 687 686 return 0; 688 687 } 689 688 689 + int qman_is_probed(void) 690 + { 691 + return __qman_probed; 692 + } 693 + EXPORT_SYMBOL_GPL(qman_is_probed); 694 + 690 695 static int fsl_qman_probe(struct platform_device *pdev) 691 696 { 692 697 struct device *dev = &pdev->dev; ··· 701 694 int ret, err_irq; 702 695 u16 id; 703 696 u8 major, minor; 697 + 698 + __qman_probed = -1; 704 699 705 700 res = platform_get_resource(pdev, IORESOURCE_MEM, 0); 706 701 if (!res) { ··· 836 827 ret = qman_wq_alloc(); 837 828 if (ret) 838 829 return ret; 830 + 831 + __qman_probed = 1; 839 832 840 833 return 0; 841 834 }
+8
drivers/soc/fsl/qbman/qman_portal.c
··· 227 227 int irq, cpu, err; 228 228 u32 val; 229 229 230 + err = qman_is_probed(); 231 + if (!err) 232 + return -EPROBE_DEFER; 233 + if (err < 0) { 234 + dev_err(&pdev->dev, "failing probe due to qman probe error\n"); 235 + return -ENODEV; 236 + } 237 + 230 238 pcfg = devm_kmalloc(dev, sizeof(*pcfg), GFP_KERNEL); 231 239 if (!pcfg) 232 240 return -ENOMEM;
+1 -1
drivers/soc/fsl/qe/ucc.c
··· 626 626 { 627 627 u32 shift; 628 628 629 - shift = (mode == COMM_DIR_RX) ? RX_SYNC_SHIFT_BASE : RX_SYNC_SHIFT_BASE; 629 + shift = (mode == COMM_DIR_RX) ? RX_SYNC_SHIFT_BASE : TX_SYNC_SHIFT_BASE; 630 630 shift -= tdm_num * 2; 631 631 632 632 return shift;
+8
include/soc/fsl/bman.h
··· 126 126 */ 127 127 int bman_acquire(struct bman_pool *pool, struct bm_buffer *bufs, u8 num); 128 128 129 + /** 130 + * bman_is_probed - Check if bman is probed 131 + * 132 + * Returns 1 if the bman driver successfully probed, -1 if the bman driver 133 + * failed to probe or 0 if the bman driver did not probed yet. 134 + */ 135 + int bman_is_probed(void); 136 + 129 137 #endif /* __FSL_BMAN_H */
+8
include/soc/fsl/qman.h
··· 1186 1186 */ 1187 1187 int qman_release_cgrid(u32 id); 1188 1188 1189 + /** 1190 + * qman_is_probed - Check if qman is probed 1191 + * 1192 + * Returns 1 if the qman driver successfully probed, -1 if the qman driver 1193 + * failed to probe or 0 if the qman driver did not probed yet. 1194 + */ 1195 + int qman_is_probed(void); 1196 + 1189 1197 #endif /* __FSL_QMAN_H */