Thread (25 messages) 25 messages, 8 authors, 2023-10-23

Re: [PATCH v1 1/1] ARM: Select DMA_DIRECT_REMAP to fix restricted DMA

From: Jim Quinlan <hidden>
Date: 2023-09-28 14:02:12
Also in: lkml

On Thu, Sep 28, 2023 at 10:00 AM Jim Quinlan [off-list ref] wrote:
On Thu, Sep 28, 2023 at 9:32 AM Arnd Bergmann [off-list ref] wrote:
quoted
On Thu, Sep 28, 2023, at 08:07, Jim Quinlan wrote:
quoted
On Wed, Sep 27, 2023 at 7:10 PM Linus Walleij [off-list ref] wrote:
quoted
Clearly if you want to do this, surely the ARM-specific
arch/arm/mm/dma-mapping.c and arch/arm/mm/dma-mapping-nommu.c
needs to be removed at the same time?

Yes, this is the reason I used "RFC" as the fix looked too easy to be viable :-)
I debugged it enough to see that the host driver's
writes to the dma_alloc_coherent() region  were not appearing in
memory, and that
led me to DMA_DIRECT_REMAP.
Usually when you see a mismatch between the data observed by the
device and the CPU, the problem is an incorrect "dma-coherent"
property in the DT: either the device is coherent and accesses
the cache but the CPU tries to bypass it because the property
is missing, or there is an extraneous property and the CPU
goes the through the cache but the devices bypasses it.
I just searched, there are no "dt-coherent" properties in our device tree.
Also, even if we did have them, wouldn't things also fail when not using
restricted DMA?
s/dt-coherent/dma-coherent/
quoted
It could also be a driver bug if the device  mixes up the
address spaces, e.g. passing virt_to_phys(pointer) rather
than the DMA address returned by dma_alloc_coherent().
This is an Intel 7260 part using the iwlwifi driver, I doubt it has
errors of that kind.

Regards,
Jim Quinlan
Broadcom STB/CM
quoted
    Arnd
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help