devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Tomi Valkeinen <tomi.valkeinen@ti.com>
To: Tony Lindgren <tony@atomide.com>
Cc: Sebastian Reichel <sre@ring0.de>,
	Javier Martinez Canillas <javier@dowhile0.org>,
	"linux-arm-kernel@lists.infradead.org"
	<linux-arm-kernel@lists.infradead.org>,
	linux-fbdev@vger.kernel.org,
	"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
	"linux-omap@vger.kernel.org" <linux-omap@vger.kernel.org>
Subject: Re: [PATCH 3/4] OMAPDSS: panel-sharp-ls037v7dw01: add device tree support
Date: Mon, 19 May 2014 21:57:18 +0300	[thread overview]
Message-ID: <537A540E.8070302@ti.com> (raw)
In-Reply-To: <20140519155732.GA4849@atomide.com>

[-- Attachment #1: Type: text/plain, Size: 5571 bytes --]

On 19/05/14 18:57, Tony Lindgren wrote:

>> I'm not sure if it's even possible to load both of those drivers at the
>> same time, but if it was, and the first one would get probe() called for
>> a device, and the driver would return an error, I'm quite sure the
>> driver framework won't continue trying with the other driver, as the
>> first driver already matched for the device.
> 
> No need to load multiple drivers at this point. That's why I'm saying
> you can bail out on the undesired display controller probes using
> of_machine_is_compatible test. It's not that uncommon for drivers to do:

Hmm, I don't follow. If both, say, omap and exynos have a panel driver
for the same sharp panel, both need a driver for it (presuming exynos
has a proper display component driver system, which may not be true).

Both drivers would be loaded at boot time for the probe to be even to be
possible. Even if the other one bails out from a device probe using
of_machine_is_compatible, afaik the driver framework will stop probing
at that point, as that driver reports being compatible with the device
in question.

...

Ah, ok, now I see. I think you mean module init, not probe? For some
reason I was just thinking about the probe stage.

Maybe that would work. I need to test tomorrow.

>>> it would be quite silly for each display controller to have to do
>>> their own remapping for shared panels?
>>
>> It would, but wouldn't it be just as silly (well, even more silly in my
>> opinion) to have each display controller require driver specific
>> compatible strings for the panels used?
> 
> Not driver specific, but hardware package specific. That's being done
> all the time. For example, compatible strings like "nvidia,tegra124",
> "ti,omap5" describe a package of an ARM core and various devices.

It feels to me rather wrong if I'd specify the compatible string for an
external piece of hardware based on the SoC it's connected to.

> But by using of_machine_is_compatible in the display drivers, you
> can use the right compatible flags from the start if you want to go
> that way.

Yes, with that we could have right compatible flags in the .dts.

>> Well, I sure hope nobody else has to implement similar thing.
> 
> Suuuure.. I've heard that about 20 times before and guess what
> happenened? Things never got fixed until some poor maintainer
> had to start fixing it all over the place about three years later.

The poor maintainer here being me =). And it's still a case of
pick-your-poison. We need to hack around the issue, in some form or
another. So in any case the poor maintainer has to fix it at some point
in the future.

But all this is fixed when we have a common display framework. And
that's something that is really badly needed in some form or another,
the sooner the better.

So the "fix" here is not just some internal thing that could be left at
that and forgotten.

>> To open that up a bit, traditionally other display driver architectures
>> have not had drivers for each display "entity", like the panels. So you
>> would really just have the display subsystem in the .dts, and some raw
>> data there (panel timings) to get the panel running.
> 
> Right, I believe that is the way to go, no doubt about it.

No, that's exactly _not_ the way to go =). We need proper drivers for
display components, instead of trying to avoid that and embed panel data
into the display controller's data.

> Here's a list of things that bothers me:
> 
> 1. Searching through the dtb from a driver instead of relying on the
>    driver probe mechanism for the components in question. If the parsing
>    of the dtb needs to be done it should be done in a Linux generic way
>    from some framework instead.

The reason I haven't made the conversion code available for others to
use is that there are no other users at the moment. And I hope there
will be no other user until we get the common display framework. If
there is, we'll need to move the code to a generic place.

> 2. Having to do this all early before we even have any debug console
>    available. We are trying to move everything to happen later on to avoid
>    all the issues related to initializing things early.

It worked fine for me when doing it as subsys_init level. Why do you say
it'd be early, before debug console?

All the drivers with converted compatible strings are normal drivers, so
afaik things work fine if we just convert the strings before the module
init level.

> 3. Having to maintain a database in kernel of display mappings separately
>    in addition to the .dts files.

Yes, that's slightly annoying. Not really a big burden, though, as it's
quite rare to get a new encoder or panel driver.

> 4. Having this hack limited to device tree based booting while we are
>    trying to unify the functions for drivers to use to get their
>    resources.

I don't understand this one. With non-DT boot we don't have the issue at
all, there's no need for hacks.

> 5. Seeing the possibility of this spreading to other drivers.

Well, until we have a common display framework, one of the hacky options
we've discussed will spread to other drivers if they need to have their
own drivers for the same hardware devices.

Which is not nice, but not something we can escape. And using the
of_machine_is_compatible or having the compatible strings in .dts
appended with "dss" or such doesn't change that, it just changes which
hack may spread.

 Tomi



[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

  parent reply	other threads:[~2014-05-19 18:57 UTC|newest]

Thread overview: 89+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-04-29 23:52 [PATCH 0/4] OMAPDSS: Add support for panel ls037v7dw01 Tony Lindgren
2014-04-29 23:52 ` [PATCH 1/4] OMAPDSS: Fix DSS clock multiplier issue on 3703 and probably 3630 Tony Lindgren
2014-05-08 23:20   ` Tony Lindgren
     [not found]     ` <20140508232006.GG2198-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org>
2014-05-09  8:01       ` Tomi Valkeinen
2014-05-09 14:37         ` Tony Lindgren
2014-05-12 11:38           ` Tomi Valkeinen
2014-05-09  7:38   ` Tomi Valkeinen
2014-05-09 14:37     ` Tony Lindgren
2014-05-12 11:36       ` Tomi Valkeinen
2014-05-12 14:39         ` Tony Lindgren
2014-05-12 14:44           ` Tomi Valkeinen
2014-05-13 15:26             ` Tony Lindgren
2014-05-14  6:41               ` Tomi Valkeinen
2014-05-09 21:06     ` Andreas Müller
2014-05-11 14:42       ` Tony Lindgren
2014-05-12  8:20         ` Andreas Müller
2014-05-12 14:40           ` Tony Lindgren
2014-04-29 23:52 ` [PATCH 2/4] OMAPDSS: panel-sharp-ls037v7dw01: update to use gpiod Tony Lindgren
2014-05-07  8:15   ` Tomi Valkeinen
2014-05-08 23:25     ` Tony Lindgren
2014-04-29 23:52 ` [PATCH 3/4] OMAPDSS: panel-sharp-ls037v7dw01: add device tree support Tony Lindgren
2014-05-07  8:12   ` Tomi Valkeinen
2014-05-07 15:03     ` Tony Lindgren
2014-05-07 16:02       ` Tomi Valkeinen
2014-05-07 17:59         ` Tony Lindgren
2014-05-08 23:33           ` Tony Lindgren
2014-05-09  7:24             ` Tomi Valkeinen
2014-05-09 15:55               ` Tony Lindgren
2014-05-12  7:38                 ` Tomi Valkeinen
2014-05-12  9:34                   ` Javier Martinez Canillas
2014-05-12  9:40                     ` Tomi Valkeinen
2014-05-12 10:00                       ` Javier Martinez Canillas
2014-05-12 14:26                         ` Tony Lindgren
2014-05-12 14:55                           ` Tomi Valkeinen
2014-05-12 15:51                             ` Tony Lindgren
2014-05-13 10:51                               ` Tomi Valkeinen
2014-05-13 11:39                                 ` Javier Martinez Canillas
2014-05-13 15:25                                   ` Tony Lindgren
2014-05-14  6:19                                     ` Tomi Valkeinen
2014-05-14 16:02                                       ` Tony Lindgren
2014-05-15  9:23                                         ` Tomi Valkeinen
2014-05-15 18:21                                           ` Tony Lindgren
2014-05-16  5:56                                             ` Tomi Valkeinen
2014-05-16 16:07                                               ` Tony Lindgren
2014-05-16 17:41                                                 ` Sebastian Reichel
2014-05-16 18:01                                                   ` Tony Lindgren
2014-05-16 21:39                                                     ` Tony Lindgren
2014-05-19  9:48                                                       ` Tomi Valkeinen
2014-05-19 15:57                                                         ` Tony Lindgren
2014-05-19 16:43                                                           ` Arnd Bergmann
2014-05-19 18:57                                                           ` Tomi Valkeinen [this message]
2014-05-19 19:51                                                             ` Tony Lindgren
2014-05-21 13:05                                                               ` Tomi Valkeinen
2014-05-21 14:24                                                                 ` Sebastian Reichel
     [not found]                                                             ` <537A540E.8070302-l0cyMroinI0@public.gmane.org>
2014-05-20  4:57                                                               ` Sebastian Reichel
2014-05-20  5:21                                                                 ` Tomi Valkeinen
     [not found]                                                     ` <20140516180154.GG22031-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org>
2014-05-19  9:21                                                       ` Tomi Valkeinen
2014-05-19 16:04                                                         ` Tony Lindgren
2014-05-19 19:05                                                           ` Tomi Valkeinen
2014-05-20  5:12                                                             ` Sebastian Reichel
     [not found]                                                               ` <20140520051203.GB28812-SfvFxonMDyemK9LvCR3Hrw@public.gmane.org>
2014-05-20  5:48                                                                 ` Tony Lindgren
2014-05-20 21:10                                                                   ` Sebastian Reichel
2014-05-09  8:31             ` Tomi Valkeinen
2014-05-09 15:30               ` Tony Lindgren
2014-05-13 21:26                 ` Tony Lindgren
2014-05-15  8:41                   ` Tomi Valkeinen
2014-05-15 18:25                     ` Tony Lindgren
2014-05-16  5:50                       ` Tomi Valkeinen
2014-05-16 15:59                         ` Tony Lindgren
2014-05-15 13:07                   ` Tomi Valkeinen
2014-05-15 18:27                     ` Tony Lindgren
2014-04-29 23:52 ` [PATCH 4/4] ARM: dts: Add LCD panel sharp ls037v7dw01 support for omap3-evm and ldp Tony Lindgren
2014-04-30  1:07   ` Joachim Eastwood
2014-04-30 17:47     ` Tony Lindgren
     [not found]       ` <20140430174751.GA12362-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org>
2014-05-05 18:39         ` Tony Lindgren
2014-05-08 23:36           ` Tony Lindgren
2014-05-09  7:07             ` Tomi Valkeinen
2014-05-09 15:37               ` Tony Lindgren
2014-05-13 21:32                 ` Tony Lindgren
2014-05-15  8:57                   ` Tomi Valkeinen
2014-05-21 12:44                   ` Tomi Valkeinen
2014-05-21 14:50                     ` Tony Lindgren
2014-05-27 20:59                       ` Tony Lindgren
2014-05-27 21:14                         ` Tony Lindgren
2014-05-28  6:31                           ` Tomi Valkeinen
2014-05-28  6:34                         ` Tomi Valkeinen
     [not found] ` <1398815562-24113-1-git-send-email-tony-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org>
2014-05-05 18:41   ` [PATCH 0/4] OMAPDSS: Add support for panel ls037v7dw01 Tony Lindgren
2014-05-09  9:34     ` Tomi Valkeinen
2014-05-09 15:55       ` Tony Lindgren

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=537A540E.8070302@ti.com \
    --to=tomi.valkeinen@ti.com \
    --cc=devicetree@vger.kernel.org \
    --cc=javier@dowhile0.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-fbdev@vger.kernel.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=sre@ring0.de \
    --cc=tony@atomide.com \
    /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;
as well as URLs for NNTP newsgroup(s).