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

Yann Gautier
2022-03-10T16:01:46Z

On 3/8/22 11:57, Ulf Hansson wrote:
> Hi Yann,
>
> On Fri, 4 Mar 2022 at 14:52, Yann Gautier <yann.gautier@foss.st.com> 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@foss.st.com>
>> ---
>> 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
>>