Commit 122c234
arm64: mm: keep low RAM dma zone
Commit ba0fb44 ("dma-mapping: replace zone_dma_bits by
zone_dma_limit") optimistically assumed that device-tree dma-ranges
property describes the system DMA limits. That assumption ignores DMA
limits of individual devices that are not encoded in device tree.
Commit 833bd28 ("arm64: mm: fix DMA zone when dma-ranges is
missing") fixed part of the problem for platforms that do not provide
dma-ranges at all. However platforms like SM8550-HDK provide DMA bus
limit, but have devices with stronger DMA limits.
of_dma_get_max_cpu_address() does not take device limitations into
account.
These platforms implicitly rely on DMA zone in low 32-bit RAM area.
Until we find a better way to figure out the optimal DMA zone range,
restore the low RAM DMA zone we had before commit ba0fb44.
Fixes: ba0fb44 ("dma-mapping: replace zone_dma_bits by zone_dma_limit")
Closes: https://lore.kernel.org/r/[email protected]
Reported-by: Neil Armstrong <[email protected]>
Reviewed-by: Catalin Marinas <[email protected]>
Suggested-by: Robin Murphy <[email protected]>
Signed-off-by: Baruch Siach <[email protected]>
Tested-by: Neil Armstrong <[email protected]> # on SM8550-HDK
Tested-by: Marek Szyprowski <[email protected]>
Signed-off-by: Christoph Hellwig <[email protected]>1 parent 334304a commit 122c234
1 file changed
+8
-2
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
116 | 116 | | |
117 | 117 | | |
118 | 118 | | |
119 | | - | |
120 | | - | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
121 | 127 | | |
122 | 128 | | |
123 | 129 | | |
| |||
0 commit comments