Re: [PATCH v2 02/13] drivers: base: Add generic dma context bus
From: Greg Kroah-Hartman
Date: Thu Apr 23 2026 - 09:39:57 EST
On Thu, Apr 23, 2026 at 06:59:31PM +0530, Vishnu Reddy wrote:
> From: Ekansh Gupta <ekansh.gupta@xxxxxxxxxxxxxxxx>
>
> When a driver needs to create virtual device at runtime and map it to
> an IOMMU context for memory isolation, there is no common bus available
> for this purpose. Each driver ends up implementing its own bus type,
> leading to duplicated logic across multiple drivers.
>
> host1x driver implemented its own bus type to attach an IOMMU context to
> a dynamically created device. The Iris VPU driver now has the same
> requirement. Rather than duplicating the same bus logic again, a shared
> bus type is introduced under drivers/base that multiple drivers can use
> directly.
>
> The bus takes care of creating a device and attaching the IOMMU context
> to it based on the client inputs.
>
> Suggested-by: Dmitry Baryshkov <dmitry.baryshkov@xxxxxxxxxxxxxxxx>
> Signed-off-by: Ekansh Gupta <ekansh.gupta@xxxxxxxxxxxxxxxx>
> Signed-off-by: Vikash Garodia <vikash.garodia@xxxxxxxxxxxxxxxx>
> Signed-off-by: Vishnu Reddy <busanna.reddy@xxxxxxxxxxxxxxxx>
> ---
> drivers/base/Kconfig | 3 ++
> drivers/base/Makefile | 1 +
> drivers/base/dma_context_bus.c | 77 +++++++++++++++++++++++++++++++++++++++++
> include/linux/dma_context_bus.h | 26 ++++++++++++++
> 4 files changed, 107 insertions(+)
as you can not have a device on multiple busses at the same time, this
makes no sense to me at all. "dma context" is a bus-specific thing, so
please add it to the bus that you are wanting it for. It can't be a
generic bus as that just doesn't work.
Or what am I missing here?
And why is DMA somehow "special" here from any other hardware attribute?
thanks,
greg k-h