diff options
author | Marek Vasut <marek.vasut+renesas@gmail.com> | 2019-10-26 20:26:59 +0200 |
---|---|---|
committer | Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> | 2019-11-11 15:29:20 +0100 |
commit | 767c7846419cc562c9dd4f14cc617c2b9b1b96cd (patch) | |
tree | 063397a8f390a646387a3f96b21aff341cc6d145 /fs/efs/file.c | |
parent | PCI: rcar: Move the inbound index check (diff) | |
download | linux-767c7846419cc562c9dd4f14cc617c2b9b1b96cd.tar.xz linux-767c7846419cc562c9dd4f14cc617c2b9b1b96cd.zip |
PCI: rcar: Recalculate inbound range alignment for each controller entry
Due to hardware constraints, the size of each inbound range entry
populated into the controller cannot be larger than the alignment
of the entry's start address. Currently, the alignment for each
"dma-ranges" inbound range is calculated only once for each range
and the increment for programming the controller is also derived
from it only once. Thus, a "dma-ranges" entry describing a memory
at 0x48000000 and size 0x38000000 would lead to multiple controller
entries, each 0x08000000 long.
This is inefficient, especially considering that by adding the size
to the start address, the alignment increases. This patch moves the
alignment calculation into the loop populating the controller entries,
thus updating the alignment for each controller entry.
Tested-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Reviewed-by: Andrew Murray <andrew.murray@arm.com>
Reviewed-by: Simon Horman <horms+renesas@verge.net.au>
Reviewed-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Cc: Geert Uytterhoeven <geert+renesas@glider.be>
Cc: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Cc: Wolfram Sang <wsa@the-dreams.de>
Cc: linux-renesas-soc@vger.kernel.org
Diffstat (limited to 'fs/efs/file.c')
0 files changed, 0 insertions, 0 deletions