Hi Arnd, Olof, Here's the PR for the MBUS rework we discussed in the last couple of weeks, for what will become 5.11. As Arnd suggested, this is based on a PR sent to drm-misc-fixes to merge the initial fix for a probe error in drm/sun4i due to dma_direct_set_offset. Thanks! Maxime The following changes since commit 957a1ea3599210e9996777a734ea5284eaef75c7: drm/sun4i: backend: Fix probe failure with multiple backends (2020-11-18 09:01:30 +0100) are available in the Git repository at: ssh://git@gitolite.kernel.org/pub/scm/linux/kernel/git/mripard/linux.git tags/sunxi-rework-mbus for you to fetch changes up to 16fee29b07358293f135759d9fdbf1267da57ebd: dma-mapping: remove the dma_direct_set_offset export (2020-11-18 09:11:38 +0100) ---------------------------------------------------------------- Allwinner MBUS and DMA-ops rework The Allwinner SoCs have a number of high-bandwidth devices connected to a memory bus with a different RAM mapping than the CPU. This was addressed before through drivers setting the DMA offsets directly, and subsequently changed to calls to dma_direct_set_offset. However that wasn't really meant to be exported to modules (and thus drivers). The duplicated code also led to small inconsistencies across drivers in how we dealt with DT backward compatibility. Move all that DMA setup code into a platform bus notifier to share that code and remove the export on dma_direct_set_offset. ---------------------------------------------------------------- Christoph Hellwig (1): dma-mapping: remove the dma_direct_set_offset export Maxime Ripard (6): soc: sunxi: Deal with the MBUS DMA offsets in a central place drm/sun4i: backend: Remove the MBUS quirks media: sun4i: Remove the MBUS quirks media: sun6i: Remove the MBUS quirks media: cedrus: Remove the MBUS quirks media: sun8i-di: Remove the call to of_dma_configure arch/arm/mach-keystone/keystone.c | 2 +- arch/arm/mach-omap1/usb.c | 2 +- arch/sh/drivers/pci/pcie-sh7786.c | 2 +- arch/x86/pci/sta2x11-fixup.c | 3 +- drivers/gpu/drm/sun4i/sun4i_backend.c | 19 --- drivers/media/platform/sunxi/sun4i-csi/sun4i_csi.c | 27 ----- drivers/media/platform/sunxi/sun6i-csi/sun6i_csi.c | 17 --- drivers/media/platform/sunxi/sun8i-di/sun8i-di.c | 4 - drivers/soc/sunxi/Kconfig | 8 ++ drivers/soc/sunxi/Makefile | 1 + drivers/soc/sunxi/sunxi_mbus.c | 132 +++++++++++++++++++++ drivers/staging/media/sunxi/cedrus/cedrus.c | 1 - drivers/staging/media/sunxi/cedrus/cedrus.h | 3 - drivers/staging/media/sunxi/cedrus/cedrus_hw.c | 18 --- include/linux/dma-map-ops.h | 3 + include/linux/dma-mapping.h | 7 -- kernel/dma/direct.c | 1 - 17 files changed, 149 insertions(+), 101 deletions(-) create mode 100644 drivers/soc/sunxi/sunxi_mbus.c