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

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

Pull ARM SoC fixes from Arnd Bergmann:
"Most of the changes are devicetree fixes for NXP, Mediatek, Rockchips
Arm machines as well as Microchip RISC-V, and most of these address
build-time warnings for spec violations and other minor issues. One of
the Mediatek warnings was enabled by default and prevented a clean
build.

The ones that address serious runtime issues are all on the i.MX
platform:

- a boot time panic on imx8qm

- USB hanging under load on imx8

- regressions on the imx93 ethernet phy

Code fixes include a minor error handling for the i.MX PMU driver, and
a number of firmware driver fixes:

- OP-TEE fix for supplicant based device enumeration, and a new sysfs
attribute to needed to fix a race against userspace

- Arm SCMI fix for possible truncation/overflow in the frequency
computations

- Multiple FF-A fixes for the newly added notification support"

* tag 'soc-fixes-6.7-1' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (55 commits)
MAINTAINERS: change the S32G2 maintainer's email address.
arm64: dts: rockchip: Fix eMMC Data Strobe PD on rk3588
ARM: dts: imx28-xea: Pass the 'model' property
ARM: dts: imx7: Declare timers compatible with fsl,imx6dl-gpt
MAINTAINERS: reinstate freescale ARM64 DT directory in i.MX entry
arm64: dts: imx8-apalis: set wifi regulator to always-on
ARM: imx: Check return value of devm_kasprintf in imx_mmdc_perf_init
arm64: dts: imx8ulp: update gpio node name to align with register address
arm64: dts: imx93: update gpio node name to align with register address
arm64: dts: imx93: correct mediamix power
arm64: dts: imx8qm: Add imx8qm's own pm to avoid panic during startup
arm64: dts: freescale: imx8-ss-dma: Fix #pwm-cells
arm64: dts: freescale: imx8-ss-lsio: Fix #pwm-cells
dt-bindings: pwm: imx-pwm: Unify #pwm-cells for all compatibles
ARM: dts: imx6ul-pico: Describe the Ethernet PHY clock
arm64: dts: imx8mp: imx8mq: Add parkmode-disable-ss-quirk on DWC3
arm64: dts: rockchip: Fix PCI node addresses on rk3399-gru
arm64: dts: rockchip: drop interrupt-names property from rk3588s dfi
firmware: arm_scmi: Fix possible frequency truncation when using level indexing mode
firmware: arm_scmi: Fix frequency truncation by promoting multiplier type
...

+396 -328
+9
Documentation/ABI/testing/sysfs-bus-optee-devices
··· 6 6 OP-TEE bus provides reference to registered drivers under this directory. The <uuid> 7 7 matches Trusted Application (TA) driver and corresponding TA in secure OS. Drivers 8 8 are free to create needed API under optee-ta-<uuid> directory. 9 + 10 + What: /sys/bus/tee/devices/optee-ta-<uuid>/need_supplicant 11 + Date: November 2023 12 + KernelVersion: 6.7 13 + Contact: op-tee@lists.trustedfirmware.org 14 + Description: 15 + Allows to distinguish whether an OP-TEE based TA/device requires user-space 16 + tee-supplicant to function properly or not. This attribute will be present for 17 + devices which depend on tee-supplicant to be running.
+4 -6
Documentation/devicetree/bindings/pwm/imx-pwm.yaml
··· 14 14 15 15 properties: 16 16 "#pwm-cells": 17 - description: | 18 - Should be 2 for i.MX1 and 3 for i.MX27 and newer SoCs. See pwm.yaml 19 - in this directory for a description of the cells format. 20 - enum: 21 - - 2 22 - - 3 17 + description: 18 + The only third cell flag supported by this binding is 19 + PWM_POLARITY_INVERTED. fsl,imx1-pwm does not support this flags. 20 + const: 3 23 21 24 22 compatible: 25 23 oneOf:
+1
Documentation/devicetree/bindings/soc/rockchip/grf.yaml
··· 233 233 - rockchip,rk3399-grf 234 234 - rockchip,rk3399-pmugrf 235 235 - rockchip,rk3568-pmugrf 236 + - rockchip,rk3588-pmugrf 236 237 - rockchip,rv1108-grf 237 238 - rockchip,rv1108-pmugrf 238 239
+2 -1
MAINTAINERS
··· 2143 2143 T: git git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux.git 2144 2144 F: arch/arm/boot/dts/nxp/imx/ 2145 2145 F: arch/arm/boot/dts/nxp/mxs/ 2146 + F: arch/arm64/boot/dts/freescale/ 2146 2147 X: arch/arm64/boot/dts/freescale/fsl-* 2147 2148 X: arch/arm64/boot/dts/freescale/qoriq-* 2148 2149 X: drivers/media/i2c/ ··· 2524 2523 F: drivers/*/*wpcm* 2525 2524 2526 2525 ARM/NXP S32G ARCHITECTURE 2527 - M: Chester Lin <clin@suse.com> 2526 + M: Chester Lin <chester62515@gmail.com> 2528 2527 R: Andreas Färber <afaerber@suse.de> 2529 2528 R: Matthias Brugger <mbrugger@suse.com> 2530 2529 R: NXP S32 Linux Team <s32@nxp.com>
+1 -3
arch/arm/boot/dts/broadcom/bcm2711-rpi-400.dts
··· 36 36 gpios = <&gpio 42 GPIO_ACTIVE_HIGH>; 37 37 }; 38 38 39 - &leds { 40 - /delete-node/ led_act; 41 - }; 39 + /delete-node/ &led_act; 42 40 43 41 &pm { 44 42 /delete-property/ system-power-controller;
+2 -2
arch/arm/boot/dts/nxp/imx/imx6q-skov-reve-mi1010ait-1cp1.dts
··· 37 37 38 38 &clks { 39 39 assigned-clocks = <&clks IMX6QDL_CLK_LDB_DI0_SEL>, 40 - <&clks IMX6QDL_CLK_LDB_DI1_SEL>; 40 + <&clks IMX6QDL_CLK_LDB_DI1_SEL>, <&clks IMX6QDL_CLK_ENET_REF_SEL>; 41 41 assigned-clock-parents = <&clks IMX6QDL_CLK_PLL5_VIDEO_DIV>, 42 - <&clks IMX6QDL_CLK_PLL5_VIDEO_DIV>; 42 + <&clks IMX6QDL_CLK_PLL5_VIDEO_DIV>, <&clk50m_phy>; 43 43 }; 44 44 45 45 &hdmi {
+2
arch/arm/boot/dts/nxp/imx/imx6ul-pico.dtsi
··· 121 121 max-speed = <100>; 122 122 interrupt-parent = <&gpio5>; 123 123 interrupts = <6 IRQ_TYPE_LEVEL_LOW>; 124 + clocks = <&clks IMX6UL_CLK_ENET_REF>; 125 + clock-names = "rmii-ref"; 124 126 }; 125 127 }; 126 128 };
+4 -4
arch/arm/boot/dts/nxp/imx/imx7s.dtsi
··· 454 454 }; 455 455 456 456 gpt1: timer@302d0000 { 457 - compatible = "fsl,imx7d-gpt", "fsl,imx6sx-gpt"; 457 + compatible = "fsl,imx7d-gpt", "fsl,imx6dl-gpt"; 458 458 reg = <0x302d0000 0x10000>; 459 459 interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>; 460 460 clocks = <&clks IMX7D_GPT1_ROOT_CLK>, ··· 463 463 }; 464 464 465 465 gpt2: timer@302e0000 { 466 - compatible = "fsl,imx7d-gpt", "fsl,imx6sx-gpt"; 466 + compatible = "fsl,imx7d-gpt", "fsl,imx6dl-gpt"; 467 467 reg = <0x302e0000 0x10000>; 468 468 interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>; 469 469 clocks = <&clks IMX7D_GPT2_ROOT_CLK>, ··· 473 473 }; 474 474 475 475 gpt3: timer@302f0000 { 476 - compatible = "fsl,imx7d-gpt", "fsl,imx6sx-gpt"; 476 + compatible = "fsl,imx7d-gpt", "fsl,imx6dl-gpt"; 477 477 reg = <0x302f0000 0x10000>; 478 478 interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>; 479 479 clocks = <&clks IMX7D_GPT3_ROOT_CLK>, ··· 483 483 }; 484 484 485 485 gpt4: timer@30300000 { 486 - compatible = "fsl,imx7d-gpt", "fsl,imx6sx-gpt"; 486 + compatible = "fsl,imx7d-gpt", "fsl,imx6dl-gpt"; 487 487 reg = <0x30300000 0x10000>; 488 488 interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>; 489 489 clocks = <&clks IMX7D_GPT4_ROOT_CLK>,
+1
arch/arm/boot/dts/nxp/mxs/imx28-xea.dts
··· 8 8 #include "imx28-lwe.dtsi" 9 9 10 10 / { 11 + model = "Liebherr XEA board"; 11 12 compatible = "lwn,imx28-xea", "fsl,imx28"; 12 13 }; 13 14
+1 -1
arch/arm/boot/dts/rockchip/rk3128.dtsi
··· 848 848 }; 849 849 850 850 sdmmc_pwren: sdmmc-pwren { 851 - rockchip,pins = <1 RK_PB6 1 &pcfg_pull_default>; 851 + rockchip,pins = <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_default>; 852 852 }; 853 853 854 854 sdmmc_bus4: sdmmc-bus4 {
+3 -3
arch/arm/boot/dts/rockchip/rk322x.dtsi
··· 215 215 216 216 power-domain@RK3228_PD_VOP { 217 217 reg = <RK3228_PD_VOP>; 218 - clocks =<&cru ACLK_VOP>, 219 - <&cru DCLK_VOP>, 220 - <&cru HCLK_VOP>; 218 + clocks = <&cru ACLK_VOP>, 219 + <&cru DCLK_VOP>, 220 + <&cru HCLK_VOP>; 221 221 pm_qos = <&qos_vop>; 222 222 #power-domain-cells = <0>; 223 223 };
+6 -1
arch/arm/mach-imx/mmdc.c
··· 501 501 502 502 name = devm_kasprintf(&pdev->dev, 503 503 GFP_KERNEL, "mmdc%d", ret); 504 + if (!name) { 505 + ret = -ENOMEM; 506 + goto pmu_release_id; 507 + } 504 508 505 509 pmu_mmdc->mmdc_ipg_clk = mmdc_ipg_clk; 506 510 pmu_mmdc->devtype_data = (struct fsl_mmdc_devtype_data *)of_id->data; ··· 527 523 528 524 pmu_register_err: 529 525 pr_warn("MMDC Perf PMU failed (%d), disabled\n", ret); 530 - ida_simple_remove(&mmdc_ida, pmu_mmdc->id); 531 526 cpuhp_state_remove_instance_nocalls(cpuhp_mmdc_state, &pmu_mmdc->node); 532 527 hrtimer_cancel(&pmu_mmdc->hrtimer); 528 + pmu_release_id: 529 + ida_simple_remove(&mmdc_ida, pmu_mmdc->id); 533 530 pmu_free: 534 531 kfree(pmu_mmdc); 535 532 return ret;
+1 -4
arch/arm64/boot/dts/freescale/imx8-apalis-v1.1.dtsi
··· 82 82 pinctrl-0 = <&pinctrl_wifi_pdn>; 83 83 gpio = <&lsio_gpio1 28 GPIO_ACTIVE_HIGH>; 84 84 enable-active-high; 85 + regulator-always-on; 85 86 regulator-name = "wifi_pwrdn_fake_regulator"; 86 87 regulator-settling-time-us = <100>; 87 - 88 - regulator-state-mem { 89 - regulator-off-in-suspend; 90 - }; 91 88 }; 92 89 93 90 reg_pcie_switch: regulator-pcie-switch {
+1 -1
arch/arm64/boot/dts/freescale/imx8-ss-dma.dtsi
··· 149 149 clock-names = "ipg", "per"; 150 150 assigned-clocks = <&clk IMX_SC_R_LCD_0_PWM_0 IMX_SC_PM_CLK_PER>; 151 151 assigned-clock-rates = <24000000>; 152 - #pwm-cells = <2>; 152 + #pwm-cells = <3>; 153 153 power-domains = <&pd IMX_SC_R_LCD_0_PWM_0>; 154 154 }; 155 155
+4 -4
arch/arm64/boot/dts/freescale/imx8-ss-lsio.dtsi
··· 29 29 <&pwm0_lpcg 1>; 30 30 assigned-clocks = <&clk IMX_SC_R_PWM_0 IMX_SC_PM_CLK_PER>; 31 31 assigned-clock-rates = <24000000>; 32 - #pwm-cells = <2>; 32 + #pwm-cells = <3>; 33 33 interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>; 34 34 status = "disabled"; 35 35 }; ··· 42 42 <&pwm1_lpcg 1>; 43 43 assigned-clocks = <&clk IMX_SC_R_PWM_1 IMX_SC_PM_CLK_PER>; 44 44 assigned-clock-rates = <24000000>; 45 - #pwm-cells = <2>; 45 + #pwm-cells = <3>; 46 46 interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>; 47 47 status = "disabled"; 48 48 }; ··· 55 55 <&pwm2_lpcg 1>; 56 56 assigned-clocks = <&clk IMX_SC_R_PWM_2 IMX_SC_PM_CLK_PER>; 57 57 assigned-clock-rates = <24000000>; 58 - #pwm-cells = <2>; 58 + #pwm-cells = <3>; 59 59 interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>; 60 60 status = "disabled"; 61 61 }; ··· 68 68 <&pwm3_lpcg 1>; 69 69 assigned-clocks = <&clk IMX_SC_R_PWM_3 IMX_SC_PM_CLK_PER>; 70 70 assigned-clock-rates = <24000000>; 71 - #pwm-cells = <2>; 71 + #pwm-cells = <3>; 72 72 interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>; 73 73 status = "disabled"; 74 74 };
+2
arch/arm64/boot/dts/freescale/imx8mp.dtsi
··· 2072 2072 phys = <&usb3_phy0>, <&usb3_phy0>; 2073 2073 phy-names = "usb2-phy", "usb3-phy"; 2074 2074 snps,gfladj-refclk-lpm-sel-quirk; 2075 + snps,parkmode-disable-ss-quirk; 2075 2076 }; 2076 2077 2077 2078 }; ··· 2115 2114 phys = <&usb3_phy1>, <&usb3_phy1>; 2116 2115 phy-names = "usb2-phy", "usb3-phy"; 2117 2116 snps,gfladj-refclk-lpm-sel-quirk; 2117 + snps,parkmode-disable-ss-quirk; 2118 2118 }; 2119 2119 }; 2120 2120
+2
arch/arm64/boot/dts/freescale/imx8mq.dtsi
··· 1649 1649 phys = <&usb3_phy0>, <&usb3_phy0>; 1650 1650 phy-names = "usb2-phy", "usb3-phy"; 1651 1651 power-domains = <&pgc_otg1>; 1652 + snps,parkmode-disable-ss-quirk; 1652 1653 status = "disabled"; 1653 1654 }; 1654 1655 ··· 1681 1680 phys = <&usb3_phy1>, <&usb3_phy1>; 1682 1681 phy-names = "usb2-phy", "usb3-phy"; 1683 1682 power-domains = <&pgc_otg2>; 1683 + snps,parkmode-disable-ss-quirk; 1684 1684 status = "disabled"; 1685 1685 }; 1686 1686
+11
arch/arm64/boot/dts/freescale/imx8qm-ss-dma.dtsi
··· 96 96 status = "okay"; 97 97 }; 98 98 99 + &edma3 { 100 + power-domains = <&pd IMX_SC_R_DMA_1_CH0>, 101 + <&pd IMX_SC_R_DMA_1_CH1>, 102 + <&pd IMX_SC_R_DMA_1_CH2>, 103 + <&pd IMX_SC_R_DMA_1_CH3>, 104 + <&pd IMX_SC_R_DMA_1_CH4>, 105 + <&pd IMX_SC_R_DMA_1_CH5>, 106 + <&pd IMX_SC_R_DMA_1_CH6>, 107 + <&pd IMX_SC_R_DMA_1_CH7>; 108 + }; 109 + 99 110 &flexcan1 { 100 111 fsl,clk-source = /bits/ 8 <1>; 101 112 };
+3 -3
arch/arm64/boot/dts/freescale/imx8ulp.dtsi
··· 483 483 }; 484 484 }; 485 485 486 - gpioe: gpio@2d000080 { 486 + gpioe: gpio@2d000000 { 487 487 compatible = "fsl,imx8ulp-gpio"; 488 488 reg = <0x2d000000 0x1000>; 489 489 gpio-controller; ··· 498 498 gpio-ranges = <&iomuxc1 0 32 24>; 499 499 }; 500 500 501 - gpiof: gpio@2d010080 { 501 + gpiof: gpio@2d010000 { 502 502 compatible = "fsl,imx8ulp-gpio"; 503 503 reg = <0x2d010000 0x1000>; 504 504 gpio-controller; ··· 534 534 }; 535 535 }; 536 536 537 - gpiod: gpio@2e200080 { 537 + gpiod: gpio@2e200000 { 538 538 compatible = "fsl,imx8ulp-gpio"; 539 539 reg = <0x2e200000 0x1000>; 540 540 gpio-controller;
+1 -1
arch/arm64/boot/dts/freescale/imx93-tqma9352-mba93xxla.dts
··· 577 577 fsl,pins = < 578 578 MX93_PAD_UART2_TXD__LPUART2_TX 0x31e 579 579 MX93_PAD_UART2_RXD__LPUART2_RX 0x31e 580 - MX93_PAD_SAI1_TXD0__LPUART2_RTS_B 0x31e 580 + MX93_PAD_SAI1_TXD0__LPUART2_RTS_B 0x51e 581 581 >; 582 582 }; 583 583
+5 -5
arch/arm64/boot/dts/freescale/imx93.dtsi
··· 417 417 compatible = "fsl,imx93-src-slice"; 418 418 reg = <0x44462400 0x400>, <0x44465800 0x400>; 419 419 #power-domain-cells = <0>; 420 - clocks = <&clk IMX93_CLK_MEDIA_AXI>, 420 + clocks = <&clk IMX93_CLK_NIC_MEDIA_GATE>, 421 421 <&clk IMX93_CLK_MEDIA_APB>; 422 422 }; 423 423 }; ··· 957 957 }; 958 958 }; 959 959 960 - gpio2: gpio@43810080 { 960 + gpio2: gpio@43810000 { 961 961 compatible = "fsl,imx93-gpio", "fsl,imx8ulp-gpio"; 962 962 reg = <0x43810000 0x1000>; 963 963 gpio-controller; ··· 972 972 gpio-ranges = <&iomuxc 0 4 30>; 973 973 }; 974 974 975 - gpio3: gpio@43820080 { 975 + gpio3: gpio@43820000 { 976 976 compatible = "fsl,imx93-gpio", "fsl,imx8ulp-gpio"; 977 977 reg = <0x43820000 0x1000>; 978 978 gpio-controller; ··· 988 988 <&iomuxc 26 34 2>, <&iomuxc 28 0 4>; 989 989 }; 990 990 991 - gpio4: gpio@43830080 { 991 + gpio4: gpio@43830000 { 992 992 compatible = "fsl,imx93-gpio", "fsl,imx8ulp-gpio"; 993 993 reg = <0x43830000 0x1000>; 994 994 gpio-controller; ··· 1003 1003 gpio-ranges = <&iomuxc 0 38 28>, <&iomuxc 28 36 2>; 1004 1004 }; 1005 1005 1006 - gpio1: gpio@47400080 { 1006 + gpio1: gpio@47400000 { 1007 1007 compatible = "fsl,imx93-gpio", "fsl,imx8ulp-gpio"; 1008 1008 reg = <0x47400000 0x1000>; 1009 1009 gpio-controller;
+1 -1
arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts
··· 73 73 }; 74 74 }; 75 75 76 - memory { 76 + memory@40000000 { 77 77 reg = <0 0x40000000 0 0x40000000>; 78 78 }; 79 79
+1 -1
arch/arm64/boot/dts/mediatek/mt7622-rfb1.dts
··· 55 55 }; 56 56 }; 57 57 58 - memory { 58 + memory@40000000 { 59 59 reg = <0 0x40000000 0 0x20000000>; 60 60 }; 61 61
+7 -5
arch/arm64/boot/dts/mediatek/mt7986a-bananapi-bpi-r3.dts
··· 126 126 compatible = "sff,sfp"; 127 127 i2c-bus = <&i2c_sfp1>; 128 128 los-gpios = <&pio 46 GPIO_ACTIVE_HIGH>; 129 + maximum-power-milliwatt = <3000>; 129 130 mod-def0-gpios = <&pio 49 GPIO_ACTIVE_LOW>; 130 131 tx-disable-gpios = <&pio 20 GPIO_ACTIVE_HIGH>; 131 132 tx-fault-gpios = <&pio 7 GPIO_ACTIVE_HIGH>; ··· 138 137 i2c-bus = <&i2c_sfp2>; 139 138 los-gpios = <&pio 31 GPIO_ACTIVE_HIGH>; 140 139 mod-def0-gpios = <&pio 47 GPIO_ACTIVE_LOW>; 140 + maximum-power-milliwatt = <3000>; 141 141 tx-disable-gpios = <&pio 15 GPIO_ACTIVE_HIGH>; 142 142 tx-fault-gpios = <&pio 48 GPIO_ACTIVE_HIGH>; 143 143 }; ··· 152 150 trip = <&cpu_trip_active_high>; 153 151 }; 154 152 155 - cpu-active-low { 153 + cpu-active-med { 156 154 /* active: set fan to cooling level 1 */ 157 155 cooling-device = <&fan 1 1>; 158 - trip = <&cpu_trip_active_low>; 156 + trip = <&cpu_trip_active_med>; 159 157 }; 160 158 161 - cpu-passive { 162 - /* passive: set fan to cooling level 0 */ 159 + cpu-active-low { 160 + /* active: set fan to cooling level 0 */ 163 161 cooling-device = <&fan 0 0>; 164 - trip = <&cpu_trip_passive>; 162 + trip = <&cpu_trip_active_low>; 165 163 }; 166 164 }; 167 165 };
+20 -4
arch/arm64/boot/dts/mediatek/mt7986a.dtsi
··· 374 374 reg = <0 0x11230000 0 0x1000>, 375 375 <0 0x11c20000 0 0x1000>; 376 376 interrupts = <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>; 377 + assigned-clocks = <&topckgen CLK_TOP_EMMC_416M_SEL>, 378 + <&topckgen CLK_TOP_EMMC_250M_SEL>; 379 + assigned-clock-parents = <&apmixedsys CLK_APMIXED_MPLL>, 380 + <&topckgen CLK_TOP_NET1PLL_D5_D2>; 377 381 clocks = <&topckgen CLK_TOP_EMMC_416M_SEL>, 378 382 <&infracfg CLK_INFRA_MSDC_HCK_CK>, 379 383 <&infracfg CLK_INFRA_MSDC_CK>, ··· 614 610 thermal-sensors = <&thermal 0>; 615 611 616 612 trips { 613 + cpu_trip_crit: crit { 614 + temperature = <125000>; 615 + hysteresis = <2000>; 616 + type = "critical"; 617 + }; 618 + 619 + cpu_trip_hot: hot { 620 + temperature = <120000>; 621 + hysteresis = <2000>; 622 + type = "hot"; 623 + }; 624 + 617 625 cpu_trip_active_high: active-high { 618 626 temperature = <115000>; 619 627 hysteresis = <2000>; 620 628 type = "active"; 621 629 }; 622 630 623 - cpu_trip_active_low: active-low { 631 + cpu_trip_active_med: active-med { 624 632 temperature = <85000>; 625 633 hysteresis = <2000>; 626 634 type = "active"; 627 635 }; 628 636 629 - cpu_trip_passive: passive { 630 - temperature = <40000>; 637 + cpu_trip_active_low: active-low { 638 + temperature = <60000>; 631 639 hysteresis = <2000>; 632 - type = "passive"; 640 + type = "active"; 633 641 }; 634 642 }; 635 643 };
+2 -2
arch/arm64/boot/dts/mediatek/mt8173-evb.dts
··· 44 44 id-gpio = <&pio 16 GPIO_ACTIVE_HIGH>; 45 45 }; 46 46 47 - usb_p1_vbus: regulator@0 { 47 + usb_p1_vbus: regulator-usb-p1 { 48 48 compatible = "regulator-fixed"; 49 49 regulator-name = "usb_vbus"; 50 50 regulator-min-microvolt = <5000000>; ··· 53 53 enable-active-high; 54 54 }; 55 55 56 - usb_p0_vbus: regulator@1 { 56 + usb_p0_vbus: regulator-usb-p0 { 57 57 compatible = "regulator-fixed"; 58 58 regulator-name = "vbus"; 59 59 regulator-min-microvolt = <5000000>;
+2 -2
arch/arm64/boot/dts/mediatek/mt8183-evb.dts
··· 31 31 #address-cells = <2>; 32 32 #size-cells = <2>; 33 33 ranges; 34 - scp_mem_reserved: scp_mem_region { 34 + scp_mem_reserved: memory@50000000 { 35 35 compatible = "shared-dma-pool"; 36 36 reg = <0 0x50000000 0 0x2900000>; 37 37 no-map; 38 38 }; 39 39 }; 40 40 41 - ntc@0 { 41 + thermal-sensor { 42 42 compatible = "murata,ncp03wf104"; 43 43 pullup-uv = <1800000>; 44 44 pullup-ohm = <390000>;
+5 -3
arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi.dtsi
··· 91 91 92 92 &dsi0 { 93 93 status = "okay"; 94 + /delete-property/#size-cells; 95 + /delete-property/#address-cells; 94 96 /delete-node/panel@0; 95 97 ports { 96 98 port { ··· 443 441 }; 444 442 445 443 touchscreen_pins: touchscreen-pins { 446 - touch_int_odl { 444 + touch-int-odl { 447 445 pinmux = <PINMUX_GPIO155__FUNC_GPIO155>; 448 446 input-enable; 449 447 bias-pull-up; 450 448 }; 451 449 452 - touch_rst_l { 450 + touch-rst-l { 453 451 pinmux = <PINMUX_GPIO156__FUNC_GPIO156>; 454 452 output-high; 455 453 }; 456 454 }; 457 455 458 456 trackpad_pins: trackpad-pins { 459 - trackpad_int { 457 + trackpad-int { 460 458 pinmux = <PINMUX_GPIO7__FUNC_GPIO7>; 461 459 input-enable; 462 460 bias-disable; /* pulled externally */
+48 -48
arch/arm64/boot/dts/mediatek/mt8183-kukui.dtsi
··· 116 116 #size-cells = <2>; 117 117 ranges; 118 118 119 - scp_mem_reserved: scp_mem_region { 119 + scp_mem_reserved: memory@50000000 { 120 120 compatible = "shared-dma-pool"; 121 121 reg = <0 0x50000000 0 0x2900000>; 122 122 no-map; ··· 460 460 461 461 &pio { 462 462 aud_pins_default: audiopins { 463 - pins_bus { 463 + pins-bus { 464 464 pinmux = <PINMUX_GPIO97__FUNC_I2S2_MCK>, 465 465 <PINMUX_GPIO98__FUNC_I2S2_BCK>, 466 466 <PINMUX_GPIO101__FUNC_I2S2_LRCK>, ··· 482 482 }; 483 483 484 484 aud_pins_tdm_out_on: audiotdmouton { 485 - pins_bus { 485 + pins-bus { 486 486 pinmux = <PINMUX_GPIO169__FUNC_TDM_BCK_2ND>, 487 487 <PINMUX_GPIO170__FUNC_TDM_LRCK_2ND>, 488 488 <PINMUX_GPIO171__FUNC_TDM_DATA0_2ND>, ··· 494 494 }; 495 495 496 496 aud_pins_tdm_out_off: audiotdmoutoff { 497 - pins_bus { 497 + pins-bus { 498 498 pinmux = <PINMUX_GPIO169__FUNC_GPIO169>, 499 499 <PINMUX_GPIO170__FUNC_GPIO170>, 500 500 <PINMUX_GPIO171__FUNC_GPIO171>, ··· 508 508 }; 509 509 510 510 bt_pins: bt-pins { 511 - pins_bt_en { 511 + pins-bt-en { 512 512 pinmux = <PINMUX_GPIO120__FUNC_GPIO120>; 513 513 output-low; 514 514 }; 515 515 }; 516 516 517 - ec_ap_int_odl: ec_ap_int_odl { 517 + ec_ap_int_odl: ec-ap-int-odl { 518 518 pins1 { 519 519 pinmux = <PINMUX_GPIO151__FUNC_GPIO151>; 520 520 input-enable; ··· 522 522 }; 523 523 }; 524 524 525 - h1_int_od_l: h1_int_od_l { 525 + h1_int_od_l: h1-int-od-l { 526 526 pins1 { 527 527 pinmux = <PINMUX_GPIO153__FUNC_GPIO153>; 528 528 input-enable; ··· 530 530 }; 531 531 532 532 i2c0_pins: i2c0 { 533 - pins_bus { 533 + pins-bus { 534 534 pinmux = <PINMUX_GPIO82__FUNC_SDA0>, 535 535 <PINMUX_GPIO83__FUNC_SCL0>; 536 536 mediatek,pull-up-adv = <3>; ··· 539 539 }; 540 540 541 541 i2c1_pins: i2c1 { 542 - pins_bus { 542 + pins-bus { 543 543 pinmux = <PINMUX_GPIO81__FUNC_SDA1>, 544 544 <PINMUX_GPIO84__FUNC_SCL1>; 545 545 mediatek,pull-up-adv = <3>; ··· 548 548 }; 549 549 550 550 i2c2_pins: i2c2 { 551 - pins_bus { 551 + pins-bus { 552 552 pinmux = <PINMUX_GPIO103__FUNC_SCL2>, 553 553 <PINMUX_GPIO104__FUNC_SDA2>; 554 554 bias-disable; ··· 557 557 }; 558 558 559 559 i2c3_pins: i2c3 { 560 - pins_bus { 560 + pins-bus { 561 561 pinmux = <PINMUX_GPIO50__FUNC_SCL3>, 562 562 <PINMUX_GPIO51__FUNC_SDA3>; 563 563 mediatek,pull-up-adv = <3>; ··· 566 566 }; 567 567 568 568 i2c4_pins: i2c4 { 569 - pins_bus { 569 + pins-bus { 570 570 pinmux = <PINMUX_GPIO105__FUNC_SCL4>, 571 571 <PINMUX_GPIO106__FUNC_SDA4>; 572 572 bias-disable; ··· 575 575 }; 576 576 577 577 i2c5_pins: i2c5 { 578 - pins_bus { 578 + pins-bus { 579 579 pinmux = <PINMUX_GPIO48__FUNC_SCL5>, 580 580 <PINMUX_GPIO49__FUNC_SDA5>; 581 581 mediatek,pull-up-adv = <3>; ··· 584 584 }; 585 585 586 586 i2c6_pins: i2c6 { 587 - pins_bus { 587 + pins-bus { 588 588 pinmux = <PINMUX_GPIO11__FUNC_SCL6>, 589 589 <PINMUX_GPIO12__FUNC_SDA6>; 590 590 bias-disable; ··· 592 592 }; 593 593 594 594 mmc0_pins_default: mmc0-pins-default { 595 - pins_cmd_dat { 595 + pins-cmd-dat { 596 596 pinmux = <PINMUX_GPIO123__FUNC_MSDC0_DAT0>, 597 597 <PINMUX_GPIO128__FUNC_MSDC0_DAT1>, 598 598 <PINMUX_GPIO125__FUNC_MSDC0_DAT2>, ··· 607 607 mediatek,pull-up-adv = <01>; 608 608 }; 609 609 610 - pins_clk { 610 + pins-clk { 611 611 pinmux = <PINMUX_GPIO124__FUNC_MSDC0_CLK>; 612 612 drive-strength = <MTK_DRIVE_14mA>; 613 613 mediatek,pull-down-adv = <10>; 614 614 }; 615 615 616 - pins_rst { 616 + pins-rst { 617 617 pinmux = <PINMUX_GPIO133__FUNC_MSDC0_RSTB>; 618 618 drive-strength = <MTK_DRIVE_14mA>; 619 619 mediatek,pull-down-adv = <01>; ··· 621 621 }; 622 622 623 623 mmc0_pins_uhs: mmc0-pins-uhs { 624 - pins_cmd_dat { 624 + pins-cmd-dat { 625 625 pinmux = <PINMUX_GPIO123__FUNC_MSDC0_DAT0>, 626 626 <PINMUX_GPIO128__FUNC_MSDC0_DAT1>, 627 627 <PINMUX_GPIO125__FUNC_MSDC0_DAT2>, ··· 636 636 mediatek,pull-up-adv = <01>; 637 637 }; 638 638 639 - pins_clk { 639 + pins-clk { 640 640 pinmux = <PINMUX_GPIO124__FUNC_MSDC0_CLK>; 641 641 drive-strength = <MTK_DRIVE_14mA>; 642 642 mediatek,pull-down-adv = <10>; 643 643 }; 644 644 645 - pins_ds { 645 + pins-ds { 646 646 pinmux = <PINMUX_GPIO131__FUNC_MSDC0_DSL>; 647 647 drive-strength = <MTK_DRIVE_14mA>; 648 648 mediatek,pull-down-adv = <10>; 649 649 }; 650 650 651 - pins_rst { 651 + pins-rst { 652 652 pinmux = <PINMUX_GPIO133__FUNC_MSDC0_RSTB>; 653 653 drive-strength = <MTK_DRIVE_14mA>; 654 654 mediatek,pull-up-adv = <01>; ··· 656 656 }; 657 657 658 658 mmc1_pins_default: mmc1-pins-default { 659 - pins_cmd_dat { 659 + pins-cmd-dat { 660 660 pinmux = <PINMUX_GPIO31__FUNC_MSDC1_CMD>, 661 661 <PINMUX_GPIO32__FUNC_MSDC1_DAT0>, 662 662 <PINMUX_GPIO34__FUNC_MSDC1_DAT1>, ··· 666 666 mediatek,pull-up-adv = <10>; 667 667 }; 668 668 669 - pins_clk { 669 + pins-clk { 670 670 pinmux = <PINMUX_GPIO29__FUNC_MSDC1_CLK>; 671 671 input-enable; 672 672 mediatek,pull-down-adv = <10>; ··· 674 674 }; 675 675 676 676 mmc1_pins_uhs: mmc1-pins-uhs { 677 - pins_cmd_dat { 677 + pins-cmd-dat { 678 678 pinmux = <PINMUX_GPIO31__FUNC_MSDC1_CMD>, 679 679 <PINMUX_GPIO32__FUNC_MSDC1_DAT0>, 680 680 <PINMUX_GPIO34__FUNC_MSDC1_DAT1>, ··· 685 685 mediatek,pull-up-adv = <10>; 686 686 }; 687 687 688 - pins_clk { 688 + pins-clk { 689 689 pinmux = <PINMUX_GPIO29__FUNC_MSDC1_CLK>; 690 690 drive-strength = <MTK_DRIVE_8mA>; 691 691 mediatek,pull-down-adv = <10>; ··· 693 693 }; 694 694 }; 695 695 696 - panel_pins_default: panel_pins_default { 697 - panel_reset { 696 + panel_pins_default: panel-pins-default { 697 + panel-reset { 698 698 pinmux = <PINMUX_GPIO45__FUNC_GPIO45>; 699 699 output-low; 700 700 bias-pull-up; 701 701 }; 702 702 }; 703 703 704 - pwm0_pin_default: pwm0_pin_default { 704 + pwm0_pin_default: pwm0-pin-default { 705 705 pins1 { 706 706 pinmux = <PINMUX_GPIO176__FUNC_GPIO176>; 707 707 output-high; ··· 713 713 }; 714 714 715 715 scp_pins: scp { 716 - pins_scp_uart { 716 + pins-scp-uart { 717 717 pinmux = <PINMUX_GPIO110__FUNC_TP_URXD1_AO>, 718 718 <PINMUX_GPIO112__FUNC_TP_UTXD1_AO>; 719 719 }; 720 720 }; 721 721 722 722 spi0_pins: spi0 { 723 - pins_spi { 723 + pins-spi { 724 724 pinmux = <PINMUX_GPIO85__FUNC_SPI0_MI>, 725 725 <PINMUX_GPIO86__FUNC_GPIO86>, 726 726 <PINMUX_GPIO87__FUNC_SPI0_MO>, ··· 730 730 }; 731 731 732 732 spi1_pins: spi1 { 733 - pins_spi { 733 + pins-spi { 734 734 pinmux = <PINMUX_GPIO161__FUNC_SPI1_A_MI>, 735 735 <PINMUX_GPIO162__FUNC_SPI1_A_CSB>, 736 736 <PINMUX_GPIO163__FUNC_SPI1_A_MO>, ··· 740 740 }; 741 741 742 742 spi2_pins: spi2 { 743 - pins_spi { 743 + pins-spi { 744 744 pinmux = <PINMUX_GPIO0__FUNC_SPI2_CSB>, 745 745 <PINMUX_GPIO1__FUNC_SPI2_MO>, 746 746 <PINMUX_GPIO2__FUNC_SPI2_CLK>; 747 747 bias-disable; 748 748 }; 749 - pins_spi_mi { 749 + pins-spi-mi { 750 750 pinmux = <PINMUX_GPIO94__FUNC_SPI2_MI>; 751 751 mediatek,pull-down-adv = <00>; 752 752 }; 753 753 }; 754 754 755 755 spi3_pins: spi3 { 756 - pins_spi { 756 + pins-spi { 757 757 pinmux = <PINMUX_GPIO21__FUNC_SPI3_MI>, 758 758 <PINMUX_GPIO22__FUNC_SPI3_CSB>, 759 759 <PINMUX_GPIO23__FUNC_SPI3_MO>, ··· 763 763 }; 764 764 765 765 spi4_pins: spi4 { 766 - pins_spi { 766 + pins-spi { 767 767 pinmux = <PINMUX_GPIO17__FUNC_SPI4_MI>, 768 768 <PINMUX_GPIO18__FUNC_SPI4_CSB>, 769 769 <PINMUX_GPIO19__FUNC_SPI4_MO>, ··· 773 773 }; 774 774 775 775 spi5_pins: spi5 { 776 - pins_spi { 776 + pins-spi { 777 777 pinmux = <PINMUX_GPIO13__FUNC_SPI5_MI>, 778 778 <PINMUX_GPIO14__FUNC_SPI5_CSB>, 779 779 <PINMUX_GPIO15__FUNC_SPI5_MO>, ··· 783 783 }; 784 784 785 785 uart0_pins_default: uart0-pins-default { 786 - pins_rx { 786 + pins-rx { 787 787 pinmux = <PINMUX_GPIO95__FUNC_URXD0>; 788 788 input-enable; 789 789 bias-pull-up; 790 790 }; 791 - pins_tx { 791 + pins-tx { 792 792 pinmux = <PINMUX_GPIO96__FUNC_UTXD0>; 793 793 }; 794 794 }; 795 795 796 796 uart1_pins_default: uart1-pins-default { 797 - pins_rx { 797 + pins-rx { 798 798 pinmux = <PINMUX_GPIO121__FUNC_URXD1>; 799 799 input-enable; 800 800 bias-pull-up; 801 801 }; 802 - pins_tx { 802 + pins-tx { 803 803 pinmux = <PINMUX_GPIO115__FUNC_UTXD1>; 804 804 }; 805 - pins_rts { 805 + pins-rts { 806 806 pinmux = <PINMUX_GPIO47__FUNC_URTS1>; 807 807 output-enable; 808 808 }; 809 - pins_cts { 809 + pins-cts { 810 810 pinmux = <PINMUX_GPIO46__FUNC_UCTS1>; 811 811 input-enable; 812 812 }; 813 813 }; 814 814 815 815 uart1_pins_sleep: uart1-pins-sleep { 816 - pins_rx { 816 + pins-rx { 817 817 pinmux = <PINMUX_GPIO121__FUNC_GPIO121>; 818 818 input-enable; 819 819 bias-pull-up; 820 820 }; 821 - pins_tx { 821 + pins-tx { 822 822 pinmux = <PINMUX_GPIO115__FUNC_UTXD1>; 823 823 }; 824 - pins_rts { 824 + pins-rts { 825 825 pinmux = <PINMUX_GPIO47__FUNC_URTS1>; 826 826 output-enable; 827 827 }; 828 - pins_cts { 828 + pins-cts { 829 829 pinmux = <PINMUX_GPIO46__FUNC_UCTS1>; 830 830 input-enable; 831 831 }; 832 832 }; 833 833 834 834 wifi_pins_pwrseq: wifi-pins-pwrseq { 835 - pins_wifi_enable { 835 + pins-wifi-enable { 836 836 pinmux = <PINMUX_GPIO119__FUNC_GPIO119>; 837 837 output-low; 838 838 }; 839 839 }; 840 840 841 841 wifi_pins_wakeup: wifi-pins-wakeup { 842 - pins_wifi_wakeup { 842 + pins-wifi-wakeup { 843 843 pinmux = <PINMUX_GPIO113__FUNC_GPIO113>; 844 844 input-enable; 845 845 };
+121 -121
arch/arm64/boot/dts/mediatek/mt8183.dtsi
··· 1210 1210 nvmem-cell-names = "calibration-data"; 1211 1211 }; 1212 1212 1213 - thermal_zones: thermal-zones { 1214 - cpu_thermal: cpu-thermal { 1215 - polling-delay-passive = <100>; 1216 - polling-delay = <500>; 1217 - thermal-sensors = <&thermal 0>; 1218 - sustainable-power = <5000>; 1219 - 1220 - trips { 1221 - threshold: trip-point0 { 1222 - temperature = <68000>; 1223 - hysteresis = <2000>; 1224 - type = "passive"; 1225 - }; 1226 - 1227 - target: trip-point1 { 1228 - temperature = <80000>; 1229 - hysteresis = <2000>; 1230 - type = "passive"; 1231 - }; 1232 - 1233 - cpu_crit: cpu-crit { 1234 - temperature = <115000>; 1235 - hysteresis = <2000>; 1236 - type = "critical"; 1237 - }; 1238 - }; 1239 - 1240 - cooling-maps { 1241 - map0 { 1242 - trip = <&target>; 1243 - cooling-device = <&cpu0 1244 - THERMAL_NO_LIMIT 1245 - THERMAL_NO_LIMIT>, 1246 - <&cpu1 1247 - THERMAL_NO_LIMIT 1248 - THERMAL_NO_LIMIT>, 1249 - <&cpu2 1250 - THERMAL_NO_LIMIT 1251 - THERMAL_NO_LIMIT>, 1252 - <&cpu3 1253 - THERMAL_NO_LIMIT 1254 - THERMAL_NO_LIMIT>; 1255 - contribution = <3072>; 1256 - }; 1257 - map1 { 1258 - trip = <&target>; 1259 - cooling-device = <&cpu4 1260 - THERMAL_NO_LIMIT 1261 - THERMAL_NO_LIMIT>, 1262 - <&cpu5 1263 - THERMAL_NO_LIMIT 1264 - THERMAL_NO_LIMIT>, 1265 - <&cpu6 1266 - THERMAL_NO_LIMIT 1267 - THERMAL_NO_LIMIT>, 1268 - <&cpu7 1269 - THERMAL_NO_LIMIT 1270 - THERMAL_NO_LIMIT>; 1271 - contribution = <1024>; 1272 - }; 1273 - }; 1274 - }; 1275 - 1276 - /* The tzts1 ~ tzts6 don't need to polling */ 1277 - /* The tzts1 ~ tzts6 don't need to thermal throttle */ 1278 - 1279 - tzts1: tzts1 { 1280 - polling-delay-passive = <0>; 1281 - polling-delay = <0>; 1282 - thermal-sensors = <&thermal 1>; 1283 - sustainable-power = <5000>; 1284 - trips {}; 1285 - cooling-maps {}; 1286 - }; 1287 - 1288 - tzts2: tzts2 { 1289 - polling-delay-passive = <0>; 1290 - polling-delay = <0>; 1291 - thermal-sensors = <&thermal 2>; 1292 - sustainable-power = <5000>; 1293 - trips {}; 1294 - cooling-maps {}; 1295 - }; 1296 - 1297 - tzts3: tzts3 { 1298 - polling-delay-passive = <0>; 1299 - polling-delay = <0>; 1300 - thermal-sensors = <&thermal 3>; 1301 - sustainable-power = <5000>; 1302 - trips {}; 1303 - cooling-maps {}; 1304 - }; 1305 - 1306 - tzts4: tzts4 { 1307 - polling-delay-passive = <0>; 1308 - polling-delay = <0>; 1309 - thermal-sensors = <&thermal 4>; 1310 - sustainable-power = <5000>; 1311 - trips {}; 1312 - cooling-maps {}; 1313 - }; 1314 - 1315 - tzts5: tzts5 { 1316 - polling-delay-passive = <0>; 1317 - polling-delay = <0>; 1318 - thermal-sensors = <&thermal 5>; 1319 - sustainable-power = <5000>; 1320 - trips {}; 1321 - cooling-maps {}; 1322 - }; 1323 - 1324 - tztsABB: tztsABB { 1325 - polling-delay-passive = <0>; 1326 - polling-delay = <0>; 1327 - thermal-sensors = <&thermal 6>; 1328 - sustainable-power = <5000>; 1329 - trips {}; 1330 - cooling-maps {}; 1331 - }; 1332 - }; 1333 - 1334 1213 pwm0: pwm@1100e000 { 1335 1214 compatible = "mediatek,mt8183-disp-pwm"; 1336 1215 reg = <0 0x1100e000 0 0x1000>; ··· 1982 2103 <&mmsys CLK_MM_GALS_IPU12MM>; 1983 2104 clock-names = "apb", "smi", "gals"; 1984 2105 power-domains = <&spm MT8183_POWER_DOMAIN_CAM>; 2106 + }; 2107 + }; 2108 + 2109 + thermal_zones: thermal-zones { 2110 + cpu_thermal: cpu-thermal { 2111 + polling-delay-passive = <100>; 2112 + polling-delay = <500>; 2113 + thermal-sensors = <&thermal 0>; 2114 + sustainable-power = <5000>; 2115 + 2116 + trips { 2117 + threshold: trip-point0 { 2118 + temperature = <68000>; 2119 + hysteresis = <2000>; 2120 + type = "passive"; 2121 + }; 2122 + 2123 + target: trip-point1 { 2124 + temperature = <80000>; 2125 + hysteresis = <2000>; 2126 + type = "passive"; 2127 + }; 2128 + 2129 + cpu_crit: cpu-crit { 2130 + temperature = <115000>; 2131 + hysteresis = <2000>; 2132 + type = "critical"; 2133 + }; 2134 + }; 2135 + 2136 + cooling-maps { 2137 + map0 { 2138 + trip = <&target>; 2139 + cooling-device = <&cpu0 2140 + THERMAL_NO_LIMIT 2141 + THERMAL_NO_LIMIT>, 2142 + <&cpu1 2143 + THERMAL_NO_LIMIT 2144 + THERMAL_NO_LIMIT>, 2145 + <&cpu2 2146 + THERMAL_NO_LIMIT 2147 + THERMAL_NO_LIMIT>, 2148 + <&cpu3 2149 + THERMAL_NO_LIMIT 2150 + THERMAL_NO_LIMIT>; 2151 + contribution = <3072>; 2152 + }; 2153 + map1 { 2154 + trip = <&target>; 2155 + cooling-device = <&cpu4 2156 + THERMAL_NO_LIMIT 2157 + THERMAL_NO_LIMIT>, 2158 + <&cpu5 2159 + THERMAL_NO_LIMIT 2160 + THERMAL_NO_LIMIT>, 2161 + <&cpu6 2162 + THERMAL_NO_LIMIT 2163 + THERMAL_NO_LIMIT>, 2164 + <&cpu7 2165 + THERMAL_NO_LIMIT 2166 + THERMAL_NO_LIMIT>; 2167 + contribution = <1024>; 2168 + }; 2169 + }; 2170 + }; 2171 + 2172 + /* The tzts1 ~ tzts6 don't need to polling */ 2173 + /* The tzts1 ~ tzts6 don't need to thermal throttle */ 2174 + 2175 + tzts1: tzts1 { 2176 + polling-delay-passive = <0>; 2177 + polling-delay = <0>; 2178 + thermal-sensors = <&thermal 1>; 2179 + sustainable-power = <5000>; 2180 + trips {}; 2181 + cooling-maps {}; 2182 + }; 2183 + 2184 + tzts2: tzts2 { 2185 + polling-delay-passive = <0>; 2186 + polling-delay = <0>; 2187 + thermal-sensors = <&thermal 2>; 2188 + sustainable-power = <5000>; 2189 + trips {}; 2190 + cooling-maps {}; 2191 + }; 2192 + 2193 + tzts3: tzts3 { 2194 + polling-delay-passive = <0>; 2195 + polling-delay = <0>; 2196 + thermal-sensors = <&thermal 3>; 2197 + sustainable-power = <5000>; 2198 + trips {}; 2199 + cooling-maps {}; 2200 + }; 2201 + 2202 + tzts4: tzts4 { 2203 + polling-delay-passive = <0>; 2204 + polling-delay = <0>; 2205 + thermal-sensors = <&thermal 4>; 2206 + sustainable-power = <5000>; 2207 + trips {}; 2208 + cooling-maps {}; 2209 + }; 2210 + 2211 + tzts5: tzts5 { 2212 + polling-delay-passive = <0>; 2213 + polling-delay = <0>; 2214 + thermal-sensors = <&thermal 5>; 2215 + sustainable-power = <5000>; 2216 + trips {}; 2217 + cooling-maps {}; 2218 + }; 2219 + 2220 + tztsABB: tztsABB { 2221 + polling-delay-passive = <0>; 2222 + polling-delay = <0>; 2223 + thermal-sensors = <&thermal 6>; 2224 + sustainable-power = <5000>; 2225 + trips {}; 2226 + cooling-maps {}; 1985 2227 }; 1986 2228 }; 1987 2229 };
+28 -16
arch/arm64/boot/dts/mediatek/mt8186.dtsi
··· 924 924 reg = <MT8186_POWER_DOMAIN_CSIRX_TOP>; 925 925 clocks = <&topckgen CLK_TOP_SENINF>, 926 926 <&topckgen CLK_TOP_SENINF1>; 927 - clock-names = "csirx_top0", "csirx_top1"; 927 + clock-names = "subsys-csirx-top0", 928 + "subsys-csirx-top1"; 928 929 #power-domain-cells = <0>; 929 930 }; 930 931 ··· 943 942 reg = <MT8186_POWER_DOMAIN_ADSP_AO>; 944 943 clocks = <&topckgen CLK_TOP_AUDIODSP>, 945 944 <&topckgen CLK_TOP_ADSP_BUS>; 946 - clock-names = "audioadsp", "adsp_bus"; 945 + clock-names = "audioadsp", 946 + "subsys-adsp-bus"; 947 947 #address-cells = <1>; 948 948 #size-cells = <0>; 949 949 #power-domain-cells = <1>; ··· 977 975 <&mmsys CLK_MM_SMI_COMMON>, 978 976 <&mmsys CLK_MM_SMI_GALS>, 979 977 <&mmsys CLK_MM_SMI_IOMMU>; 980 - clock-names = "disp", "mdp", "smi_infra", "smi_common", 981 - "smi_gals", "smi_iommu"; 978 + clock-names = "disp", "mdp", 979 + "subsys-smi-infra", 980 + "subsys-smi-common", 981 + "subsys-smi-gals", 982 + "subsys-smi-iommu"; 982 983 mediatek,infracfg = <&infracfg_ao>; 983 984 #address-cells = <1>; 984 985 #size-cells = <0>; ··· 998 993 999 994 power-domain@MT8186_POWER_DOMAIN_CAM { 1000 995 reg = <MT8186_POWER_DOMAIN_CAM>; 1001 - clocks = <&topckgen CLK_TOP_CAM>, 1002 - <&topckgen CLK_TOP_SENINF>, 996 + clocks = <&topckgen CLK_TOP_SENINF>, 1003 997 <&topckgen CLK_TOP_SENINF1>, 1004 998 <&topckgen CLK_TOP_SENINF2>, 1005 999 <&topckgen CLK_TOP_SENINF3>, 1000 + <&camsys CLK_CAM2MM_GALS>, 1006 1001 <&topckgen CLK_TOP_CAMTM>, 1007 - <&camsys CLK_CAM2MM_GALS>; 1008 - clock-names = "cam-top", "cam0", "cam1", "cam2", 1009 - "cam3", "cam-tm", "gals"; 1002 + <&topckgen CLK_TOP_CAM>; 1003 + clock-names = "cam0", "cam1", "cam2", 1004 + "cam3", "gals", 1005 + "subsys-cam-tm", 1006 + "subsys-cam-top"; 1010 1007 mediatek,infracfg = <&infracfg_ao>; 1011 1008 #address-cells = <1>; 1012 1009 #size-cells = <0>; ··· 1027 1020 1028 1021 power-domain@MT8186_POWER_DOMAIN_IMG { 1029 1022 reg = <MT8186_POWER_DOMAIN_IMG>; 1030 - clocks = <&topckgen CLK_TOP_IMG1>, 1031 - <&imgsys1 CLK_IMG1_GALS_IMG1>; 1032 - clock-names = "img-top", "gals"; 1023 + clocks = <&imgsys1 CLK_IMG1_GALS_IMG1>, 1024 + <&topckgen CLK_TOP_IMG1>; 1025 + clock-names = "gals", "subsys-img-top"; 1033 1026 mediatek,infracfg = <&infracfg_ao>; 1034 1027 #address-cells = <1>; 1035 1028 #size-cells = <0>; ··· 1048 1041 <&ipesys CLK_IPE_LARB20>, 1049 1042 <&ipesys CLK_IPE_SMI_SUBCOM>, 1050 1043 <&ipesys CLK_IPE_GALS_IPE>; 1051 - clock-names = "ipe-top", "ipe-larb0", "ipe-larb1", 1052 - "ipe-smi", "ipe-gals"; 1044 + clock-names = "subsys-ipe-top", 1045 + "subsys-ipe-larb0", 1046 + "subsys-ipe-larb1", 1047 + "subsys-ipe-smi", 1048 + "subsys-ipe-gals"; 1053 1049 mediatek,infracfg = <&infracfg_ao>; 1054 1050 #power-domain-cells = <0>; 1055 1051 }; ··· 1071 1061 clocks = <&topckgen CLK_TOP_WPE>, 1072 1062 <&wpesys CLK_WPE_SMI_LARB8_CK_EN>, 1073 1063 <&wpesys CLK_WPE_SMI_LARB8_PCLK_EN>; 1074 - clock-names = "wpe0", "larb-ck", "larb-pclk"; 1064 + clock-names = "wpe0", 1065 + "subsys-larb-ck", 1066 + "subsys-larb-pclk"; 1075 1067 mediatek,infracfg = <&infracfg_ao>; 1076 1068 #power-domain-cells = <0>; 1077 1069 }; ··· 1668 1656 #address-cells = <1>; 1669 1657 #size-cells = <1>; 1670 1658 1671 - gpu_speedbin: gpu-speed-bin@59c { 1659 + gpu_speedbin: gpu-speedbin@59c { 1672 1660 reg = <0x59c 0x4>; 1673 1661 bits = <0 3>; 1674 1662 };
+1 -1
arch/arm64/boot/dts/mediatek/mt8195-cherry.dtsi
··· 389 389 pinctrl-0 = <&i2c7_pins>; 390 390 391 391 pmic@34 { 392 - #interrupt-cells = <1>; 392 + #interrupt-cells = <2>; 393 393 compatible = "mediatek,mt6360"; 394 394 reg = <0x34>; 395 395 interrupt-controller;
+5 -1
arch/arm64/boot/dts/mediatek/mt8195.dtsi
··· 627 627 628 628 power-domain@MT8195_POWER_DOMAIN_VENC_CORE1 { 629 629 reg = <MT8195_POWER_DOMAIN_VENC_CORE1>; 630 + clocks = <&vencsys_core1 CLK_VENC_CORE1_LARB>; 631 + clock-names = "venc1-larb"; 630 632 mediatek,infracfg = <&infracfg_ao>; 631 633 #power-domain-cells = <0>; 632 634 }; ··· 691 689 692 690 power-domain@MT8195_POWER_DOMAIN_VENC { 693 691 reg = <MT8195_POWER_DOMAIN_VENC>; 692 + clocks = <&vencsys CLK_VENC_LARB>; 693 + clock-names = "venc0-larb"; 694 694 mediatek,infracfg = <&infracfg_ao>; 695 695 #power-domain-cells = <0>; 696 696 }; ··· 2669 2665 reg = <0 0x1b010000 0 0x1000>; 2670 2666 mediatek,larb-id = <20>; 2671 2667 mediatek,smi = <&smi_common_vpp>; 2672 - clocks = <&vencsys_core1 CLK_VENC_CORE1_LARB>, 2668 + clocks = <&vencsys_core1 CLK_VENC_CORE1_VENC>, 2673 2669 <&vencsys_core1 CLK_VENC_CORE1_GALS>, 2674 2670 <&vppsys0 CLK_VPP0_GALS_VDO0_VDO1_VENCSYS_CORE1>; 2675 2671 clock-names = "apb", "smi", "gals";
+1 -1
arch/arm64/boot/dts/rockchip/px30-ringneck-haikou.dts
··· 86 86 sgtl5000_clk: sgtl5000-oscillator { 87 87 compatible = "fixed-clock"; 88 88 #clock-cells = <0>; 89 - clock-frequency = <24576000>; 89 + clock-frequency = <24576000>; 90 90 }; 91 91 92 92 dc_12v: dc-12v-regulator {
+1 -1
arch/arm64/boot/dts/rockchip/rk3328.dtsi
··· 668 668 669 669 vdec: video-codec@ff360000 { 670 670 compatible = "rockchip,rk3328-vdec", "rockchip,rk3399-vdec"; 671 - reg = <0x0 0xff360000 0x0 0x400>; 671 + reg = <0x0 0xff360000 0x0 0x480>; 672 672 interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; 673 673 clocks = <&cru ACLK_RKVDEC>, <&cru HCLK_RKVDEC>, 674 674 <&cru SCLK_VDEC_CABAC>, <&cru SCLK_VDEC_CORE>;
+1 -2
arch/arm64/boot/dts/rockchip/rk3399-gru-chromebook.dtsi
··· 509 509 &pci_rootport { 510 510 mvl_wifi: wifi@0,0 { 511 511 compatible = "pci1b4b,2b42"; 512 - reg = <0x83010000 0x0 0x00000000 0x0 0x00100000 513 - 0x83010000 0x0 0x00100000 0x0 0x00100000>; 512 + reg = <0x0000 0x0 0x0 0x0 0x0>; 514 513 interrupt-parent = <&gpio0>; 515 514 interrupts = <8 IRQ_TYPE_LEVEL_LOW>; 516 515 pinctrl-names = "default";
+2 -2
arch/arm64/boot/dts/rockchip/rk3399-gru-scarlet-dumo.dts
··· 34 34 &pci_rootport { 35 35 wifi@0,0 { 36 36 compatible = "qcom,ath10k"; 37 - reg = <0x00010000 0x0 0x00000000 0x0 0x00000000>, 38 - <0x03010010 0x0 0x00000000 0x0 0x00200000>; 37 + reg = <0x00000000 0x0 0x00000000 0x0 0x00000000>, 38 + <0x03000010 0x0 0x00000000 0x0 0x00200000>; 39 39 qcom,ath10k-calibration-variant = "GO_DUMO"; 40 40 }; 41 41 };
+1
arch/arm64/boot/dts/rockchip/rk3399-gru.dtsi
··· 489 489 #address-cells = <3>; 490 490 #size-cells = <2>; 491 491 ranges; 492 + device_type = "pci"; 492 493 }; 493 494 }; 494 495
+4 -2
arch/arm64/boot/dts/rockchip/rk3399.dtsi
··· 1109 1109 power-domain@RK3399_PD_VDU { 1110 1110 reg = <RK3399_PD_VDU>; 1111 1111 clocks = <&cru ACLK_VDU>, 1112 - <&cru HCLK_VDU>; 1112 + <&cru HCLK_VDU>, 1113 + <&cru SCLK_VDU_CA>, 1114 + <&cru SCLK_VDU_CORE>; 1113 1115 pm_qos = <&qos_video_m1_r>, 1114 1116 <&qos_video_m1_w>; 1115 1117 #power-domain-cells = <0>; ··· 1386 1384 1387 1385 vdec: video-codec@ff660000 { 1388 1386 compatible = "rockchip,rk3399-vdec"; 1389 - reg = <0x0 0xff660000 0x0 0x400>; 1387 + reg = <0x0 0xff660000 0x0 0x480>; 1390 1388 interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH 0>; 1391 1389 clocks = <&cru ACLK_VDU>, <&cru HCLK_VDU>, 1392 1390 <&cru SCLK_VDU_CA>, <&cru SCLK_VDU_CORE>;
+1 -1
arch/arm64/boot/dts/rockchip/rk356x.dtsi
··· 977 977 <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>, 978 978 <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>, 979 979 <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>; 980 - interrupt-names = "sys", "pmc", "msi", "legacy", "err"; 980 + interrupt-names = "sys", "pmc", "msg", "legacy", "err"; 981 981 bus-range = <0x0 0xf>; 982 982 clocks = <&cru ACLK_PCIE20_MST>, <&cru ACLK_PCIE20_SLV>, 983 983 <&cru ACLK_PCIE20_DBI>, <&cru PCLK_PCIE20>,
+2 -2
arch/arm64/boot/dts/rockchip/rk3588-turing-rk1.dtsi
··· 235 235 &pinctrl { 236 236 fan { 237 237 fan_int: fan-int { 238 - rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>; 238 + rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_up>; 239 239 }; 240 240 }; 241 241 242 242 hym8563 { 243 243 hym8563_int: hym8563-int { 244 - rockchip,pins = <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>; 244 + rockchip,pins = <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_up>; 245 245 }; 246 246 }; 247 247
+1 -1
arch/arm64/boot/dts/rockchip/rk3588s-orangepi-5.dts
··· 38 38 leds { 39 39 compatible = "gpio-leds"; 40 40 pinctrl-names = "default"; 41 - pinctrl-0 =<&leds_gpio>; 41 + pinctrl-0 = <&leds_gpio>; 42 42 43 43 led-1 { 44 44 gpios = <&gpio1 RK_PA2 GPIO_ACTIVE_HIGH>;
+1 -1
arch/arm64/boot/dts/rockchip/rk3588s-pinctrl.dtsi
··· 369 369 emmc_data_strobe: emmc-data-strobe { 370 370 rockchip,pins = 371 371 /* emmc_data_strobe */ 372 - <2 RK_PA2 1 &pcfg_pull_none>; 372 + <2 RK_PA2 1 &pcfg_pull_down>; 373 373 }; 374 374 }; 375 375
-1
arch/arm64/boot/dts/rockchip/rk3588s.dtsi
··· 1362 1362 <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH 0>, 1363 1363 <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH 0>, 1364 1364 <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH 0>; 1365 - interrupt-names = "ch0", "ch1", "ch2", "ch3"; 1366 1365 rockchip,pmu = <&pmu1grf>; 1367 1366 }; 1368 1367
-7
arch/riscv/boot/dts/microchip/mpfs-icicle-kit.dts
··· 8 8 #include <dt-bindings/gpio/gpio.h> 9 9 #include <dt-bindings/leds/common.h> 10 10 11 - /* Clock frequency (in Hz) of the rtcclk */ 12 - #define RTCCLK_FREQ 1000000 13 - 14 11 / { 15 12 model = "Microchip PolarFire-SoC Icicle Kit"; 16 13 compatible = "microchip,mpfs-icicle-reference-rtlv2210", "microchip,mpfs-icicle-kit", ··· 24 27 25 28 chosen { 26 29 stdout-path = "serial1:115200n8"; 27 - }; 28 - 29 - cpus { 30 - timebase-frequency = <RTCCLK_FREQ>; 31 30 }; 32 31 33 32 leds {
-7
arch/riscv/boot/dts/microchip/mpfs-m100pfsevp.dts
··· 10 10 #include "mpfs.dtsi" 11 11 #include "mpfs-m100pfs-fabric.dtsi" 12 12 13 - /* Clock frequency (in Hz) of the rtcclk */ 14 - #define MTIMER_FREQ 1000000 15 - 16 13 / { 17 14 model = "Aries Embedded M100PFEVPS"; 18 15 compatible = "aries,m100pfsevp", "microchip,mpfs"; ··· 28 31 29 32 chosen { 30 33 stdout-path = "serial1:115200n8"; 31 - }; 32 - 33 - cpus { 34 - timebase-frequency = <MTIMER_FREQ>; 35 34 }; 36 35 37 36 ddrc_cache_lo: memory@80000000 {
-7
arch/riscv/boot/dts/microchip/mpfs-polarberry.dts
··· 6 6 #include "mpfs.dtsi" 7 7 #include "mpfs-polarberry-fabric.dtsi" 8 8 9 - /* Clock frequency (in Hz) of the rtcclk */ 10 - #define MTIMER_FREQ 1000000 11 - 12 9 / { 13 10 model = "Sundance PolarBerry"; 14 11 compatible = "sundance,polarberry", "microchip,mpfs"; ··· 17 20 18 21 chosen { 19 22 stdout-path = "serial0:115200n8"; 20 - }; 21 - 22 - cpus { 23 - timebase-frequency = <MTIMER_FREQ>; 24 23 }; 25 24 26 25 ddrc_cache_lo: memory@80000000 {
-7
arch/riscv/boot/dts/microchip/mpfs-sev-kit.dts
··· 6 6 #include "mpfs.dtsi" 7 7 #include "mpfs-sev-kit-fabric.dtsi" 8 8 9 - /* Clock frequency (in Hz) of the rtcclk */ 10 - #define MTIMER_FREQ 1000000 11 - 12 9 / { 13 10 #address-cells = <2>; 14 11 #size-cells = <2>; ··· 23 26 24 27 chosen { 25 28 stdout-path = "serial1:115200n8"; 26 - }; 27 - 28 - cpus { 29 - timebase-frequency = <MTIMER_FREQ>; 30 29 }; 31 30 32 31 reserved-memory {
-7
arch/riscv/boot/dts/microchip/mpfs-tysom-m.dts
··· 11 11 #include "mpfs.dtsi" 12 12 #include "mpfs-tysom-m-fabric.dtsi" 13 13 14 - /* Clock frequency (in Hz) of the rtcclk */ 15 - #define MTIMER_FREQ 1000000 16 - 17 14 / { 18 15 model = "Aldec TySOM-M-MPFS250T-REV2"; 19 16 compatible = "aldec,tysom-m-mpfs250t-rev2", "microchip,mpfs"; ··· 29 32 30 33 chosen { 31 34 stdout-path = "serial1:115200n8"; 32 - }; 33 - 34 - cpus { 35 - timebase-frequency = <MTIMER_FREQ>; 36 35 }; 37 36 38 37 ddrc_cache_lo: memory@80000000 {
+1
arch/riscv/boot/dts/microchip/mpfs.dtsi
··· 13 13 cpus { 14 14 #address-cells = <1>; 15 15 #size-cells = <0>; 16 + timebase-frequency = <1000000>; 16 17 17 18 cpu0: cpu@0 { 18 19 compatible = "sifive,e51", "sifive,rocket0", "riscv";
-1
arch/riscv/boot/dts/sophgo/cv1800b.dtsi
··· 34 34 cpu0_intc: interrupt-controller { 35 35 compatible = "riscv,cpu-intc"; 36 36 interrupt-controller; 37 - #address-cells = <0>; 38 37 #interrupt-cells = <1>; 39 38 }; 40 39 };
+46 -24
drivers/firmware/arm_ffa/driver.c
··· 99 99 void *tx_buffer; 100 100 bool mem_ops_native; 101 101 bool bitmap_created; 102 + bool notif_enabled; 102 103 unsigned int sched_recv_irq; 103 104 unsigned int cpuhp_state; 104 105 struct ffa_pcpu_irq __percpu *irq_pcpu; ··· 783 782 if (ids_processed >= max_ids - 1) 784 783 break; 785 784 786 - part_id = packed_id_list[++ids_processed]; 785 + part_id = packed_id_list[ids_processed++]; 787 786 788 787 if (!ids_count[list]) { /* Global Notification */ 789 788 __do_sched_recv_cb(part_id, 0, false); ··· 795 794 if (ids_processed >= max_ids - 1) 796 795 break; 797 796 798 - vcpu_id = packed_id_list[++ids_processed]; 797 + vcpu_id = packed_id_list[ids_processed++]; 799 798 800 799 __do_sched_recv_cb(part_id, vcpu_id, true); 801 800 } ··· 890 889 891 890 #define FFA_SECURE_PARTITION_ID_FLAG BIT(15) 892 891 892 + #define ffa_notifications_disabled() (!drv_info->notif_enabled) 893 + 893 894 enum notify_type { 894 895 NON_SECURE_VM, 895 896 SECURE_PARTITION, ··· 910 907 { 911 908 struct ffa_dev_part_info *partition; 912 909 bool cb_valid; 910 + 911 + if (ffa_notifications_disabled()) 912 + return -EOPNOTSUPP; 913 913 914 914 partition = xa_load(&drv_info->partition_info, part_id); 915 915 write_lock(&partition->rw_lock); ··· 1007 1001 int rc; 1008 1002 enum notify_type type = ffa_notify_type_get(dev->vm_id); 1009 1003 1004 + if (ffa_notifications_disabled()) 1005 + return -EOPNOTSUPP; 1006 + 1010 1007 if (notify_id >= FFA_MAX_NOTIFICATIONS) 1011 1008 return -EINVAL; 1012 1009 ··· 1035 1026 int rc; 1036 1027 u32 flags = 0; 1037 1028 enum notify_type type = ffa_notify_type_get(dev->vm_id); 1029 + 1030 + if (ffa_notifications_disabled()) 1031 + return -EOPNOTSUPP; 1038 1032 1039 1033 if (notify_id >= FFA_MAX_NOTIFICATIONS) 1040 1034 return -EINVAL; ··· 1068 1056 bool is_per_vcpu, u16 vcpu) 1069 1057 { 1070 1058 u32 flags = 0; 1059 + 1060 + if (ffa_notifications_disabled()) 1061 + return -EOPNOTSUPP; 1071 1062 1072 1063 if (is_per_vcpu) 1073 1064 flags |= (PER_VCPU_NOTIFICATION_FLAG | vcpu << 16); ··· 1248 1233 if (!count) 1249 1234 return; 1250 1235 1251 - info = kcalloc(count, sizeof(**info), GFP_KERNEL); 1236 + info = kcalloc(count, sizeof(*info), GFP_KERNEL); 1252 1237 if (!info) 1253 1238 return; 1254 1239 ··· 1326 1311 1327 1312 static void ffa_sched_recv_irq_unmap(void) 1328 1313 { 1329 - if (drv_info->sched_recv_irq) 1314 + if (drv_info->sched_recv_irq) { 1330 1315 irq_dispose_mapping(drv_info->sched_recv_irq); 1316 + drv_info->sched_recv_irq = 0; 1317 + } 1331 1318 } 1332 1319 1333 1320 static int ffa_cpuhp_pcpu_irq_enable(unsigned int cpu) ··· 1346 1329 1347 1330 static void ffa_uninit_pcpu_irq(void) 1348 1331 { 1349 - if (drv_info->cpuhp_state) 1332 + if (drv_info->cpuhp_state) { 1350 1333 cpuhp_remove_state(drv_info->cpuhp_state); 1334 + drv_info->cpuhp_state = 0; 1335 + } 1351 1336 1352 - if (drv_info->notif_pcpu_wq) 1337 + if (drv_info->notif_pcpu_wq) { 1353 1338 destroy_workqueue(drv_info->notif_pcpu_wq); 1339 + drv_info->notif_pcpu_wq = NULL; 1340 + } 1354 1341 1355 1342 if (drv_info->sched_recv_irq) 1356 1343 free_percpu_irq(drv_info->sched_recv_irq, drv_info->irq_pcpu); 1357 1344 1358 - if (drv_info->irq_pcpu) 1345 + if (drv_info->irq_pcpu) { 1359 1346 free_percpu(drv_info->irq_pcpu); 1347 + drv_info->irq_pcpu = NULL; 1348 + } 1360 1349 } 1361 1350 1362 1351 static int ffa_init_pcpu_irq(unsigned int irq) ··· 1411 1388 ffa_notification_bitmap_destroy(); 1412 1389 drv_info->bitmap_created = false; 1413 1390 } 1391 + drv_info->notif_enabled = false; 1414 1392 } 1415 1393 1416 - static int ffa_notifications_setup(void) 1394 + static void ffa_notifications_setup(void) 1417 1395 { 1418 1396 int ret, irq; 1419 1397 1420 1398 ret = ffa_features(FFA_NOTIFICATION_BITMAP_CREATE, 0, NULL, NULL); 1421 1399 if (ret) { 1422 - pr_err("Notifications not supported, continuing with it ..\n"); 1423 - return 0; 1400 + pr_info("Notifications not supported, continuing with it ..\n"); 1401 + return; 1424 1402 } 1425 1403 1426 1404 ret = ffa_notification_bitmap_create(); 1427 1405 if (ret) { 1428 - pr_err("notification_bitmap_create error %d\n", ret); 1429 - return ret; 1406 + pr_info("Notification bitmap create error %d\n", ret); 1407 + return; 1430 1408 } 1431 1409 drv_info->bitmap_created = true; 1432 1410 ··· 1446 1422 hash_init(drv_info->notifier_hash); 1447 1423 mutex_init(&drv_info->notify_lock); 1448 1424 1449 - /* Register internal scheduling callback */ 1450 - ret = ffa_sched_recv_cb_update(drv_info->vm_id, ffa_self_notif_handle, 1451 - drv_info, true); 1452 - if (!ret) 1453 - return ret; 1425 + drv_info->notif_enabled = true; 1426 + return; 1454 1427 cleanup: 1428 + pr_info("Notification setup failed %d, not enabled\n", ret); 1455 1429 ffa_notifications_cleanup(); 1456 - return ret; 1457 1430 } 1458 1431 1459 1432 static int __init ffa_init(void) ··· 1504 1483 mutex_init(&drv_info->rx_lock); 1505 1484 mutex_init(&drv_info->tx_lock); 1506 1485 1507 - ffa_setup_partitions(); 1508 - 1509 1486 ffa_set_up_mem_ops_native_flag(); 1510 1487 1511 - ret = ffa_notifications_setup(); 1488 + ffa_notifications_setup(); 1489 + 1490 + ffa_setup_partitions(); 1491 + 1492 + ret = ffa_sched_recv_cb_update(drv_info->vm_id, ffa_self_notif_handle, 1493 + drv_info, true); 1512 1494 if (ret) 1513 - goto partitions_cleanup; 1495 + pr_info("Failed to register driver sched callback %d\n", ret); 1514 1496 1515 1497 return 0; 1516 - partitions_cleanup: 1517 - ffa_partitions_cleanup(); 1518 1498 free_pages: 1519 1499 if (drv_info->tx_buffer) 1520 1500 free_pages_exact(drv_info->tx_buffer, RXTX_BUFFER_SIZE);
+10 -8
drivers/firmware/arm_scmi/perf.c
··· 152 152 u32 opp_count; 153 153 u32 sustained_freq_khz; 154 154 u32 sustained_perf_level; 155 - u32 mult_factor; 155 + unsigned long mult_factor; 156 156 struct scmi_perf_domain_info info; 157 157 struct scmi_opp opp[MAX_OPPS]; 158 158 struct scmi_fc_info *fc_info; ··· 268 268 dom_info->sustained_perf_level = 269 269 le32_to_cpu(attr->sustained_perf_level); 270 270 if (!dom_info->sustained_freq_khz || 271 - !dom_info->sustained_perf_level) 271 + !dom_info->sustained_perf_level || 272 + dom_info->level_indexing_mode) 272 273 /* CPUFreq converts to kHz, hence default 1000 */ 273 274 dom_info->mult_factor = 1000; 274 275 else 275 276 dom_info->mult_factor = 276 - (dom_info->sustained_freq_khz * 1000) / 277 - dom_info->sustained_perf_level; 277 + (dom_info->sustained_freq_khz * 1000UL) 278 + / dom_info->sustained_perf_level; 278 279 strscpy(dom_info->info.name, attr->name, 279 280 SCMI_SHORT_NAME_MAX_SIZE); 280 281 } ··· 799 798 if (!dom->level_indexing_mode) 800 799 freq = dom->opp[idx].perf * dom->mult_factor; 801 800 else 802 - freq = dom->opp[idx].indicative_freq * 1000; 801 + freq = dom->opp[idx].indicative_freq * dom->mult_factor; 803 802 804 803 data.level = dom->opp[idx].perf; 805 804 data.freq = freq; ··· 846 845 } else { 847 846 struct scmi_opp *opp; 848 847 849 - opp = LOOKUP_BY_FREQ(dom->opps_by_freq, freq / 1000); 848 + opp = LOOKUP_BY_FREQ(dom->opps_by_freq, 849 + freq / dom->mult_factor); 850 850 if (!opp) 851 851 return -EIO; 852 852 ··· 881 879 if (!opp) 882 880 return -EIO; 883 881 884 - *freq = opp->indicative_freq * 1000; 882 + *freq = opp->indicative_freq * dom->mult_factor; 885 883 } 886 884 887 885 return ret; ··· 904 902 if (!dom->level_indexing_mode) 905 903 opp_freq = opp->perf * dom->mult_factor; 906 904 else 907 - opp_freq = opp->indicative_freq * 1000; 905 + opp_freq = opp->indicative_freq * dom->mult_factor; 908 906 909 907 if (opp_freq < *freq) 910 908 continue;
+15 -2
drivers/tee/optee/device.c
··· 60 60 kfree(optee_device); 61 61 } 62 62 63 - static int optee_register_device(const uuid_t *device_uuid) 63 + static ssize_t need_supplicant_show(struct device *dev, 64 + struct device_attribute *attr, 65 + char *buf) 66 + { 67 + return 0; 68 + } 69 + 70 + static DEVICE_ATTR_RO(need_supplicant); 71 + 72 + static int optee_register_device(const uuid_t *device_uuid, u32 func) 64 73 { 65 74 struct tee_client_device *optee_device = NULL; 66 75 int rc; ··· 91 82 pr_err("device registration failed, err: %d\n", rc); 92 83 put_device(&optee_device->dev); 93 84 } 85 + 86 + if (func == PTA_CMD_GET_DEVICES_SUPP) 87 + device_create_file(&optee_device->dev, 88 + &dev_attr_need_supplicant); 94 89 95 90 return rc; 96 91 } ··· 155 142 num_devices = shm_size / sizeof(uuid_t); 156 143 157 144 for (idx = 0; idx < num_devices; idx++) { 158 - rc = optee_register_device(&device_uuid[idx]); 145 + rc = optee_register_device(&device_uuid[idx], func); 159 146 if (rc) 160 147 goto out_shm; 161 148 }
+2
include/linux/arm_ffa.h
··· 209 209 #define module_ffa_driver(__ffa_driver) \ 210 210 module_driver(__ffa_driver, ffa_register, ffa_unregister) 211 211 212 + extern struct bus_type ffa_bus_type; 213 + 212 214 /* FFA transport related */ 213 215 struct ffa_partition_info { 214 216 u16 id;