Re: [PATCH 1/3] dt-bindings: mmc: mmci: add a property to disable DMA LLI

From: Yann Gautier
Date: Thu Mar 10 2022 - 11:00:56 EST


On 3/8/22 11:57, Ulf Hansson wrote:
Hi Yann,

On Fri, 4 Mar 2022 at 14:52, Yann Gautier <yann.gautier@xxxxxxxxxxx> wrote:

On STMicroelectronics variant of PL18x, the DMA Linked Lists are supported
starting from revision v2 of the peripheral. But it has limitations,
as all the buffers should be aligned on block size (except the last one).
But this cannot be guaranteed with SDIO. We should then have a property
to disable the support of LLI.

Indeed, the buffer handling with SDIO is somewhat special, which also
has been discussed several times on LKML before. In principle, we need
the SDIO func drivers to respect buffer limitations that should be
specified by the mmc host drivers. Quite similar to what we already
have for block devices, like ->max_seg_size, ->max_seg, etc, that is
set per mmc host.

I realize that implementing something like the above requires bigger
changes, which is why mmc host drivers instead validates the sglists
and the elements. In some cases that means returning an error code and
in others it could mean falling back to a non-DMA based I/O mode.

For the stm32_sdmmc variant, it looks like the sglist validation is
being managed in sdmmc_idma_validate_data() already. Can it be
extended to cover this case too, rather than using a DT property?

Kind regards
Uffe

Hi Ulf,

OK, I'll check what can be done for this. Patches 1 and 2 can be dropped, they will be reworked.
But patch 3 of this series could be taken, as not linked to LLI management. Should I push it again alone, or could you review it directly?

Best regards,
Yann



Signed-off-by: Yann Gautier <yann.gautier@xxxxxxxxxxx>
---
Documentation/devicetree/bindings/mmc/arm,pl18x.yaml | 5 +++++
1 file changed, 5 insertions(+)

diff --git a/Documentation/devicetree/bindings/mmc/arm,pl18x.yaml b/Documentation/devicetree/bindings/mmc/arm,pl18x.yaml
index 1e69a5a42439..309a2c0426e5 100644
--- a/Documentation/devicetree/bindings/mmc/arm,pl18x.yaml
+++ b/Documentation/devicetree/bindings/mmc/arm,pl18x.yaml
@@ -145,6 +145,11 @@ properties:
driver to sample the receive data (for example with a voltage switch
transceiver).

+ st,disable-dma-lli:
+ $ref: /schemas/types.yaml#/definitions/flag
+ description: ST Micro-specific property, disable DMA linked lists.
+ It is used for SDIO.
+
st,cmd-gpios:
maxItems: 1
description:
--
2.25.1