lkml.org 
[lkml]   [2019]   [Sep]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [PATCH 00/11] of: dma-ranges fixes and improvements
    From
    Date
    On Thu, 2019-09-26 at 19:24 -0500, Rob Herring wrote:
    > This series fixes several issues related to 'dma-ranges'. Primarily,
    > 'dma-ranges' in a PCI bridge node does correctly set dma masks for PCI
    > devices not described in the DT. A common case needing dma-ranges is a
    > 32-bit PCIe bridge on a 64-bit system. This affects several platforms
    > including Broadcom, NXP, Renesas, and Arm Juno. There's been several
    > attempts to fix these issues, most recently earlier this week[1].
    >
    > In the process, I found several bugs in the address translation. It
    > appears that things have happened to work as various DTs happen to use
    > 1:1 addresses.
    >
    > First 3 patches are just some clean-up. The 4th patch adds a unittest
    > exhibiting the issues. Patches 5-9 rework how of_dma_configure() works
    > making it work on either a struct device child node or a struct
    > device_node parent node so that it works on bus leaf nodes like PCI
    > bridges. Patches 10 and 11 fix 2 issues with address translation for
    > dma-ranges.
    >
    > My testing on this has been with QEMU virt machine hacked up to set PCI
    > dma-ranges and the unittest. Nicolas reports this series resolves the
    > issues on Rpi4 and NXP Layerscape platforms.
    >
    > Rob
    >
    > [1]
    >
    https://lore.kernel.org/linux-arm-kernel/20190924181244.7159-1-nsaenzjulienne@suse.de/
    >
    > Rob Herring (5):
    > of: Remove unused of_find_matching_node_by_address()
    > of: Make of_dma_get_range() private
    > of/unittest: Add dma-ranges address translation tests
    > of/address: Translate 'dma-ranges' for parent nodes missing
    > 'dma-ranges'
    > of/address: Fix of_pci_range_parser_one translation of DMA addresses
    >
    > Robin Murphy (6):
    > of: address: Report of_dma_get_range() errors meaningfully
    > of: Ratify of_dma_configure() interface
    > of/address: Introduce of_get_next_dma_parent() helper
    > of: address: Follow DMA parent for "dma-coherent"
    > of: Factor out #{addr,size}-cells parsing
    > of: Make of_dma_get_range() work on bus nodes

    Re-tested the whole series. Verified both the unittests run fine and PCIe's
    behaviour is fixed.

    Tested-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>

    Also for the whole series:

    Reviewed-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>

    Regards,
    Nicolas

    [unhandled content-type:application/pgp-signature]
    \
     
     \ /
      Last update: 2019-09-30 11:22    [W:4.415 / U:0.012 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site