public inbox for devicetree@vger.kernel.org
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: Vishnu Reddy <busanna.reddy@oss.qualcomm.com>
Cc: Bryan O'Donoghue <bod@kernel.org>,
	Vikash Garodia <vikash.garodia@oss.qualcomm.com>,
	Dikshita Agarwal <dikshita.agarwal@oss.qualcomm.com>,
	Abhinav Kumar <abhinav.kumar@linux.dev>,
	Mauro Carvalho Chehab <mchehab@kernel.org>,
	Rob Herring <robh@kernel.org>,
	Krzysztof Kozlowski <krzk+dt@kernel.org>,
	Conor Dooley <conor+dt@kernel.org>,
	Joerg Roedel <joro@8bytes.org>, Will Deacon <will@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>,
	Bjorn Andersson <andersson@kernel.org>,
	Konrad Dybcio <konradybcio@kernel.org>,
	Stefan Schmidt <stefan.schmidt@linaro.org>,
	Hans Verkuil <hverkuil@kernel.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Danilo Krummrich <dakr@kernel.org>,
	Thierry Reding <thierry.reding@kernel.org>,
	Mikko Perttunen <mperttunen@nvidia.com>,
	David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>,
	Jonathan Hunter <jonathanh@nvidia.com>,
	linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org,
	devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
	iommu@lists.linux.dev, driver-core@lists.linux.dev,
	dri-devel@lists.freedesktop.org, linux-tegra@vger.kernel.org,
	Ekansh Gupta <ekansh.gupta@oss.qualcomm.com>,
	Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Subject: Re: [PATCH v2 02/13] drivers: base: Add generic dma context bus
Date: Fri, 24 Apr 2026 15:34:38 +0200	[thread overview]
Message-ID: <2026042442-luxurious-antonym-f20c@gregkh> (raw)
In-Reply-To: <1e039dd5-da3f-19b2-ef98-29e64fdd925d@oss.qualcomm.com>

On Fri, Apr 24, 2026 at 06:12:09PM +0530, Vishnu Reddy wrote:
> 
> On 4/24/2026 5:25 PM, Greg Kroah-Hartman wrote:
> > On Fri, Apr 24, 2026 at 05:15:02PM +0530, Vishnu Reddy wrote:
> >> On 4/24/2026 4:43 PM, Greg Kroah-Hartman wrote:
> >>> On Fri, Apr 24, 2026 at 04:01:13PM +0530, Vishnu Reddy wrote:
> >>>> On 4/23/2026 7:07 PM, Greg Kroah-Hartman wrote:
> >>>>> On Thu, Apr 23, 2026 at 06:59:31PM +0530, Vishnu Reddy wrote:
> >>>>>> From: Ekansh Gupta <ekansh.gupta@oss.qualcomm.com>
> >>>>>>
> >>>>>> 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@oss.qualcomm.com>
> >>>>>> Signed-off-by: Ekansh Gupta <ekansh.gupta@oss.qualcomm.com>
> >>>>>> Signed-off-by: Vikash Garodia <vikash.garodia@oss.qualcomm.com>
> >>>>>> Signed-off-by: Vishnu Reddy <busanna.reddy@oss.qualcomm.com>
> >>>>>> ---
> >>>>>>  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?
> >>>> Let me give brief information which was discussed, in the initial series,
> >>>> the iris VPU used platform bus for dynamically created devices and we got
> >>>> the comment/suggestion from Robin to implement a proper bus_type with a
> >>>> .dma_configure callback.
> >>>>
> >>>> https://lore.kernel.org/all/02b3d0f5-f94c-43cd-93af-97cfcf7751b1@arm.com/
> >>>>
> >>>> based on the discussion, implemented the dma_context_bus and used for iris
> >>>> VPU devices instead of platform bus.
> >>> Why not make a irus_vpu_bus where you can do what you want?
> >> Initially iris_vpu_bus was introduced, and it was made generic based on the
> >> discussion,
> >>
> >> https://lore.kernel.org/all/20260227-kaanapali-iris-v2-3-850043ac3933@oss.qualcomm.com/
> > I don't really see that request here, I see a "make this better and more
> > generic for other busses" but that does not mean "dump it into
> > drivers/bus/ for someone else to maintain" :)
> >
> >>>> Here, the device have only one bus (dma_context_bus), not multiple buses.
> >>>>
> >>>> Regarding the "DMA" naming, the core operation of this bus is its
> >>>> .dma_configure callback, which calls of_dma_configure_id() to map the device
> >>>> to a corresponding IOMMU stream ID. The name "dma_context" reflects this
> >>>> purpose.
> >>>>
> >>>> I am open to suggestions from you or Robin or anyone else, if there is a
> >>>> better or preferred way to achieve this, I am happy to consider it and
> >>>> rework the implementation accordingly.
> >>> As there is only one user, just make this your own bus please and do all
> >>> of the needed bus operations for your devices there (i.e. don't hang an
> >>> "empty" device off of it.)
> >> The reasoning behind to make it generic was to have more users - host1x,
> >> Iris VPU, QDA on the generic context bus, instead of each of them having
> >> their own. Let me know if you suggest to have the iris_vpu_bus.
> > But you did not add such users here, so how would we know this?
> >
> > And still, I have no idea what this bus really is doing.  Is it dynamic?
> > Is it self-describing?  Why not just use aux-bus?  What is it supposed
> > to be doing and used for?
> 
> This bus will allow users to create a dynamic device and map to IOMMU stream
> ID via .dma_configure callback which calls the of_dma_confgure_id() based on
> the user inputs. This bus is under the iommu_buses list to register for bus
> notifier callbacks for iommu_probe_device() and iommu_release_device() during
> add and remove.

But a device is nothing on its own.  You can not just have a random
'struct device' hanging out there that does nothing but iommu, right?
It should be doing something else that is very "bus" specific.

Again, why not create a bus for your hardware type and have that control
the bindings of drivers to the devices, like it should be done.  You
better not be creating platform devices for these things :)

> auxilary bus don't have the .dma_callback and bus notifier callbacks where it
> can do iommu_probe_device() and iommu_release_device(). iommu_release_device(),
> being a static api, need to be called from bus notifier callbacks which should
> be under the list of iommu_buses.

True, because aux bus devices don't do that directly, they are "sharing"
resources with their parent device and something has to mediate for it.
So yes, you are right, that is not a good idea.  Make a custom bus type
instead please.

thanks,

greg k-h

  reply	other threads:[~2026-04-24 14:02 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-04-23 13:29 [PATCH v2 00/13] media: iris: Add support for glymur platform Vishnu Reddy
2026-04-23 13:29 ` [PATCH v2 01/13] media: iris: Fix VM count passed to firmware Vishnu Reddy
2026-04-23 13:29 ` [PATCH v2 02/13] drivers: base: Add generic dma context bus Vishnu Reddy
2026-04-23 13:37   ` Greg Kroah-Hartman
2026-04-24 10:31     ` Vishnu Reddy
2026-04-24 11:13       ` Greg Kroah-Hartman
2026-04-24 11:45         ` Vishnu Reddy
2026-04-24 11:55           ` Greg Kroah-Hartman
2026-04-24 12:42             ` Vishnu Reddy
2026-04-24 13:34               ` Greg Kroah-Hartman [this message]
2026-04-24 16:11                 ` Dmitry Baryshkov
2026-04-25  5:42                   ` Greg Kroah-Hartman
2026-04-25 10:35                     ` Dmitry Baryshkov
2026-04-24 16:40                 ` Vishnu Reddy
2026-04-23 13:29 ` [PATCH v2 03/13] gpu: host1x: Migrate to " Vishnu Reddy
2026-04-23 13:40   ` Greg Kroah-Hartman
2026-04-23 13:29 ` [PATCH v2 04/13] dt-bindings: media: qcom,glymur-iris: Add glymur video codec Vishnu Reddy
2026-04-24 17:09   ` Krzysztof Kozlowski
2026-04-25  9:56     ` Vishnu Reddy
2026-04-25 10:40       ` Krzysztof Kozlowski
2026-04-25 16:23         ` Vishnu Reddy
2026-04-23 13:29 ` [PATCH v2 05/13] media: iris: Add context bank hooks for platform specific initialization Vishnu Reddy
2026-04-23 13:29 ` [PATCH v2 06/13] media: iris: Enable Secure PAS support with IOMMU managed by Linux Vishnu Reddy
2026-04-23 13:29 ` [PATCH v2 07/13] media: iris: Rename clock and power domain macros to use vcodec prefix Vishnu Reddy
2026-04-23 13:29 ` [PATCH v2 08/13] media: iris: Use power domain type to look up pd_devs index Vishnu Reddy
2026-04-23 13:29 ` [PATCH v2 09/13] media: iris: Add power sequence for Glymur Vishnu Reddy
2026-04-23 13:29 ` [PATCH v2 10/13] media: iris: Add support to select core for dual core platforms Vishnu Reddy
2026-04-23 13:29 ` [PATCH v2 11/13] media: iris: Select DMA_CONTEXT_BUS to create firmware device Vishnu Reddy
2026-04-23 13:38   ` Greg Kroah-Hartman
2026-04-26 12:16     ` Dmitry Baryshkov
2026-04-23 13:29 ` [PATCH v2 12/13] media: iris: Add platform data for glymur Vishnu Reddy
2026-04-26 12:24   ` Dmitry Baryshkov
2026-04-23 13:29 ` [PATCH v2 13/13] arm64: dts: qcom: glymur: Add iris video node Vishnu Reddy

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=2026042442-luxurious-antonym-f20c@gregkh \
    --to=gregkh@linuxfoundation.org \
    --cc=abhinav.kumar@linux.dev \
    --cc=airlied@gmail.com \
    --cc=andersson@kernel.org \
    --cc=bod@kernel.org \
    --cc=busanna.reddy@oss.qualcomm.com \
    --cc=conor+dt@kernel.org \
    --cc=dakr@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=dikshita.agarwal@oss.qualcomm.com \
    --cc=dmitry.baryshkov@oss.qualcomm.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=driver-core@lists.linux.dev \
    --cc=ekansh.gupta@oss.qualcomm.com \
    --cc=hverkuil@kernel.org \
    --cc=iommu@lists.linux.dev \
    --cc=jonathanh@nvidia.com \
    --cc=joro@8bytes.org \
    --cc=konradybcio@kernel.org \
    --cc=krzk+dt@kernel.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=linux-tegra@vger.kernel.org \
    --cc=mchehab@kernel.org \
    --cc=mperttunen@nvidia.com \
    --cc=rafael@kernel.org \
    --cc=robh@kernel.org \
    --cc=robin.murphy@arm.com \
    --cc=simona@ffwll.ch \
    --cc=stefan.schmidt@linaro.org \
    --cc=thierry.reding@kernel.org \
    --cc=vikash.garodia@oss.qualcomm.com \
    --cc=will@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox