Messages in this thread | | | Date | Fri, 4 Feb 2022 14:22:56 +0100 | Subject | Re: [PATCH 00/16] STM32 configure UART nodes for DMA | From | Alexandre TORGUE <> |
| |
Hi Ahmad
On 2/3/22 18:25, Ahmad Fatoum wrote: > Hello Erwan, > > On 03.02.22 18:10, Erwan Le Ray wrote: >> Add DMA configuration to UART nodes in stm32mp15x (SOC level) and >> remove it at board level to keep current PIO behavior when needed. >> For stm32-ed1 and stm32-dkx boards, UART4 (console) and UART7 >> (no HW flow control pin available) are kept in PIO mode, while USART3 >> is now configured in DMA mode. >> UART4 (console UART) has to be kept in irq mode, as DMA support for >> console has been removed from the driver by commit e359b4411c28 >> ("serial: stm32: fix threaded interrupt handling"). > > Do I understand correctly that your first patch breaks consoles of > most/all boards, because they will briefly use DMA, which is refused > by the stm32-usart driver and then you add a patch for each board > to fix that breakage?
We have two solutions and both have pro/drawbacks. The first one (Erwan ones, can break the boot if the patch is taken "alone". Your proposition avoids this breakage but deletes a non define property (which is a bit weird). However I prefer to keep a functional behavior, and keep Ahmad proposition. Ahmad, just one question, dt-bindings check doesn't complain about it ?
Cheers Alex
> > Such intermittent breakage makes bisection a hassle. /delete-property/ > is a no-op when the property doesn't exist, so you could move the first > patch to the very end to avoid intermittent breakage. > > I also think that the driver's behavior is a bit harsh. I think it would > be better for the UART driver to print a warning and fall back to > PIO for console instead of outright refusing and rendering the system > silent. That's not mutually exclusive with your patch series here, of course. > > Cheers, > Ahmad > >> >> For other stm32mp15x-based boards, current configuration is kept for >> all UART instances. >> >> Erwan Le Ray (16): >> ARM: dts: stm32: add DMA configuration to UART nodes on stm32mp151 >> ARM: dts: stm32: keep uart4 behavior on stm32mp157c-ed1 >> ARM: dts: stm32: keep uart4 and uart7 behavior on stm32mp15xx-dkx >> ARM: dts: stm32: keep uart4 behavior on icore-stm32mp1-ctouch2 >> ARM: dts: stm32: keep uart4 behavior on icore-stm32mp1-edimm2.2 >> ARM: dts: stm32: keep uart4 behavior on stm32mp157a-iot-box >> ARM: dts: stm32: keep uart nodes behavior on stm32mp1-microdev2.0-of7 >> ARM: dts: stm32: keep uart nodes behavior on stm32mp1-microdev2.0 >> ARM: dts: stm32: keep uart nodes behavior on stm32mp157a-stinger96 >> ARM: dts: stm32: keep uart4 behavior on stm32mp157c-lxa-mc1 >> ARM: dts: stm32: keep uart4 behavior on stm32mp157c-odyssey >> ARM: dts: stm32: keep uart nodes behavior on stm32mp15xx-dhcom-drc02 >> ARM: dts: stm32: keep uart nodes behavior on stm32mp15xx-dhcom-pdk2 >> ARM: dts: stm32: keep uart nodes behavior on stm32mp15xx-dhcom-picoitx >> ARM: dts: stm32: keep uart4 behavior on stm32mp15xx-dhcom-som >> ARM: dts: stm32: keep uart nodes behavior on >> stm32mp15xx-dhcor-avenger96 >> >> arch/arm/boot/dts/stm32mp151.dtsi | 21 +++++++++++++++++++ >> .../stm32mp157a-icore-stm32mp1-ctouch2.dts | 2 ++ >> .../stm32mp157a-icore-stm32mp1-edimm2.2.dts | 2 ++ >> arch/arm/boot/dts/stm32mp157a-iot-box.dts | 2 ++ >> ...157a-microgea-stm32mp1-microdev2.0-of7.dts | 4 ++++ >> ...32mp157a-microgea-stm32mp1-microdev2.0.dts | 4 ++++ >> arch/arm/boot/dts/stm32mp157a-stinger96.dtsi | 6 ++++++ >> arch/arm/boot/dts/stm32mp157c-ed1.dts | 2 ++ >> arch/arm/boot/dts/stm32mp157c-lxa-mc1.dts | 2 ++ >> arch/arm/boot/dts/stm32mp157c-odyssey.dts | 2 ++ >> .../arm/boot/dts/stm32mp15xx-dhcom-drc02.dtsi | 4 ++++ >> arch/arm/boot/dts/stm32mp15xx-dhcom-pdk2.dtsi | 4 ++++ >> .../boot/dts/stm32mp15xx-dhcom-picoitx.dtsi | 4 ++++ >> arch/arm/boot/dts/stm32mp15xx-dhcom-som.dtsi | 2 ++ >> .../boot/dts/stm32mp15xx-dhcor-avenger96.dtsi | 6 ++++++ >> arch/arm/boot/dts/stm32mp15xx-dkx.dtsi | 4 ++++ >> 16 files changed, 71 insertions(+) >> > >
| |