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

Configure Feed

Select the types of activity you want to include in your feed.

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

Pull ARM SoC fixes from Olof Johansson:
"A set of fixes that have been coming in over the last few weeks, the
usual mix of fixes:

- DT fixups for TI K3

- SATA drive detection fix for TI DRA7

- Power management fixes and a few build warning removals for OMAP

- OP-TEE fix to use standard API for UUID exporting

- DT fixes for a handful of i.MX boards

And a few other smaller items"

* tag 'arm-soc-fixes-v5.13-2' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (29 commits)
arm64: meson: select COMMON_CLK
soc: amlogic: meson-clk-measure: remove redundant dev_err call in meson_msr_probe()
ARM: OMAP1: ams-delta: remove unused function ams_delta_camera_power
bus: ti-sysc: Fix flakey idling of uarts and stop using swsup_sidle_act
ARM: dts: imx: emcon-avari: Fix nxp,pca8574 #gpio-cells
ARM: dts: imx7d-pico: Fix the 'tuning-step' property
ARM: dts: imx7d-meerkat96: Fix the 'tuning-step' property
arm64: dts: freescale: sl28: var1: fix RGMII clock and voltage
arm64: dts: freescale: sl28: var4: fix RGMII clock and voltage
ARM: imx: pm-imx27: Include "common.h"
arm64: dts: zii-ultra: fix 12V_MAIN voltage
arm64: dts: zii-ultra: remove second GEN_3V3 regulator instance
arm64: dts: ls1028a: fix memory node
bus: ti-sysc: Fix am335x resume hang for usb otg module
ARM: OMAP2+: Fix build warning when mmc_omap is not built
ARM: OMAP1: isp1301-omap: Add missing gpiod_add_lookup_table function
ARM: OMAP1: Fix use of possibly uninitialized irq variable
optee: use export_uuid() to copy client UUID
arm64: dts: ti: k3*: Introduce reg definition for interrupt routers
arm64: dts: ti: k3-am65|j721e|am64: Map the dma / navigator subsystem via explicit ranges
...

+160 -126
+5 -1
arch/arm/boot/dts/imx6dl-yapp4-common.dtsi
··· 105 105 phy-reset-gpios = <&gpio1 25 GPIO_ACTIVE_LOW>; 106 106 phy-reset-duration = <20>; 107 107 phy-supply = <&sw2_reg>; 108 - phy-handle = <&ethphy0>; 109 108 status = "okay"; 109 + 110 + fixed-link { 111 + speed = <1000>; 112 + full-duplex; 113 + }; 110 114 111 115 mdio { 112 116 #address-cells = <1>;
+12
arch/arm/boot/dts/imx6q-dhcom-som.dtsi
··· 406 406 vin-supply = <&sw1_reg>; 407 407 }; 408 408 409 + &reg_pu { 410 + vin-supply = <&sw1_reg>; 411 + }; 412 + 413 + &reg_vdd1p1 { 414 + vin-supply = <&sw2_reg>; 415 + }; 416 + 417 + &reg_vdd2p5 { 418 + vin-supply = <&sw2_reg>; 419 + }; 420 + 409 421 &uart1 { 410 422 pinctrl-names = "default"; 411 423 pinctrl-0 = <&pinctrl_uart1>;
+1 -1
arch/arm/boot/dts/imx6qdl-emcon-avari.dtsi
··· 126 126 compatible = "nxp,pca8574"; 127 127 reg = <0x3a>; 128 128 gpio-controller; 129 - #gpio-cells = <1>; 129 + #gpio-cells = <2>; 130 130 }; 131 131 }; 132 132
+1 -1
arch/arm/boot/dts/imx7d-meerkat96.dts
··· 193 193 pinctrl-names = "default"; 194 194 pinctrl-0 = <&pinctrl_usdhc1>; 195 195 keep-power-in-suspend; 196 - tuning-step = <2>; 196 + fsl,tuning-step = <2>; 197 197 vmmc-supply = <&reg_3p3v>; 198 198 no-1-8-v; 199 199 broken-cd;
+1 -1
arch/arm/boot/dts/imx7d-pico.dtsi
··· 351 351 pinctrl-2 = <&pinctrl_usdhc1_200mhz>; 352 352 cd-gpios = <&gpio5 0 GPIO_ACTIVE_LOW>; 353 353 bus-width = <4>; 354 - tuning-step = <2>; 354 + fsl,tuning-step = <2>; 355 355 vmmc-supply = <&reg_3p3v>; 356 356 wakeup-source; 357 357 no-1-8-v;
+1
arch/arm/mach-imx/pm-imx27.c
··· 12 12 #include <linux/suspend.h> 13 13 #include <linux/io.h> 14 14 15 + #include "common.h" 15 16 #include "hardware.h" 16 17 17 18 static int mx27_suspend_enter(suspend_state_t state)
-14
arch/arm/mach-omap1/board-ams-delta.c
··· 458 458 459 459 #ifdef CONFIG_LEDS_TRIGGERS 460 460 DEFINE_LED_TRIGGER(ams_delta_camera_led_trigger); 461 - 462 - static int ams_delta_camera_power(struct device *dev, int power) 463 - { 464 - /* 465 - * turn on camera LED 466 - */ 467 - if (power) 468 - led_trigger_event(ams_delta_camera_led_trigger, LED_FULL); 469 - else 470 - led_trigger_event(ams_delta_camera_led_trigger, LED_OFF); 471 - return 0; 472 - } 473 - #else 474 - #define ams_delta_camera_power NULL 475 461 #endif 476 462 477 463 static struct platform_device ams_delta_audio_device = {
+3 -1
arch/arm/mach-omap1/board-h2.c
··· 320 320 { 321 321 if (!IS_BUILTIN(CONFIG_TPS65010)) 322 322 return -ENOSYS; 323 - 323 + 324 324 tps65010_config_vregs1(TPS_LDO2_ENABLE | TPS_VLDO2_3_0V | 325 325 TPS_LDO1_ENABLE | TPS_VLDO1_3_0V); 326 326 ··· 393 393 h2_nand_resource.end += SZ_4K - 1; 394 394 BUG_ON(gpio_request(H2_NAND_RB_GPIO_PIN, "NAND ready") < 0); 395 395 gpio_direction_input(H2_NAND_RB_GPIO_PIN); 396 + 397 + gpiod_add_lookup_table(&isp1301_gpiod_table); 396 398 397 399 omap_cfg_reg(L3_1610_FLASH_CS2B_OE); 398 400 omap_cfg_reg(M8_1610_FLASH_CS2B_WE);
+7 -3
arch/arm/mach-omap1/pm.c
··· 655 655 irq = INT_7XX_WAKE_UP_REQ; 656 656 else if (cpu_is_omap16xx()) 657 657 irq = INT_1610_WAKE_UP_REQ; 658 - if (request_irq(irq, omap_wakeup_interrupt, 0, "peripheral wakeup", 659 - NULL)) 660 - pr_err("Failed to request irq %d (peripheral wakeup)\n", irq); 658 + else 659 + irq = -1; 660 + 661 + if (irq >= 0) { 662 + if (request_irq(irq, omap_wakeup_interrupt, 0, "peripheral wakeup", NULL)) 663 + pr_err("Failed to request irq %d (peripheral wakeup)\n", irq); 664 + } 661 665 662 666 /* Program new power ramp-up time 663 667 * (0 for most boards since we don't lower voltage when in deep sleep)
+1 -1
arch/arm/mach-omap2/board-n8x0.c
··· 322 322 323 323 static void n8x0_mmc_callback(void *data, u8 card_mask) 324 324 { 325 + #ifdef CONFIG_MMC_OMAP 325 326 int bit, *openp, index; 326 327 327 328 if (board_is_n800()) { ··· 340 339 else 341 340 *openp = 0; 342 341 343 - #ifdef CONFIG_MMC_OMAP 344 342 omap_mmc_notify_cover_event(mmc_device, index, *openp); 345 343 #else 346 344 pr_warn("MMC: notify cover event not available\n");
+1
arch/arm64/Kconfig.platforms
··· 165 165 166 166 config ARCH_MESON 167 167 bool "Amlogic Platforms" 168 + select COMMON_CLK 168 169 select MESON_IRQ_GPIO 169 170 help 170 171 This enables support for the arm64 based Amlogic SoCs
+2 -1
arch/arm64/boot/dts/freescale/fsl-ls1028a-kontron-sl28-var1.dts
··· 46 46 eee-broken-100tx; 47 47 qca,clk-out-frequency = <125000000>; 48 48 qca,clk-out-strength = <AR803X_STRENGTH_FULL>; 49 - vddio-supply = <&vddh>; 49 + qca,keep-pll-enabled; 50 + vddio-supply = <&vddio>; 50 51 51 52 vddio: vddio-regulator { 52 53 regulator-name = "VDDIO";
+2 -3
arch/arm64/boot/dts/freescale/fsl-ls1028a-kontron-sl28-var4.dts
··· 31 31 reg = <0x4>; 32 32 eee-broken-1000t; 33 33 eee-broken-100tx; 34 - 35 34 qca,clk-out-frequency = <125000000>; 36 35 qca,clk-out-strength = <AR803X_STRENGTH_FULL>; 37 - 38 - vddio-supply = <&vddh>; 36 + qca,keep-pll-enabled; 37 + vddio-supply = <&vddio>; 39 38 40 39 vddio: vddio-regulator { 41 40 regulator-name = "VDDIO";
+2 -2
arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi
··· 197 197 ddr: memory-controller@1080000 { 198 198 compatible = "fsl,qoriq-memory-controller"; 199 199 reg = <0x0 0x1080000 0x0 0x1000>; 200 - interrupts = <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>; 201 - big-endian; 200 + interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>; 201 + little-endian; 202 202 }; 203 203 204 204 dcfg: syscon@1e00000 {
+5 -5
arch/arm64/boot/dts/freescale/imx8mq-zii-ultra-rmb3.dts
··· 88 88 pinctrl-0 = <&pinctrl_codec2>; 89 89 reg = <0x18>; 90 90 #sound-dai-cells = <0>; 91 - HPVDD-supply = <&reg_3p3v>; 92 - SPRVDD-supply = <&reg_3p3v>; 93 - SPLVDD-supply = <&reg_3p3v>; 94 - AVDD-supply = <&reg_3p3v>; 95 - IOVDD-supply = <&reg_3p3v>; 91 + HPVDD-supply = <&reg_gen_3p3>; 92 + SPRVDD-supply = <&reg_gen_3p3>; 93 + SPLVDD-supply = <&reg_gen_3p3>; 94 + AVDD-supply = <&reg_gen_3p3>; 95 + IOVDD-supply = <&reg_gen_3p3>; 96 96 DVDD-supply = <&vgen4_reg>; 97 97 reset-gpios = <&gpio3 4 GPIO_ACTIVE_HIGH>; 98 98 };
+7 -16
arch/arm64/boot/dts/freescale/imx8mq-zii-ultra.dtsi
··· 45 45 reg_12p0_main: regulator-12p0-main { 46 46 compatible = "regulator-fixed"; 47 47 regulator-name = "12V_MAIN"; 48 - regulator-min-microvolt = <5000000>; 49 - regulator-max-microvolt = <5000000>; 48 + regulator-min-microvolt = <12000000>; 49 + regulator-max-microvolt = <12000000>; 50 50 regulator-always-on; 51 51 }; 52 52 ··· 69 69 }; 70 70 71 71 reg_gen_3p3: regulator-gen-3p3 { 72 - compatible = "regulator-fixed"; 73 - vin-supply = <&reg_3p3_main>; 74 - regulator-name = "GEN_3V3"; 75 - regulator-min-microvolt = <3300000>; 76 - regulator-max-microvolt = <3300000>; 77 - regulator-always-on; 78 - }; 79 - 80 - reg_3p3v: regulator-3p3v { 81 72 compatible = "regulator-fixed"; 82 73 vin-supply = <&reg_3p3_main>; 83 74 regulator-name = "GEN_3V3"; ··· 406 415 pinctrl-0 = <&pinctrl_codec1>; 407 416 reg = <0x18>; 408 417 #sound-dai-cells = <0>; 409 - HPVDD-supply = <&reg_3p3v>; 410 - SPRVDD-supply = <&reg_3p3v>; 411 - SPLVDD-supply = <&reg_3p3v>; 412 - AVDD-supply = <&reg_3p3v>; 413 - IOVDD-supply = <&reg_3p3v>; 418 + HPVDD-supply = <&reg_gen_3p3>; 419 + SPRVDD-supply = <&reg_gen_3p3>; 420 + SPLVDD-supply = <&reg_gen_3p3>; 421 + AVDD-supply = <&reg_gen_3p3>; 422 + IOVDD-supply = <&reg_gen_3p3>; 414 423 DVDD-supply = <&vgen4_reg>; 415 424 reset-gpios = <&gpio3 3 GPIO_ACTIVE_LOW>; 416 425 };
+6 -5
arch/arm64/boot/dts/ti/k3-am64-main.dtsi
··· 42 42 }; 43 43 }; 44 44 45 - dmss: dmss { 45 + dmss: bus@48000000 { 46 46 compatible = "simple-mfd"; 47 47 #address-cells = <2>; 48 48 #size-cells = <2>; 49 49 dma-ranges; 50 - ranges; 50 + ranges = <0x00 0x48000000 0x00 0x48000000 0x00 0x06400000>; 51 51 52 52 ti,sci-dev-id = <25>; 53 53 ··· 134 134 }; 135 135 }; 136 136 137 - dmsc: dmsc@44043000 { 137 + dmsc: system-controller@44043000 { 138 138 compatible = "ti,k2g-sci"; 139 139 ti,host-id = <12>; 140 140 mbox-names = "rx", "tx"; ··· 148 148 #power-domain-cells = <2>; 149 149 }; 150 150 151 - k3_clks: clocks { 151 + k3_clks: clock-controller { 152 152 compatible = "ti,k2g-sci-clk"; 153 153 #clock-cells = <2>; 154 154 }; ··· 373 373 clocks = <&k3_clks 145 0>; 374 374 }; 375 375 376 - main_gpio_intr: interrupt-controller0 { 376 + main_gpio_intr: interrupt-controller@a00000 { 377 377 compatible = "ti,sci-intr"; 378 + reg = <0x00 0x00a00000 0x00 0x800>; 378 379 ti,intr-trigger-type = <1>; 379 380 interrupt-controller; 380 381 interrupt-parent = <&gic500>;
+2 -1
arch/arm64/boot/dts/ti/k3-am64-mcu.dtsi
··· 74 74 clocks = <&k3_clks 148 0>; 75 75 }; 76 76 77 - mcu_gpio_intr: interrupt-controller1 { 77 + mcu_gpio_intr: interrupt-controller@4210000 { 78 78 compatible = "ti,sci-intr"; 79 + reg = <0x00 0x04210000 0x00 0x200>; 79 80 ti,intr-trigger-type = <1>; 80 81 interrupt-controller; 81 82 interrupt-parent = <&gic500>;
+6 -4
arch/arm64/boot/dts/ti/k3-am65-main.dtsi
··· 433 433 #phy-cells = <0>; 434 434 }; 435 435 436 - intr_main_gpio: interrupt-controller0 { 436 + intr_main_gpio: interrupt-controller@a00000 { 437 437 compatible = "ti,sci-intr"; 438 + reg = <0x0 0x00a00000 0x0 0x400>; 438 439 ti,intr-trigger-type = <1>; 439 440 interrupt-controller; 440 441 interrupt-parent = <&gic500>; ··· 445 444 ti,interrupt-ranges = <0 392 32>; 446 445 }; 447 446 448 - main-navss { 447 + main_navss: bus@30800000 { 449 448 compatible = "simple-mfd"; 450 449 #address-cells = <2>; 451 450 #size-cells = <2>; 452 - ranges; 451 + ranges = <0x0 0x30800000 0x0 0x30800000 0x0 0xbc00000>; 453 452 dma-coherent; 454 453 dma-ranges; 455 454 456 455 ti,sci-dev-id = <118>; 457 456 458 - intr_main_navss: interrupt-controller1 { 457 + intr_main_navss: interrupt-controller@310e0000 { 459 458 compatible = "ti,sci-intr"; 459 + reg = <0x0 0x310e0000 0x0 0x2000>; 460 460 ti,intr-trigger-type = <4>; 461 461 interrupt-controller; 462 462 interrupt-parent = <&gic500>;
+2 -2
arch/arm64/boot/dts/ti/k3-am65-mcu.dtsi
··· 116 116 }; 117 117 }; 118 118 119 - mcu-navss { 119 + mcu_navss: bus@28380000 { 120 120 compatible = "simple-mfd"; 121 121 #address-cells = <2>; 122 122 #size-cells = <2>; 123 - ranges; 123 + ranges = <0x00 0x28380000 0x00 0x28380000 0x00 0x03880000>; 124 124 dma-coherent; 125 125 dma-ranges; 126 126
+7 -6
arch/arm64/boot/dts/ti/k3-am65-wakeup.dtsi
··· 6 6 */ 7 7 8 8 &cbass_wakeup { 9 - dmsc: dmsc { 9 + dmsc: system-controller@44083000 { 10 10 compatible = "ti,am654-sci"; 11 11 ti,host-id = <12>; 12 - #address-cells = <1>; 13 - #size-cells = <1>; 14 - ranges; 15 12 16 13 mbox-names = "rx", "tx"; 17 14 18 15 mboxes= <&secure_proxy_main 11>, 19 16 <&secure_proxy_main 13>; 20 17 18 + reg-names = "debug_messages"; 19 + reg = <0x44083000 0x1000>; 20 + 21 21 k3_pds: power-controller { 22 22 compatible = "ti,sci-pm-domain"; 23 23 #power-domain-cells = <2>; 24 24 }; 25 25 26 - k3_clks: clocks { 26 + k3_clks: clock-controller { 27 27 compatible = "ti,k2g-sci-clk"; 28 28 #clock-cells = <2>; 29 29 }; ··· 69 69 power-domains = <&k3_pds 115 TI_SCI_PD_EXCLUSIVE>; 70 70 }; 71 71 72 - intr_wkup_gpio: interrupt-controller2 { 72 + intr_wkup_gpio: interrupt-controller@42200000 { 73 73 compatible = "ti,sci-intr"; 74 + reg = <0x42200000 0x200>; 74 75 ti,intr-trigger-type = <1>; 75 76 interrupt-controller; 76 77 interrupt-parent = <&gic500>;
-31
arch/arm64/boot/dts/ti/k3-am654-base-board.dts
··· 85 85 gpios = <&wkup_gpio0 27 GPIO_ACTIVE_LOW>; 86 86 }; 87 87 }; 88 - 89 - clk_ov5640_fixed: clock { 90 - compatible = "fixed-clock"; 91 - #clock-cells = <0>; 92 - clock-frequency = <24000000>; 93 - }; 94 88 }; 95 89 96 90 &wkup_pmx0 { ··· 281 287 pinctrl-names = "default"; 282 288 pinctrl-0 = <&main_i2c1_pins_default>; 283 289 clock-frequency = <400000>; 284 - 285 - ov5640: camera@3c { 286 - compatible = "ovti,ov5640"; 287 - reg = <0x3c>; 288 - 289 - clocks = <&clk_ov5640_fixed>; 290 - clock-names = "xclk"; 291 - 292 - port { 293 - csi2_cam0: endpoint { 294 - remote-endpoint = <&csi2_phy0>; 295 - clock-lanes = <0>; 296 - data-lanes = <1 2>; 297 - }; 298 - }; 299 - }; 300 - 301 290 }; 302 291 303 292 &main_i2c2 { ··· 470 493 cdns,read-delay = <0>; 471 494 #address-cells = <1>; 472 495 #size-cells = <1>; 473 - }; 474 - }; 475 - 476 - &csi2_0 { 477 - csi2_phy0: endpoint { 478 - remote-endpoint = <&csi2_cam0>; 479 - clock-lanes = <0>; 480 - data-lanes = <1 2>; 481 496 }; 482 497 }; 483 498
+6 -2
arch/arm64/boot/dts/ti/k3-j7200-main.dtsi
··· 68 68 }; 69 69 }; 70 70 71 - main_gpio_intr: interrupt-controller0 { 71 + main_gpio_intr: interrupt-controller@a00000 { 72 72 compatible = "ti,sci-intr"; 73 + reg = <0x00 0x00a00000 0x00 0x800>; 73 74 ti,intr-trigger-type = <1>; 74 75 interrupt-controller; 75 76 interrupt-parent = <&gic500>; ··· 86 85 #size-cells = <2>; 87 86 ranges = <0x00 0x30000000 0x00 0x30000000 0x00 0x0c400000>; 88 87 ti,sci-dev-id = <199>; 88 + dma-coherent; 89 + dma-ranges; 89 90 90 - main_navss_intr: interrupt-controller1 { 91 + main_navss_intr: interrupt-controller@310e0000 { 91 92 compatible = "ti,sci-intr"; 93 + reg = <0x00 0x310e0000 0x00 0x4000>; 92 94 ti,intr-trigger-type = <4>; 93 95 interrupt-controller; 94 96 interrupt-parent = <&gic500>;
+4 -3
arch/arm64/boot/dts/ti/k3-j7200-mcu-wakeup.dtsi
··· 6 6 */ 7 7 8 8 &cbass_mcu_wakeup { 9 - dmsc: dmsc@44083000 { 9 + dmsc: system-controller@44083000 { 10 10 compatible = "ti,k2g-sci"; 11 11 ti,host-id = <12>; 12 12 ··· 23 23 #power-domain-cells = <2>; 24 24 }; 25 25 26 - k3_clks: clocks { 26 + k3_clks: clock-controller { 27 27 compatible = "ti,k2g-sci-clk"; 28 28 #clock-cells = <2>; 29 29 }; ··· 96 96 clock-names = "fclk"; 97 97 }; 98 98 99 - wkup_gpio_intr: interrupt-controller2 { 99 + wkup_gpio_intr: interrupt-controller@42200000 { 100 100 compatible = "ti,sci-intr"; 101 + reg = <0x00 0x42200000 0x00 0x400>; 101 102 ti,intr-trigger-type = <1>; 102 103 interrupt-controller; 103 104 interrupt-parent = <&gic500>;
+6 -4
arch/arm64/boot/dts/ti/k3-j721e-main.dtsi
··· 76 76 }; 77 77 }; 78 78 79 - main_gpio_intr: interrupt-controller0 { 79 + main_gpio_intr: interrupt-controller@a00000 { 80 80 compatible = "ti,sci-intr"; 81 + reg = <0x00 0x00a00000 0x00 0x800>; 81 82 ti,intr-trigger-type = <1>; 82 83 interrupt-controller; 83 84 interrupt-parent = <&gic500>; ··· 88 87 ti,interrupt-ranges = <8 392 56>; 89 88 }; 90 89 91 - main-navss { 90 + main_navss: bus@30000000 { 92 91 compatible = "simple-mfd"; 93 92 #address-cells = <2>; 94 93 #size-cells = <2>; 95 - ranges; 94 + ranges = <0x00 0x30000000 0x00 0x30000000 0x00 0x0c400000>; 96 95 dma-coherent; 97 96 dma-ranges; 98 97 99 98 ti,sci-dev-id = <199>; 100 99 101 - main_navss_intr: interrupt-controller1 { 100 + main_navss_intr: interrupt-controller@310e0000 { 102 101 compatible = "ti,sci-intr"; 102 + reg = <0x0 0x310e0000 0x0 0x4000>; 103 103 ti,intr-trigger-type = <4>; 104 104 interrupt-controller; 105 105 interrupt-parent = <&gic500>;
+6 -5
arch/arm64/boot/dts/ti/k3-j721e-mcu-wakeup.dtsi
··· 6 6 */ 7 7 8 8 &cbass_mcu_wakeup { 9 - dmsc: dmsc@44083000 { 9 + dmsc: system-controller@44083000 { 10 10 compatible = "ti,k2g-sci"; 11 11 ti,host-id = <12>; 12 12 ··· 23 23 #power-domain-cells = <2>; 24 24 }; 25 25 26 - k3_clks: clocks { 26 + k3_clks: clock-controller { 27 27 compatible = "ti,k2g-sci-clk"; 28 28 #clock-cells = <2>; 29 29 }; ··· 96 96 clock-names = "fclk"; 97 97 }; 98 98 99 - wkup_gpio_intr: interrupt-controller2 { 99 + wkup_gpio_intr: interrupt-controller@42200000 { 100 100 compatible = "ti,sci-intr"; 101 + reg = <0x00 0x42200000 0x00 0x400>; 101 102 ti,intr-trigger-type = <1>; 102 103 interrupt-controller; 103 104 interrupt-parent = <&gic500>; ··· 250 249 }; 251 250 }; 252 251 253 - mcu-navss { 252 + mcu_navss: bus@28380000 { 254 253 compatible = "simple-mfd"; 255 254 #address-cells = <2>; 256 255 #size-cells = <2>; 257 - ranges; 256 + ranges = <0x00 0x28380000 0x00 0x28380000 0x00 0x03880000>; 258 257 dma-coherent; 259 258 dma-ranges; 260 259
+54 -6
drivers/bus/ti-sysc.c
··· 1334 1334 return error; 1335 1335 } 1336 1336 1337 + static int sysc_reinit_module(struct sysc *ddata, bool leave_enabled) 1338 + { 1339 + struct device *dev = ddata->dev; 1340 + int error; 1341 + 1342 + /* Disable target module if it is enabled */ 1343 + if (ddata->enabled) { 1344 + error = sysc_runtime_suspend(dev); 1345 + if (error) 1346 + dev_warn(dev, "reinit suspend failed: %i\n", error); 1347 + } 1348 + 1349 + /* Enable target module */ 1350 + error = sysc_runtime_resume(dev); 1351 + if (error) 1352 + dev_warn(dev, "reinit resume failed: %i\n", error); 1353 + 1354 + if (leave_enabled) 1355 + return error; 1356 + 1357 + /* Disable target module if no leave_enabled was set */ 1358 + error = sysc_runtime_suspend(dev); 1359 + if (error) 1360 + dev_warn(dev, "reinit suspend failed: %i\n", error); 1361 + 1362 + return error; 1363 + } 1364 + 1337 1365 static int __maybe_unused sysc_noirq_suspend(struct device *dev) 1338 1366 { 1339 1367 struct sysc *ddata; ··· 1372 1344 (SYSC_QUIRK_LEGACY_IDLE | SYSC_QUIRK_NO_IDLE)) 1373 1345 return 0; 1374 1346 1375 - return pm_runtime_force_suspend(dev); 1347 + if (!ddata->enabled) 1348 + return 0; 1349 + 1350 + ddata->needs_resume = 1; 1351 + 1352 + return sysc_runtime_suspend(dev); 1376 1353 } 1377 1354 1378 1355 static int __maybe_unused sysc_noirq_resume(struct device *dev) 1379 1356 { 1380 1357 struct sysc *ddata; 1358 + int error = 0; 1381 1359 1382 1360 ddata = dev_get_drvdata(dev); 1383 1361 ··· 1391 1357 (SYSC_QUIRK_LEGACY_IDLE | SYSC_QUIRK_NO_IDLE)) 1392 1358 return 0; 1393 1359 1394 - return pm_runtime_force_resume(dev); 1360 + if (ddata->cfg.quirks & SYSC_QUIRK_REINIT_ON_RESUME) { 1361 + error = sysc_reinit_module(ddata, ddata->needs_resume); 1362 + if (error) 1363 + dev_warn(dev, "noirq_resume failed: %i\n", error); 1364 + } else if (ddata->needs_resume) { 1365 + error = sysc_runtime_resume(dev); 1366 + if (error) 1367 + dev_warn(dev, "noirq_resume failed: %i\n", error); 1368 + } 1369 + 1370 + ddata->needs_resume = 0; 1371 + 1372 + return error; 1395 1373 } 1396 1374 1397 1375 static const struct dev_pm_ops sysc_pm_ops = { ··· 1454 1408 SYSC_QUIRK_SWSUP_SIDLE | SYSC_QUIRK_LEGACY_IDLE), 1455 1409 /* Uarts on omap4 and later */ 1456 1410 SYSC_QUIRK("uart", 0, 0x50, 0x54, 0x58, 0x50411e03, 0xffff00ff, 1457 - SYSC_QUIRK_SWSUP_SIDLE_ACT | SYSC_QUIRK_LEGACY_IDLE), 1411 + SYSC_QUIRK_SWSUP_SIDLE | SYSC_QUIRK_LEGACY_IDLE), 1458 1412 SYSC_QUIRK("uart", 0, 0x50, 0x54, 0x58, 0x47422e03, 0xffffffff, 1459 - SYSC_QUIRK_SWSUP_SIDLE_ACT | SYSC_QUIRK_LEGACY_IDLE), 1413 + SYSC_QUIRK_SWSUP_SIDLE | SYSC_QUIRK_LEGACY_IDLE), 1460 1414 1461 1415 /* Quirks that need to be set based on the module address */ 1462 1416 SYSC_QUIRK("mcpdm", 0x40132000, 0, 0x10, -ENODEV, 0x50000800, 0xffffffff, ··· 1505 1459 SYSC_QUIRK_SWSUP_SIDLE | SYSC_QUIRK_SWSUP_MSTANDBY), 1506 1460 SYSC_QUIRK("tptc", 0, 0, -ENODEV, -ENODEV, 0x40007c00, 0xffffffff, 1507 1461 SYSC_QUIRK_SWSUP_SIDLE | SYSC_QUIRK_SWSUP_MSTANDBY), 1462 + SYSC_QUIRK("sata", 0, 0xfc, 0x1100, -ENODEV, 0x5e412000, 0xffffffff, 1463 + SYSC_QUIRK_SWSUP_SIDLE | SYSC_QUIRK_SWSUP_MSTANDBY), 1508 1464 SYSC_QUIRK("usb_host_hs", 0, 0, 0x10, 0x14, 0x50700100, 0xffffffff, 1509 1465 SYSC_QUIRK_SWSUP_SIDLE | SYSC_QUIRK_SWSUP_MSTANDBY), 1510 1466 SYSC_QUIRK("usb_host_hs", 0, 0, 0x10, -ENODEV, 0x50700101, 0xffffffff, ··· 1514 1466 SYSC_QUIRK("usb_otg_hs", 0, 0x400, 0x404, 0x408, 0x00000050, 1515 1467 0xffffffff, SYSC_QUIRK_SWSUP_SIDLE | SYSC_QUIRK_SWSUP_MSTANDBY), 1516 1468 SYSC_QUIRK("usb_otg_hs", 0, 0, 0x10, -ENODEV, 0x4ea2080d, 0xffffffff, 1517 - SYSC_QUIRK_SWSUP_SIDLE | SYSC_QUIRK_SWSUP_MSTANDBY), 1469 + SYSC_QUIRK_SWSUP_SIDLE | SYSC_QUIRK_SWSUP_MSTANDBY | 1470 + SYSC_QUIRK_REINIT_ON_RESUME), 1518 1471 SYSC_QUIRK("wdt", 0, 0, 0x10, 0x14, 0x502a0500, 0xfffff0f0, 1519 1472 SYSC_MODULE_QUIRK_WDT), 1520 1473 /* PRUSS on am3, am4 and am5 */ ··· 1573 1524 SYSC_QUIRK("prcm", 0, 0, -ENODEV, -ENODEV, 0x40000400, 0xffffffff, 0), 1574 1525 SYSC_QUIRK("rfbi", 0x4832a800, 0, 0x10, 0x14, 0x00000010, 0xffffffff, 0), 1575 1526 SYSC_QUIRK("rfbi", 0x58002000, 0, 0x10, 0x14, 0x00000010, 0xffffffff, 0), 1576 - SYSC_QUIRK("sata", 0, 0xfc, 0x1100, -ENODEV, 0x5e412000, 0xffffffff, 0), 1577 1527 SYSC_QUIRK("scm", 0, 0, 0x10, -ENODEV, 0x40000900, 0xffffffff, 0), 1578 1528 SYSC_QUIRK("scm", 0, 0, -ENODEV, -ENODEV, 0x4e8b0100, 0xffffffff, 0), 1579 1529 SYSC_QUIRK("scm", 0, 0, -ENODEV, -ENODEV, 0x4f000100, 0xffffffff, 0),
+1 -3
drivers/soc/amlogic/meson-clk-measure.c
··· 626 626 627 627 res = platform_get_resource(pdev, IORESOURCE_MEM, 0); 628 628 base = devm_ioremap_resource(&pdev->dev, res); 629 - if (IS_ERR(base)) { 630 - dev_err(&pdev->dev, "io resource mapping failed\n"); 629 + if (IS_ERR(base)) 631 630 return PTR_ERR(base); 632 - } 633 631 634 632 priv->regmap = devm_regmap_init_mmio(&pdev->dev, base, 635 633 &meson_clk_msr_regmap_config);
+4 -2
drivers/tee/optee/call.c
··· 220 220 struct optee_msg_arg *msg_arg; 221 221 phys_addr_t msg_parg; 222 222 struct optee_session *sess = NULL; 223 + uuid_t client_uuid; 223 224 224 225 /* +2 for the meta parameters added below */ 225 226 shm = get_msg_arg(ctx, arg->num_params + 2, &msg_arg, &msg_parg); ··· 241 240 memcpy(&msg_arg->params[0].u.value, arg->uuid, sizeof(arg->uuid)); 242 241 msg_arg->params[1].u.value.c = arg->clnt_login; 243 242 244 - rc = tee_session_calc_client_uuid((uuid_t *)&msg_arg->params[1].u.value, 245 - arg->clnt_login, arg->clnt_uuid); 243 + rc = tee_session_calc_client_uuid(&client_uuid, arg->clnt_login, 244 + arg->clnt_uuid); 246 245 if (rc) 247 246 goto out; 247 + export_uuid(msg_arg->params[1].u.octets, &client_uuid); 248 248 249 249 rc = optee_to_msg_param(msg_arg->params + 2, arg->num_params, param); 250 250 if (rc)
+4 -2
drivers/tee/optee/optee_msg.h
··· 9 9 #include <linux/types.h> 10 10 11 11 /* 12 - * This file defines the OP-TEE message protocol used to communicate 12 + * This file defines the OP-TEE message protocol (ABI) used to communicate 13 13 * with an instance of OP-TEE running in secure world. 14 14 * 15 15 * This file is divided into two sections. ··· 144 144 * @tmem: parameter by temporary memory reference 145 145 * @rmem: parameter by registered memory reference 146 146 * @value: parameter by opaque value 147 + * @octets: parameter by octet string 147 148 * 148 149 * @attr & OPTEE_MSG_ATTR_TYPE_MASK indicates if tmem, rmem or value is used in 149 - * the union. OPTEE_MSG_ATTR_TYPE_VALUE_* indicates value, 150 + * the union. OPTEE_MSG_ATTR_TYPE_VALUE_* indicates value or octets, 150 151 * OPTEE_MSG_ATTR_TYPE_TMEM_* indicates @tmem and 151 152 * OPTEE_MSG_ATTR_TYPE_RMEM_* indicates @rmem, 152 153 * OPTEE_MSG_ATTR_TYPE_NONE indicates that none of the members are used. ··· 158 157 struct optee_msg_param_tmem tmem; 159 158 struct optee_msg_param_rmem rmem; 160 159 struct optee_msg_param_value value; 160 + u8 octets[24]; 161 161 } u; 162 162 }; 163 163
+1
include/linux/platform_data/ti-sysc.h
··· 50 50 s8 emufree_shift; 51 51 }; 52 52 53 + #define SYSC_QUIRK_REINIT_ON_RESUME BIT(27) 53 54 #define SYSC_QUIRK_GPMC_DEBUG BIT(26) 54 55 #define SYSC_MODULE_QUIRK_ENA_RESETDONE BIT(25) 55 56 #define SYSC_MODULE_QUIRK_PRUSS BIT(24)