soc: fixes for 6.14
Two people stepped up as platform co-maintainers: Andrew Jeffery for ASpeed and Janne Grunau for Apple. The rockchip platform gets 9 small fixes for devicetree files, addressing both compile-time warnings and board specific bugs. One bugfix for the optee firmware driver addresses a reboot-time hang. Two drivers need improved Kconfig dependencies to allow wider compile- testing while hiding the drivers on platforms that can't use them. ARM SCMI and loongson-guts drivers get minor bugfixes. -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEiK/NIGsWEZVxh/FrYKtH/8kJUicFAme46ZQACgkQYKtH/8kJ Uich+g/+KLi3GIrkZ8Tl7AD2zSkFtIcr4RI0J1QJNcbygoYnvgVcDS8xwr4dkOQ1 FCcBlUx45qOfyglzmJxqJ8lQfMAI3qu+wT0Rinx0tFMMvI/jMGw7+Rz+Bvem6YRc guS40IttPjEv3djV1zEkSxH+dgEgd/EEQdrbNH17jdkM/TZYSWRJpIdg4rsqOdoc 8bUKSSKmT2LPQWwGovsxri1/alXgvSndVe9X8KkdNVhnFsJBkRxVvcAPNd2jCRW0 EaEPhNaGeZkwCdPallbCH9Q4vSU+vU9xu1YqhGRBxNE0akJM/M+VanQCGmGl2nxp D90arVjPKEumpOXnd77a5M2Kww4UnHRP8+dlPdVUBvSKg+2iIZexxozKbui8oyvd hlV5LBAMNL0NdVBSFVj73nN6RbJ2Mpmbk6CpVE5OKsvczpo8gp8LuyUjU0nhcVuR acRyqP0w6U8ZQUDF1+8SaK660nOH4RS54NH1sobLwR+gn5uRsuFKMNWKBsuhGJfY vyK8m/WH5kqnCc4vpe/Wi3RLPNHhz5YcHr3UdS9E8QSZnt6uPRWRhUW5dQ65RtDJ jyIheGXhffI5kwilpsSpBW0owNm7YMJJUR/aTczmfR3axhKhrf1lHvyFnJ3gr4gU R10e1hfuivV8Oovdu3gr+WPKafFkZV+WeiXjoPFmFUWbchOrrmU= =z1+P -----END PGP SIGNATURE----- Merge tag 'soc-fixes-6.14' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc Pull SoC fixes from Arnd Bergmann: "Two people stepped up as platform co-maintainers: Andrew Jeffery for ASpeed and Janne Grunau for Apple. The rockchip platform gets 9 small fixes for devicetree files, addressing both compile-time warnings and board specific bugs. One bugfix for the optee firmware driver addresses a reboot-time hang. Two drivers need improved Kconfig dependencies to allow wider compile- testing while hiding the drivers on platforms that can't use them. ARM SCMI and loongson-guts drivers get minor bugfixes" * tag 'soc-fixes-6.14' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: soc: loongson: loongson2_guts: Add check for devm_kstrdup() tee: optee: Fix supplicant wait loop platform: cznic: CZNIC_PLATFORMS should depend on ARCH_MVEBU firmware: imx: IMX_SCMI_MISC_DRV should depend on ARCH_MXC MAINTAINERS: arm: apple: Add Janne as maintainer MAINTAINERS: Mark Andrew as M: for ASPEED MACHINE SUPPORT firmware: arm_scmi: imx: Correct tx size of scmi_imx_misc_ctrl_set arm64: dts: rockchip: adjust SMMU interrupt type on rk3588 arm64: dts: rockchip: disable IOMMU when running rk3588 in PCIe endpoint mode dt-bindings: rockchip: pmu: Ensure all properties are defined arm64: defconfig: Enable TISCI Interrupt Router and Aggregator arm64: dts: rockchip: Fix lcdpwr_en pin for Cool Pi GenBook arm64: dts: rockchip: fix fixed-regulator renames on rk3399-gru devices arm64: dts: rockchip: Disable DMA for uart5 on px30-ringneck arm64: dts: rockchip: Move uart5 pin configuration to px30 ringneck SoM arm64: dts: rockchip: change eth phy mode to rgmii-id for orangepi r1 plus lts arm64: dts: rockchip: Fix broken tsadc pinctrl names for rk3588
This commit is contained in:
commit
ff202c5028
20 changed files with 70 additions and 68 deletions
|
@ -53,11 +53,17 @@ properties:
|
||||||
reg:
|
reg:
|
||||||
maxItems: 1
|
maxItems: 1
|
||||||
|
|
||||||
|
power-controller:
|
||||||
|
type: object
|
||||||
|
|
||||||
|
reboot-mode:
|
||||||
|
type: object
|
||||||
|
|
||||||
required:
|
required:
|
||||||
- compatible
|
- compatible
|
||||||
- reg
|
- reg
|
||||||
|
|
||||||
additionalProperties: true
|
additionalProperties: false
|
||||||
|
|
||||||
examples:
|
examples:
|
||||||
- |
|
- |
|
||||||
|
|
|
@ -2210,6 +2210,7 @@ F: sound/soc/codecs/ssm3515.c
|
||||||
|
|
||||||
ARM/APPLE MACHINE SUPPORT
|
ARM/APPLE MACHINE SUPPORT
|
||||||
M: Sven Peter <sven@svenpeter.dev>
|
M: Sven Peter <sven@svenpeter.dev>
|
||||||
|
M: Janne Grunau <j@jannau.net>
|
||||||
R: Alyssa Rosenzweig <alyssa@rosenzweig.io>
|
R: Alyssa Rosenzweig <alyssa@rosenzweig.io>
|
||||||
L: asahi@lists.linux.dev
|
L: asahi@lists.linux.dev
|
||||||
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
||||||
|
@ -2284,7 +2285,7 @@ F: drivers/irqchip/irq-aspeed-i2c-ic.c
|
||||||
|
|
||||||
ARM/ASPEED MACHINE SUPPORT
|
ARM/ASPEED MACHINE SUPPORT
|
||||||
M: Joel Stanley <joel@jms.id.au>
|
M: Joel Stanley <joel@jms.id.au>
|
||||||
R: Andrew Jeffery <andrew@codeconstruct.com.au>
|
M: Andrew Jeffery <andrew@codeconstruct.com.au>
|
||||||
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
||||||
L: linux-aspeed@lists.ozlabs.org (moderated for non-subscribers)
|
L: linux-aspeed@lists.ozlabs.org (moderated for non-subscribers)
|
||||||
S: Supported
|
S: Supported
|
||||||
|
|
|
@ -226,7 +226,6 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
&uart5 {
|
&uart5 {
|
||||||
pinctrl-0 = <&uart5_xfer>;
|
|
||||||
rts-gpios = <&gpio0 RK_PB5 GPIO_ACTIVE_HIGH>;
|
rts-gpios = <&gpio0 RK_PB5 GPIO_ACTIVE_HIGH>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
|
@ -396,6 +396,12 @@
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
&uart5 {
|
||||||
|
/delete-property/ dmas;
|
||||||
|
/delete-property/ dma-names;
|
||||||
|
pinctrl-0 = <&uart5_xfer>;
|
||||||
|
};
|
||||||
|
|
||||||
/* Mule UCAN */
|
/* Mule UCAN */
|
||||||
&usb_host0_ehci {
|
&usb_host0_ehci {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
|
|
@ -17,8 +17,7 @@
|
||||||
|
|
||||||
&gmac2io {
|
&gmac2io {
|
||||||
phy-handle = <&yt8531c>;
|
phy-handle = <&yt8531c>;
|
||||||
tx_delay = <0x19>;
|
phy-mode = "rgmii-id";
|
||||||
rx_delay = <0x05>;
|
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
|
||||||
mdio {
|
mdio {
|
||||||
|
|
|
@ -15,6 +15,7 @@
|
||||||
|
|
||||||
&gmac2io {
|
&gmac2io {
|
||||||
phy-handle = <&rtl8211e>;
|
phy-handle = <&rtl8211e>;
|
||||||
|
phy-mode = "rgmii";
|
||||||
tx_delay = <0x24>;
|
tx_delay = <0x24>;
|
||||||
rx_delay = <0x18>;
|
rx_delay = <0x18>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
|
|
@ -109,7 +109,6 @@
|
||||||
assigned-clocks = <&cru SCLK_MAC2IO>, <&cru SCLK_MAC2IO_EXT>;
|
assigned-clocks = <&cru SCLK_MAC2IO>, <&cru SCLK_MAC2IO_EXT>;
|
||||||
assigned-clock-parents = <&gmac_clk>, <&gmac_clk>;
|
assigned-clock-parents = <&gmac_clk>, <&gmac_clk>;
|
||||||
clock_in_out = "input";
|
clock_in_out = "input";
|
||||||
phy-mode = "rgmii";
|
|
||||||
phy-supply = <&vcc_io>;
|
phy-supply = <&vcc_io>;
|
||||||
pinctrl-0 = <&rgmiim1_pins>;
|
pinctrl-0 = <&rgmiim1_pins>;
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
|
|
|
@ -22,11 +22,11 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
/* EC turns on w/ pp900_usb_en */
|
/* EC turns on w/ pp900_usb_en */
|
||||||
pp900_usb: pp900-ap {
|
pp900_usb: regulator-pp900-ap {
|
||||||
};
|
};
|
||||||
|
|
||||||
/* EC turns on w/ pp900_pcie_en */
|
/* EC turns on w/ pp900_pcie_en */
|
||||||
pp900_pcie: pp900-ap {
|
pp900_pcie: regulator-pp900-ap {
|
||||||
};
|
};
|
||||||
|
|
||||||
pp3000: regulator-pp3000 {
|
pp3000: regulator-pp3000 {
|
||||||
|
@ -126,7 +126,7 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Always on; plain and simple */
|
/* Always on; plain and simple */
|
||||||
pp3000_ap: pp3000_emmc: pp3000 {
|
pp3000_ap: pp3000_emmc: regulator-pp3000 {
|
||||||
};
|
};
|
||||||
|
|
||||||
pp1500_ap_io: regulator-pp1500-ap-io {
|
pp1500_ap_io: regulator-pp1500-ap-io {
|
||||||
|
@ -160,7 +160,7 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
/* EC turns on w/ pp3300_usb_en_l */
|
/* EC turns on w/ pp3300_usb_en_l */
|
||||||
pp3300_usb: pp3300 {
|
pp3300_usb: regulator-pp3300 {
|
||||||
};
|
};
|
||||||
|
|
||||||
/* gpio is shared with pp1800_pcie and pinctrl is set there */
|
/* gpio is shared with pp1800_pcie and pinctrl is set there */
|
||||||
|
|
|
@ -92,7 +92,7 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
/* EC turns on pp1800_s3_en */
|
/* EC turns on pp1800_s3_en */
|
||||||
pp1800_s3: pp1800 {
|
pp1800_s3: regulator-pp1800 {
|
||||||
};
|
};
|
||||||
|
|
||||||
/* pp3300 children, sorted by name */
|
/* pp3300 children, sorted by name */
|
||||||
|
@ -109,11 +109,11 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
/* EC turns on pp3300_s0_en */
|
/* EC turns on pp3300_s0_en */
|
||||||
pp3300_s0: pp3300 {
|
pp3300_s0: regulator-pp3300 {
|
||||||
};
|
};
|
||||||
|
|
||||||
/* EC turns on pp3300_s3_en */
|
/* EC turns on pp3300_s3_en */
|
||||||
pp3300_s3: pp3300 {
|
pp3300_s3: regulator-pp3300 {
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -189,39 +189,39 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
/* EC turns on w/ pp900_ddrpll_en */
|
/* EC turns on w/ pp900_ddrpll_en */
|
||||||
pp900_ddrpll: pp900-ap {
|
pp900_ddrpll: regulator-pp900-ap {
|
||||||
};
|
};
|
||||||
|
|
||||||
/* EC turns on w/ pp900_pll_en */
|
/* EC turns on w/ pp900_pll_en */
|
||||||
pp900_pll: pp900-ap {
|
pp900_pll: regulator-pp900-ap {
|
||||||
};
|
};
|
||||||
|
|
||||||
/* EC turns on w/ pp900_pmu_en */
|
/* EC turns on w/ pp900_pmu_en */
|
||||||
pp900_pmu: pp900-ap {
|
pp900_pmu: regulator-pp900-ap {
|
||||||
};
|
};
|
||||||
|
|
||||||
/* EC turns on w/ pp1800_s0_en_l */
|
/* EC turns on w/ pp1800_s0_en_l */
|
||||||
pp1800_ap_io: pp1800_emmc: pp1800_nfc: pp1800_s0: pp1800 {
|
pp1800_ap_io: pp1800_emmc: pp1800_nfc: pp1800_s0: regulator-pp1800 {
|
||||||
};
|
};
|
||||||
|
|
||||||
/* EC turns on w/ pp1800_avdd_en_l */
|
/* EC turns on w/ pp1800_avdd_en_l */
|
||||||
pp1800_avdd: pp1800 {
|
pp1800_avdd: regulator-pp1800 {
|
||||||
};
|
};
|
||||||
|
|
||||||
/* EC turns on w/ pp1800_lid_en_l */
|
/* EC turns on w/ pp1800_lid_en_l */
|
||||||
pp1800_lid: pp1800_mic: pp1800 {
|
pp1800_lid: pp1800_mic: regulator-pp1800 {
|
||||||
};
|
};
|
||||||
|
|
||||||
/* EC turns on w/ lpddr_pwr_en */
|
/* EC turns on w/ lpddr_pwr_en */
|
||||||
pp1800_lpddr: pp1800 {
|
pp1800_lpddr: regulator-pp1800 {
|
||||||
};
|
};
|
||||||
|
|
||||||
/* EC turns on w/ pp1800_pmu_en_l */
|
/* EC turns on w/ pp1800_pmu_en_l */
|
||||||
pp1800_pmu: pp1800 {
|
pp1800_pmu: regulator-pp1800 {
|
||||||
};
|
};
|
||||||
|
|
||||||
/* EC turns on w/ pp1800_usb_en_l */
|
/* EC turns on w/ pp1800_usb_en_l */
|
||||||
pp1800_usb: pp1800 {
|
pp1800_usb: regulator-pp1800 {
|
||||||
};
|
};
|
||||||
|
|
||||||
pp3000_sd_slot: regulator-pp3000-sd-slot {
|
pp3000_sd_slot: regulator-pp3000-sd-slot {
|
||||||
|
@ -259,11 +259,11 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
/* EC turns on w/ pp3300_trackpad_en_l */
|
/* EC turns on w/ pp3300_trackpad_en_l */
|
||||||
pp3300_trackpad: pp3300-trackpad {
|
pp3300_trackpad: regulator-pp3300-trackpad {
|
||||||
};
|
};
|
||||||
|
|
||||||
/* EC turns on w/ usb_a_en */
|
/* EC turns on w/ usb_a_en */
|
||||||
pp5000_usb_a_vbus: pp5000 {
|
pp5000_usb_a_vbus: regulator-pp5000 {
|
||||||
};
|
};
|
||||||
|
|
||||||
ap_rtc_clk: ap-rtc-clk {
|
ap_rtc_clk: ap-rtc-clk {
|
||||||
|
|
|
@ -549,10 +549,10 @@
|
||||||
mmu600_pcie: iommu@fc900000 {
|
mmu600_pcie: iommu@fc900000 {
|
||||||
compatible = "arm,smmu-v3";
|
compatible = "arm,smmu-v3";
|
||||||
reg = <0x0 0xfc900000 0x0 0x200000>;
|
reg = <0x0 0xfc900000 0x0 0x200000>;
|
||||||
interrupts = <GIC_SPI 369 IRQ_TYPE_LEVEL_HIGH 0>,
|
interrupts = <GIC_SPI 369 IRQ_TYPE_EDGE_RISING 0>,
|
||||||
<GIC_SPI 371 IRQ_TYPE_LEVEL_HIGH 0>,
|
<GIC_SPI 371 IRQ_TYPE_EDGE_RISING 0>,
|
||||||
<GIC_SPI 374 IRQ_TYPE_LEVEL_HIGH 0>,
|
<GIC_SPI 374 IRQ_TYPE_EDGE_RISING 0>,
|
||||||
<GIC_SPI 367 IRQ_TYPE_LEVEL_HIGH 0>;
|
<GIC_SPI 367 IRQ_TYPE_EDGE_RISING 0>;
|
||||||
interrupt-names = "eventq", "gerror", "priq", "cmdq-sync";
|
interrupt-names = "eventq", "gerror", "priq", "cmdq-sync";
|
||||||
#iommu-cells = <1>;
|
#iommu-cells = <1>;
|
||||||
};
|
};
|
||||||
|
@ -560,10 +560,10 @@
|
||||||
mmu600_php: iommu@fcb00000 {
|
mmu600_php: iommu@fcb00000 {
|
||||||
compatible = "arm,smmu-v3";
|
compatible = "arm,smmu-v3";
|
||||||
reg = <0x0 0xfcb00000 0x0 0x200000>;
|
reg = <0x0 0xfcb00000 0x0 0x200000>;
|
||||||
interrupts = <GIC_SPI 381 IRQ_TYPE_LEVEL_HIGH 0>,
|
interrupts = <GIC_SPI 381 IRQ_TYPE_EDGE_RISING 0>,
|
||||||
<GIC_SPI 383 IRQ_TYPE_LEVEL_HIGH 0>,
|
<GIC_SPI 383 IRQ_TYPE_EDGE_RISING 0>,
|
||||||
<GIC_SPI 386 IRQ_TYPE_LEVEL_HIGH 0>,
|
<GIC_SPI 386 IRQ_TYPE_EDGE_RISING 0>,
|
||||||
<GIC_SPI 379 IRQ_TYPE_LEVEL_HIGH 0>;
|
<GIC_SPI 379 IRQ_TYPE_EDGE_RISING 0>;
|
||||||
interrupt-names = "eventq", "gerror", "priq", "cmdq-sync";
|
interrupt-names = "eventq", "gerror", "priq", "cmdq-sync";
|
||||||
#iommu-cells = <1>;
|
#iommu-cells = <1>;
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
|
@ -2668,9 +2668,9 @@
|
||||||
rockchip,hw-tshut-temp = <120000>;
|
rockchip,hw-tshut-temp = <120000>;
|
||||||
rockchip,hw-tshut-mode = <0>; /* tshut mode 0:CRU 1:GPIO */
|
rockchip,hw-tshut-mode = <0>; /* tshut mode 0:CRU 1:GPIO */
|
||||||
rockchip,hw-tshut-polarity = <0>; /* tshut polarity 0:LOW 1:HIGH */
|
rockchip,hw-tshut-polarity = <0>; /* tshut polarity 0:LOW 1:HIGH */
|
||||||
pinctrl-0 = <&tsadc_gpio_func>;
|
pinctrl-0 = <&tsadc_shut_org>;
|
||||||
pinctrl-1 = <&tsadc_shut>;
|
pinctrl-1 = <&tsadc_gpio_func>;
|
||||||
pinctrl-names = "gpio", "otpout";
|
pinctrl-names = "default", "sleep";
|
||||||
#thermal-sensor-cells = <1>;
|
#thermal-sensor-cells = <1>;
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
};
|
};
|
||||||
|
|
|
@ -113,7 +113,7 @@
|
||||||
compatible = "regulator-fixed";
|
compatible = "regulator-fixed";
|
||||||
regulator-name = "vcc3v3_lcd";
|
regulator-name = "vcc3v3_lcd";
|
||||||
enable-active-high;
|
enable-active-high;
|
||||||
gpio = <&gpio1 RK_PC4 GPIO_ACTIVE_HIGH>;
|
gpio = <&gpio0 RK_PC4 GPIO_ACTIVE_HIGH>;
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&lcdpwr_en>;
|
pinctrl-0 = <&lcdpwr_en>;
|
||||||
vin-supply = <&vcc3v3_sys>;
|
vin-supply = <&vcc3v3_sys>;
|
||||||
|
@ -241,7 +241,7 @@
|
||||||
&pinctrl {
|
&pinctrl {
|
||||||
lcd {
|
lcd {
|
||||||
lcdpwr_en: lcdpwr-en {
|
lcdpwr_en: lcdpwr-en {
|
||||||
rockchip,pins = <1 RK_PC4 RK_FUNC_GPIO &pcfg_pull_down>;
|
rockchip,pins = <0 RK_PC4 RK_FUNC_GPIO &pcfg_pull_down>;
|
||||||
};
|
};
|
||||||
|
|
||||||
bl_en: bl-en {
|
bl_en: bl-en {
|
||||||
|
|
|
@ -213,7 +213,6 @@
|
||||||
interrupt-names = "sys", "pmc", "msg", "legacy", "err",
|
interrupt-names = "sys", "pmc", "msg", "legacy", "err",
|
||||||
"dma0", "dma1", "dma2", "dma3";
|
"dma0", "dma1", "dma2", "dma3";
|
||||||
max-link-speed = <3>;
|
max-link-speed = <3>;
|
||||||
iommus = <&mmu600_pcie 0x0000>;
|
|
||||||
num-lanes = <4>;
|
num-lanes = <4>;
|
||||||
phys = <&pcie30phy>;
|
phys = <&pcie30phy>;
|
||||||
phy-names = "pcie-phy";
|
phy-names = "pcie-phy";
|
||||||
|
|
|
@ -23,3 +23,7 @@
|
||||||
vpcie3v3-supply = <&vcc3v3_pcie30>;
|
vpcie3v3-supply = <&vcc3v3_pcie30>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
&mmu600_pcie {
|
||||||
|
status = "disabled";
|
||||||
|
};
|
||||||
|
|
|
@ -1551,6 +1551,8 @@ CONFIG_PWM_VISCONTI=m
|
||||||
CONFIG_SL28CPLD_INTC=y
|
CONFIG_SL28CPLD_INTC=y
|
||||||
CONFIG_QCOM_PDC=y
|
CONFIG_QCOM_PDC=y
|
||||||
CONFIG_QCOM_MPM=y
|
CONFIG_QCOM_MPM=y
|
||||||
|
CONFIG_TI_SCI_INTR_IRQCHIP=y
|
||||||
|
CONFIG_TI_SCI_INTA_IRQCHIP=y
|
||||||
CONFIG_RESET_GPIO=m
|
CONFIG_RESET_GPIO=m
|
||||||
CONFIG_RESET_IMX7=y
|
CONFIG_RESET_IMX7=y
|
||||||
CONFIG_RESET_QCOM_AOSS=y
|
CONFIG_RESET_QCOM_AOSS=y
|
||||||
|
|
|
@ -254,8 +254,8 @@ static int scmi_imx_misc_ctrl_set(const struct scmi_protocol_handle *ph,
|
||||||
if (num > max_num)
|
if (num > max_num)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
ret = ph->xops->xfer_get_init(ph, SCMI_IMX_MISC_CTRL_SET, sizeof(*in),
|
ret = ph->xops->xfer_get_init(ph, SCMI_IMX_MISC_CTRL_SET,
|
||||||
0, &t);
|
sizeof(*in) + num * sizeof(__le32), 0, &t);
|
||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
|
|
|
@ -25,6 +25,7 @@ config IMX_SCU
|
||||||
|
|
||||||
config IMX_SCMI_MISC_DRV
|
config IMX_SCMI_MISC_DRV
|
||||||
tristate "IMX SCMI MISC Protocol driver"
|
tristate "IMX SCMI MISC Protocol driver"
|
||||||
|
depends on ARCH_MXC || COMPILE_TEST
|
||||||
default y if ARCH_MXC
|
default y if ARCH_MXC
|
||||||
help
|
help
|
||||||
The System Controller Management Interface firmware (SCMI FW) is
|
The System Controller Management Interface firmware (SCMI FW) is
|
||||||
|
|
|
@ -6,6 +6,7 @@
|
||||||
|
|
||||||
menuconfig CZNIC_PLATFORMS
|
menuconfig CZNIC_PLATFORMS
|
||||||
bool "Platform support for CZ.NIC's Turris hardware"
|
bool "Platform support for CZ.NIC's Turris hardware"
|
||||||
|
depends on ARCH_MVEBU || COMPILE_TEST
|
||||||
help
|
help
|
||||||
Say Y here to be able to choose driver support for CZ.NIC's Turris
|
Say Y here to be able to choose driver support for CZ.NIC's Turris
|
||||||
devices. This option alone does not add any kernel code.
|
devices. This option alone does not add any kernel code.
|
||||||
|
|
|
@ -114,8 +114,11 @@ static int loongson2_guts_probe(struct platform_device *pdev)
|
||||||
if (of_property_read_string(root, "model", &machine))
|
if (of_property_read_string(root, "model", &machine))
|
||||||
of_property_read_string_index(root, "compatible", 0, &machine);
|
of_property_read_string_index(root, "compatible", 0, &machine);
|
||||||
of_node_put(root);
|
of_node_put(root);
|
||||||
if (machine)
|
if (machine) {
|
||||||
soc_dev_attr.machine = devm_kstrdup(dev, machine, GFP_KERNEL);
|
soc_dev_attr.machine = devm_kstrdup(dev, machine, GFP_KERNEL);
|
||||||
|
if (!soc_dev_attr.machine)
|
||||||
|
return -ENOMEM;
|
||||||
|
}
|
||||||
|
|
||||||
svr = loongson2_guts_get_svr();
|
svr = loongson2_guts_get_svr();
|
||||||
soc_die = loongson2_soc_die_match(svr, loongson2_soc_die);
|
soc_die = loongson2_soc_die_match(svr, loongson2_soc_die);
|
||||||
|
|
|
@ -80,7 +80,6 @@ u32 optee_supp_thrd_req(struct tee_context *ctx, u32 func, size_t num_params,
|
||||||
struct optee *optee = tee_get_drvdata(ctx->teedev);
|
struct optee *optee = tee_get_drvdata(ctx->teedev);
|
||||||
struct optee_supp *supp = &optee->supp;
|
struct optee_supp *supp = &optee->supp;
|
||||||
struct optee_supp_req *req;
|
struct optee_supp_req *req;
|
||||||
bool interruptable;
|
|
||||||
u32 ret;
|
u32 ret;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -111,36 +110,18 @@ u32 optee_supp_thrd_req(struct tee_context *ctx, u32 func, size_t num_params,
|
||||||
/*
|
/*
|
||||||
* Wait for supplicant to process and return result, once we've
|
* Wait for supplicant to process and return result, once we've
|
||||||
* returned from wait_for_completion(&req->c) successfully we have
|
* returned from wait_for_completion(&req->c) successfully we have
|
||||||
* exclusive access again.
|
* exclusive access again. Allow the wait to be killable such that
|
||||||
|
* the wait doesn't turn into an indefinite state if the supplicant
|
||||||
|
* gets hung for some reason.
|
||||||
*/
|
*/
|
||||||
while (wait_for_completion_interruptible(&req->c)) {
|
if (wait_for_completion_killable(&req->c)) {
|
||||||
mutex_lock(&supp->mutex);
|
mutex_lock(&supp->mutex);
|
||||||
interruptable = !supp->ctx;
|
|
||||||
if (interruptable) {
|
|
||||||
/*
|
|
||||||
* There's no supplicant available and since the
|
|
||||||
* supp->mutex currently is held none can
|
|
||||||
* become available until the mutex released
|
|
||||||
* again.
|
|
||||||
*
|
|
||||||
* Interrupting an RPC to supplicant is only
|
|
||||||
* allowed as a way of slightly improving the user
|
|
||||||
* experience in case the supplicant hasn't been
|
|
||||||
* started yet. During normal operation the supplicant
|
|
||||||
* will serve all requests in a timely manner and
|
|
||||||
* interrupting then wouldn't make sense.
|
|
||||||
*/
|
|
||||||
if (req->in_queue) {
|
if (req->in_queue) {
|
||||||
list_del(&req->link);
|
list_del(&req->link);
|
||||||
req->in_queue = false;
|
req->in_queue = false;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
mutex_unlock(&supp->mutex);
|
mutex_unlock(&supp->mutex);
|
||||||
|
|
||||||
if (interruptable) {
|
|
||||||
req->ret = TEEC_ERROR_COMMUNICATION;
|
req->ret = TEEC_ERROR_COMMUNICATION;
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = req->ret;
|
ret = req->ret;
|
||||||
|
|
Loading…
Add table
Reference in a new issue