On Mon, Dec 12, 2022 at 12:40 PM Vadym Kochan <vadym.kochan@xxxxxxxxxxx> wrote: > The main restriction is that only lower 2GB can be used for DMA. > > I already did send solution based on reserved memory, I can send it again in context of this series. > Also what about the solution which Linus suggested ? > > [cut] > > Let's just create a new quirk: > > SDHCI_QUIRK_31BIT_DMA_ROOF > > Define the semantics such that this will allow DMA for buffers that are below > the 31st bit, but does not have the semantics to limit scatter-gather buffers to > be 32-bit aligned. > > [/cut] One does not exclude the other, so you could technically let buffers below 2^31 pass directly to the DMA engine, but bounce any request above that limit to a low memory bounce buffer. As Adrian points out there is also the code complexity question, the solution should be simple and elegant, if possible. I think always using a bounce buffer might be both nice and efficient. Yours, Linus Walleij