public inbox for linux-tegra@vger.kernel.org
 help / color / mirror / Atom feed
From: Thierry Reding <thierry.reding@gmail.com>
To: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Russell King <rmk+kernel@arm.linux.org.uk>,
	dri-devel@lists.freedesktop.org, Rob Clark <robdclark@gmail.com>,
	David Herrmann <dh.herrmann@gmail.com>,
	Philipp Zabel <p.zabel@pengutronix.de>,
	Sascha Hauer <s.hauer@pengutronix.de>,
	linux-tegra@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2 4/7] drivers/base: Add interface framework
Date: Wed, 14 May 2014 17:13:57 +0200	[thread overview]
Message-ID: <20140514151356.GD8612@ulmo> (raw)
In-Reply-To: <20140514143421.GG8790@phenom.ffwll.local>


[-- Attachment #1.1: Type: text/plain, Size: 3232 bytes --]

On Wed, May 14, 2014 at 04:34:21PM +0200, Daniel Vetter wrote:
> On Tue, May 13, 2014 at 11:31:07PM +0200, Thierry Reding wrote:
> > A different solution, which seems to be fairly common for DRM drivers
> > for SoCs, is to instantiate a dummy device so that the DRM driver can
> > bind to it. This can happen in two forms: add the dummy device directly
> > in device tree (which goes against pretty much everything that's been
> > preached about device tree in the past) or the dummy device can be
> > instantiated in code, which is what the current Tegra DRM/host1x driver
> > does.
> 
> Actually the dummy device seems to be an acceptable solution and iirc was
> even acked by DT maintainers in the last KS. I'm not on top of things, but
> iirc the thinking was that a dummy device which just pulls in all the
> relevant real bits with phandles is justified in the board file since it
> tells you how the board is intended to be used. The justification was that
> on SoCs where assigning stuff between v4l and drm is really flexible (e.g.
> on omap or so where you can assign the display pipes essentially freely)
> the use-case of the board is what matters, and that's a somewhat physical
> property of it (i.e. in what kind of device it's sitting.)

I disagree. If there's a way to derive all that information within the
driver (like we do for Tegra) then there should be no need to add
redundant content to the device tree. Also note that Tegra DRM and its
device tree binding predate the last KS, and prior to that the gospel
was to *not* add this kind of data to the device tree. Hence I was
forced to spend a *lot* of time working out a solution in the driver.
Therefore I hope it's understandable that I don't take well to being
told to just go use a bloody dummy device.

> So in your case you'd have a fake display and a fake video device which
> pulls everything the drm/v4l driver need together. So if the issue is how
> to get at a master device I think that's simple to solve.

But that's completely redundant. The driver is perfectly capable of
determining what devices belong to a DRM device and which should be part
of a V4L2 device.

Fake devices are only workarounds for a problem that we currently have
no better solution for in the kernel. And as a matter of fact we already
do create a dummy device (albeit in the kernel rather than in device
tree) on Tegra. But I consider that suboptimal, hence why I want to find
a better way to do this. This interface framework is the result.

If people don't see a need to fix this then I'll just stick with what I
currently have, since it isn't any worse than what everybody else is
doing.

> If the issue otoh is how the various drivers can get at the bus-like
> services host1x exposes, then I think a real bus driver makes a lot more
> sense. And Greg seems to have ideas about that already.

There aren't really any bus-like services exposed by host1x. It really
just exposes resources such as DMA channels or syncpoints. But that's
not even a problem because we know that host1x children are always,
well, children of host1x and therefore we can simply get access to
host1x via the parent device.

Thierry

[-- Attachment #1.2: Type: application/pgp-signature, Size: 836 bytes --]

[-- Attachment #2: Type: text/plain, Size: 159 bytes --]

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel

  reply	other threads:[~2014-05-14 15:13 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-05-13 15:30 [PATCH v2 0/7] drm/tegra: Convert to master/component framework Thierry Reding
2014-05-13 15:30 ` [PATCH v2 1/7] drm: Introduce drm_set_unique() Thierry Reding
2014-05-13 15:46   ` David Herrmann
2014-05-13 15:30 ` [PATCH v2 2/7] drivers/base: Allow driver-data to be attached to a master Thierry Reding
2014-05-13 15:30 ` [PATCH v2 3/7] drivers/base: Allow multiple masters per device Thierry Reding
2014-05-13 15:30 ` [PATCH v2 4/7] drivers/base: Add interface framework Thierry Reding
2014-05-13 17:57   ` Daniel Vetter
     [not found]     ` <20140513175713.GS3908-dv86pmgwkMBes7Z6vYuT8azUEOm+Xw19@public.gmane.org>
2014-05-13 21:31       ` Thierry Reding
2014-05-14 14:34         ` Daniel Vetter
2014-05-14 15:13           ` Thierry Reding [this message]
2014-05-14  0:32     ` Greg Kroah-Hartman
2014-05-14 14:37       ` Daniel Vetter
2014-05-14 17:22         ` Greg Kroah-Hartman
     [not found]       ` <20140514003215.GA21520-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
2014-05-15  8:53         ` Thierry Reding
2014-05-20  9:27           ` Andrzej Hajda
2014-05-13 15:30 ` [PATCH v2 5/7] drm/tegra: Convert to master/component framework Thierry Reding
     [not found]   ` <1399995050-28435-6-git-send-email-thierry.reding-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2014-05-19  8:56     ` Christian Gmeiner
2014-05-19 15:25       ` Thierry Reding
2014-05-13 15:30 ` [PATCH v2 6/7] drm: Add device registration documentation Thierry Reding
2014-05-13 17:59   ` Daniel Vetter
2014-05-13 15:30 ` [PATCH v2 7/7] drm: Document how to register devices without struct drm_bus Thierry Reding
2014-05-13 15:55   ` David Herrmann
2014-05-22  9:56 ` [PATCH v2 0/7] drm/tegra: Convert to master/component framework Thierry Reding
2014-05-23 11:03   ` Greg Kroah-Hartman
2014-05-25 11:45     ` Thierry Reding

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=20140514151356.GD8612@ulmo \
    --to=thierry.reding@gmail.com \
    --cc=dh.herrmann@gmail.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-tegra@vger.kernel.org \
    --cc=p.zabel@pengutronix.de \
    --cc=rmk+kernel@arm.linux.org.uk \
    --cc=robdclark@gmail.com \
    --cc=s.hauer@pengutronix.de \
    /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