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

Peng Fan (OSS) peng.fan at oss.nxp.com
Mon Jun 27 01:22:22 PDT 2022


Hi Saravana,

在 2022/6/25 15:15, Saravana Kannan 写道:
> On Wed, Jun 22, 2022 at 12:24 AM Sascha Hauer <s.hauer at pengutronix.de> wrote:
>> +Cc Saravana Kannan <saravanak at google.com>, the author of 71066545b48e4
>>
>> On Wed, Jun 22, 2022 at 02:20:27PM +0800, Peng Fan (OSS) wrote:
>>> From: Peng Fan <peng.fan at nxp.com>
>>>
>>> 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 at nxp.com>
>>> ---
>>>
>>> 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 |




More information about the linux-arm-kernel mailing list