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 'imx-fixes-6.6' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into arm/fixes

i.MX fixes for 6.6:

- A couple of i.MX8MP device tree changes from Adam Ford to fix clock
configuration regressions caused by 16c984524862 ("arm64: dts: imx8mp:
don't initialize audio clocks from CCM node").
- Fix pmic-irq-hog GPIO line in imx93-tqma9352 device tree.
- Fix a mmemory leak with error handling path of imx_dsp_setup_channels()
in imx-dsp driver.
- Fix HDMI node in imx8mm-evk device tree.
- Add missing clock enable functionality for imx8mm_soc_uid() function
in soc-imx8m driver.
- Add missing imx8mm-prt8mm.dtb build target.

* tag 'imx-fixes-6.6' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux:
arm64: dts: imx: Add imx8mm-prt8mm.dtb to build
arm64: dts: imx8mm-evk: Fix hdmi@3d node
soc: imx8m: Enable OCOTP clock for imx8mm before reading registers
arm64: dts: imx8mp-beacon-kit: Fix audio_pll2 clock
arm64: dts: imx8mp: Fix SDMA2/3 clocks
arm64: dts: freescale: tqma9352: Fix gpio hog
firmware: imx-dsp: Fix an error handling path in imx_dsp_setup_channels()

Link: https://lore.kernel.org/r/20230926123710.GT7231@dragon
Signed-off-by: Arnd Bergmann <arnd@arndb.de>

+42 -15
+1
arch/arm64/boot/dts/freescale/Makefile
··· 66 66 dtb-$(CONFIG_ARCH_MXC) += imx8mm-nitrogen-r2.dtb 67 67 dtb-$(CONFIG_ARCH_MXC) += imx8mm-phg.dtb 68 68 dtb-$(CONFIG_ARCH_MXC) += imx8mm-phyboard-polis-rdk.dtb 69 + dtb-$(CONFIG_ARCH_MXC) += imx8mm-prt8mm.dtb 69 70 dtb-$(CONFIG_ARCH_MXC) += imx8mm-tqma8mqml-mba8mx.dtb 70 71 dtb-$(CONFIG_ARCH_MXC) += imx8mm-var-som-symphony.dtb 71 72 dtb-$(CONFIG_ARCH_MXC) += imx8mm-venice-gw71xx-0x.dtb
+20 -12
arch/arm64/boot/dts/freescale/imx8mm-evk.dtsi
··· 26 26 27 27 port { 28 28 hdmi_connector_in: endpoint { 29 - remote-endpoint = <&adv7533_out>; 29 + remote-endpoint = <&adv7535_out>; 30 30 }; 31 31 }; 32 32 }; ··· 70 70 gpio = <&gpio2 19 GPIO_ACTIVE_HIGH>; 71 71 off-on-delay-us = <20000>; 72 72 enable-active-high; 73 + }; 74 + 75 + reg_vddext_3v3: regulator-vddext-3v3 { 76 + compatible = "regulator-fixed"; 77 + regulator-name = "VDDEXT_3V3"; 78 + regulator-min-microvolt = <3300000>; 79 + regulator-max-microvolt = <3300000>; 73 80 }; 74 81 75 82 backlight: backlight { ··· 324 317 325 318 hdmi@3d { 326 319 compatible = "adi,adv7535"; 327 - reg = <0x3d>, <0x3c>, <0x3e>, <0x3f>; 328 - reg-names = "main", "cec", "edid", "packet"; 320 + reg = <0x3d>; 321 + interrupt-parent = <&gpio1>; 322 + interrupts = <9 IRQ_TYPE_EDGE_FALLING>; 329 323 adi,dsi-lanes = <4>; 330 - 331 - adi,input-depth = <8>; 332 - adi,input-colorspace = "rgb"; 333 - adi,input-clock = "1x"; 334 - adi,input-style = <1>; 335 - adi,input-justification = "evenly"; 324 + avdd-supply = <&buck5_reg>; 325 + dvdd-supply = <&buck5_reg>; 326 + pvdd-supply = <&buck5_reg>; 327 + a2vdd-supply = <&buck5_reg>; 328 + v3p3-supply = <&reg_vddext_3v3>; 329 + v1p2-supply = <&buck5_reg>; 336 330 337 331 ports { 338 332 #address-cells = <1>; ··· 342 334 port@0 { 343 335 reg = <0>; 344 336 345 - adv7533_in: endpoint { 337 + adv7535_in: endpoint { 346 338 remote-endpoint = <&dsi_out>; 347 339 }; 348 340 }; ··· 350 342 port@1 { 351 343 reg = <1>; 352 344 353 - adv7533_out: endpoint { 345 + adv7535_out: endpoint { 354 346 remote-endpoint = <&hdmi_connector_in>; 355 347 }; 356 348 }; ··· 456 448 reg = <1>; 457 449 458 450 dsi_out: endpoint { 459 - remote-endpoint = <&adv7533_in>; 451 + remote-endpoint = <&adv7535_in>; 460 452 data-lanes = <1 2 3 4>; 461 453 }; 462 454 };
+3 -2
arch/arm64/boot/dts/freescale/imx8mp-beacon-kit.dts
··· 381 381 &sai3 { 382 382 pinctrl-names = "default"; 383 383 pinctrl-0 = <&pinctrl_sai3>; 384 - assigned-clocks = <&clk IMX8MP_CLK_SAI3>; 384 + assigned-clocks = <&clk IMX8MP_CLK_SAI3>, 385 + <&clk IMX8MP_AUDIO_PLL2> ; 385 386 assigned-clock-parents = <&clk IMX8MP_AUDIO_PLL2_OUT>; 386 - assigned-clock-rates = <12288000>; 387 + assigned-clock-rates = <12288000>, <361267200>; 387 388 fsl,sai-mclk-direction-output; 388 389 status = "okay"; 389 390 };
+6
arch/arm64/boot/dts/freescale/imx8mp.dtsi
··· 790 790 reg = <IMX8MP_POWER_DOMAIN_AUDIOMIX>; 791 791 clocks = <&clk IMX8MP_CLK_AUDIO_ROOT>, 792 792 <&clk IMX8MP_CLK_AUDIO_AXI>; 793 + assigned-clocks = <&clk IMX8MP_CLK_AUDIO_AHB>, 794 + <&clk IMX8MP_CLK_AUDIO_AXI_SRC>; 795 + assigned-clock-parents = <&clk IMX8MP_SYS_PLL1_800M>, 796 + <&clk IMX8MP_SYS_PLL1_800M>; 797 + assigned-clock-rates = <400000000>, 798 + <600000000>; 793 799 }; 794 800 795 801 pgc_gpu2d: power-domain@6 {
+1 -1
arch/arm64/boot/dts/freescale/imx93-tqma9352.dtsi
··· 81 81 &gpio1 { 82 82 pmic-irq-hog { 83 83 gpio-hog; 84 - gpios = <2 GPIO_ACTIVE_LOW>; 84 + gpios = <3 GPIO_ACTIVE_LOW>; 85 85 input; 86 86 line-name = "PMIC_IRQ#"; 87 87 };
+1
drivers/firmware/imx/imx-dsp.c
··· 114 114 dsp_chan->idx = i % 2; 115 115 dsp_chan->ch = mbox_request_channel_byname(cl, chan_name); 116 116 if (IS_ERR(dsp_chan->ch)) { 117 + kfree(dsp_chan->name); 117 118 ret = PTR_ERR(dsp_chan->ch); 118 119 if (ret != -EPROBE_DEFER) 119 120 dev_err(dev, "Failed to request mbox chan %s ret %d\n",
+10
drivers/soc/imx/soc-imx8m.c
··· 100 100 { 101 101 void __iomem *ocotp_base; 102 102 struct device_node *np; 103 + struct clk *clk; 103 104 u32 offset = of_machine_is_compatible("fsl,imx8mp") ? 104 105 IMX8MP_OCOTP_UID_OFFSET : 0; 105 106 ··· 110 109 111 110 ocotp_base = of_iomap(np, 0); 112 111 WARN_ON(!ocotp_base); 112 + clk = of_clk_get_by_name(np, NULL); 113 + if (IS_ERR(clk)) { 114 + WARN_ON(IS_ERR(clk)); 115 + return; 116 + } 117 + 118 + clk_prepare_enable(clk); 113 119 114 120 soc_uid = readl_relaxed(ocotp_base + OCOTP_UID_HIGH + offset); 115 121 soc_uid <<= 32; 116 122 soc_uid |= readl_relaxed(ocotp_base + OCOTP_UID_LOW + offset); 117 123 124 + clk_disable_unprepare(clk); 125 + clk_put(clk); 118 126 iounmap(ocotp_base); 119 127 of_node_put(np); 120 128 }