1
0
Fork 0
mirror of synced 2025-03-06 20:59:54 +01:00

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:
Linus Torvalds 2025-02-21 13:16:01 -08:00
commit ff202c5028
20 changed files with 70 additions and 68 deletions

View file

@ -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:
- | - |

View file

@ -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

View file

@ -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";
}; };

View file

@ -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";

View file

@ -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 {

View file

@ -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";

View file

@ -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";

View file

@ -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 */

View file

@ -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 {
}; };
/* /*

View file

@ -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 {

View file

@ -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";
}; };

View file

@ -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 {

View file

@ -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";

View file

@ -23,3 +23,7 @@
vpcie3v3-supply = <&vcc3v3_pcie30>; vpcie3v3-supply = <&vcc3v3_pcie30>;
status = "okay"; status = "okay";
}; };
&mmu600_pcie {
status = "disabled";
};

View file

@ -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

View file

@ -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;

View file

@ -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

View file

@ -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.

View file

@ -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);

View file

@ -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;