Re: [PATCH] arm64: dts: imx8mp: drop dmas property for uart console

From: Peng Fan (OSS)
Date: Mon Jun 27 2022 - 04:22:42 EST


Hi Saravana,

在 2022/6/25 15:15, Saravana Kannan 写道:
On Wed, Jun 22, 2022 at 12:24 AM Sascha Hauer <s.hauer@xxxxxxxxxxxxxx> wrote:
+Cc Saravana Kannan <saravanak@xxxxxxxxxx>, the author of 71066545b48e4

On Wed, Jun 22, 2022 at 02:20:27PM +0800, Peng Fan (OSS) wrote:
From: Peng Fan <peng.fan@xxxxxxx>

Commit 71066545b48e4("driver core: Set fw_devlink.strict=1 by default")
default set fw_devlink to true. This has a side effect to i.MX uart
console. The sdma will make the i.MX8MP uart driver defer probe for some
time (~10s with i.MX8MP-EVK board) until sdma ready, because sdma is a
supplier with property dmas set in device tree node.
I just tested this on an i.MX6 board and observed the same behaviour.
The same will happen on any other i.MX board as well. This will also
likely happen on any other SoC on which the UART driver uses dmaengine.

Since this uart is for console, we need log printed out as soon as
possible, so remove the dmas property for the uart console node.
Fixing this at board level is not really an option because that means
fixing each and every, at least i.MX board in the tree. Furthermore
this would mean to bring the deleted property back in and to remove
another dmas property should a user want to switch to another console
port.

For what it's worth: NACK for 71066545b48e4.
Hi Peng/Sascha/Fabio,

I was looking at a fix for this (even when stdout-path isn't set in
DT) and looking at the older code (say, 5.18), and it looks like
before my recent changes the console would still only get probed
during late_initcall(). Does that match your experience?

I could not get you. In driver, it is module init: module_init(imx_uart_init), not late_initcall.

Thanks,
Peng


Thanks,
Saravana

Sascha

Signed-off-by: Peng Fan <peng.fan@xxxxxxx>
---

V1:
The upper set fw_devlink.strict=1 patch is in linux-next tree.

arch/arm64/boot/dts/freescale/imx8mp-evk.dts | 2 ++
arch/arm64/boot/dts/freescale/imx8mp-icore-mx8mp-edimm2.2.dts | 2 ++
arch/arm64/boot/dts/freescale/imx8mp-phyboard-pollux-rdk.dts | 2 ++
arch/arm64/boot/dts/freescale/imx8mp-venice-gw74xx.dts | 2 ++
4 files changed, 8 insertions(+)

diff --git a/arch/arm64/boot/dts/freescale/imx8mp-evk.dts b/arch/arm64/boot/dts/freescale/imx8mp-evk.dts
index fb11c03bc8b1..3fdb38bc0069 100644
--- a/arch/arm64/boot/dts/freescale/imx8mp-evk.dts
+++ b/arch/arm64/boot/dts/freescale/imx8mp-evk.dts
@@ -359,6 +359,8 @@ &uart2 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_uart2>;
status = "okay";
+ /delete-property/ dmas;
+ /delete-property/ dma-names;
};

&usb3_phy1 {
diff --git a/arch/arm64/boot/dts/freescale/imx8mp-icore-mx8mp-edimm2.2.dts b/arch/arm64/boot/dts/freescale/imx8mp-icore-mx8mp-edimm2.2.dts
index dd703b6a5e17..fb2b44e94482 100644
--- a/arch/arm64/boot/dts/freescale/imx8mp-icore-mx8mp-edimm2.2.dts
+++ b/arch/arm64/boot/dts/freescale/imx8mp-icore-mx8mp-edimm2.2.dts
@@ -69,6 +69,8 @@ &uart2 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_uart2>;
status = "okay";
+ /delete-property/ dmas;
+ /delete-property/ dma-names;
};

&usb3_phy0 {
diff --git a/arch/arm64/boot/dts/freescale/imx8mp-phyboard-pollux-rdk.dts b/arch/arm64/boot/dts/freescale/imx8mp-phyboard-pollux-rdk.dts
index 6aa720bafe28..68a478151292 100644
--- a/arch/arm64/boot/dts/freescale/imx8mp-phyboard-pollux-rdk.dts
+++ b/arch/arm64/boot/dts/freescale/imx8mp-phyboard-pollux-rdk.dts
@@ -99,6 +99,8 @@ &uart1 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_uart1>;
status = "okay";
+ /delete-property/ dmas;
+ /delete-property/ dma-names;
};

/* SD-Card */
diff --git a/arch/arm64/boot/dts/freescale/imx8mp-venice-gw74xx.dts b/arch/arm64/boot/dts/freescale/imx8mp-venice-gw74xx.dts
index 521215520a0f..f90c1ac2791c 100644
--- a/arch/arm64/boot/dts/freescale/imx8mp-venice-gw74xx.dts
+++ b/arch/arm64/boot/dts/freescale/imx8mp-venice-gw74xx.dts
@@ -554,6 +554,8 @@ &uart2 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_uart2>;
status = "okay";
+ /delete-property/ dmas;
+ /delete-property/ dma-names;
};

&uart4 {
--
2.25.1


--
Pengutronix e.K. | |
Steuerwalder Str. 21 | http://www.pengutronix.de/ |
31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |