Re: [PATCH 1/3] of/pci/dma: fix DMA configuration for PCI masters
From: Rob Herring
Date: Wed May 03 2017 - 15:56:15 EST
On Tue, May 2, 2017 at 11:46 PM, Oza Pawandeep <oza.oza@xxxxxxxxxxxx> wrote:
> current device framework and of framework integration assumes
> dma-ranges in a way where memory-mapped devices define their
> dma-ranges. (child-bus-address, parent-bus-address, length).
>
> of_dma_configure is specifically written to take care of memory
> mapped devices. but no implementation exists for pci to take
> care of pcie based memory ranges.
>
> for e.g. iproc based SOCs and other SOCs(suc as rcar) have PCI
> world dma-ranges.
> dma-ranges = <0x43000000 0x00 0x00 0x00 0x00 0x80 0x00>;
>
> this patch serves following:
>
> 1) exposes interface to the pci host driver for their
> inbound memory ranges
>
> 2) provide an interface to callers such as of_dma_get_ranges.
> so then the returned size get best possible (largest) dma_mask.
> because PCI RC drivers do not call APIs such as
> dma_set_coherent_mask() and hence rather it shows its addressing
> capabilities based on dma-ranges.
> for e.g.
> dma-ranges = <0x43000000 0x00 0x00 0x00 0x00 0x80 0x00>;
> we should get dev->coherent_dma_mask=0x7fffffffff.
>
> 3) this patch handles multiple inbound windows and dma-ranges.
> it is left to the caller, how it wants to use them.
> the new function returns the resources in a standard and unform way
>
> 4) this way the callers of for e.g. of_dma_get_ranges
> does not need to change.
>
> 5) leaves scope of adding PCI flag handling for inbound memory
> by the new function.
>
> Bug: SOC-5216
> Change-Id: Ie045386df91e1e0587846bb147ae40d96f6d7d2e
> Signed-off-by: Oza Pawandeep <oza.oza@xxxxxxxxxxxx>
> Reviewed-on: http://gerrit-ccxsw.broadcom.net/40428
> Reviewed-by: vpx_checkpatch status <vpx_checkpatch@xxxxxxxxxxxx>
> Reviewed-by: CCXSW <ccxswbuild@xxxxxxxxxxxx>
> Reviewed-by: Ray Jui <ray.jui@xxxxxxxxxxxx>
> Tested-by: vpx_autobuild status <vpx_autobuild@xxxxxxxxxxxx>
> Tested-by: vpx_smoketest status <vpx_smoketest@xxxxxxxxxxxx>
> Tested-by: CCXSW <ccxswbuild@xxxxxxxxxxxx>
All these non-person, probably internal Broadcom Tested-by and
Reviewed-by's should be removed too.
> Reviewed-by: Scott Branden <scott.branden@xxxxxxxxxxxx>
>
Rob