From: Igor Grinberg <grinberg@compulab.co.il>
To: Tomi Valkeinen <tomi.valkeinen@nokia.com>
Cc: Tony Lindgren <tony@atomide.com>,
"linux-omap@vger.kernel.org" <linux-omap@vger.kernel.org>,
"linux-fbdev@vger.kernel.org" <linux-fbdev@vger.kernel.org>,
Mike Rapoport <mike@compulab.co.il>
Subject: Re: [PATCH 1/2] OMAP: DSS2: enable generic panel configuration modification
Date: Tue, 03 Aug 2010 09:45:21 +0300 [thread overview]
Message-ID: <4C57BB01.6000004@compulab.co.il> (raw)
In-Reply-To: <4C4EE62C.9010701@compulab.co.il>
Tomi,
Any thoughts?
On 07/27/10 16:59, Igor Grinberg wrote:
> On 07/27/10 11:00, Tomi Valkeinen wrote:
>
>> On Mon, 2010-07-26 at 12:34 +0200, ext Igor Grinberg wrote:
>>
>>
>>> This patch enables platforms to modify the dss device configuration
>>> of the generic panel.
>>>
>>> Signed-off-by: Igor Grinberg <grinberg@compulab.co.il>
>>> Signed-off-by: Mike Rapoport <mike@compulab.co.il>
>>> ---
>>> drivers/video/omap2/displays/panel-generic.c | 2 +-
>>> 1 files changed, 1 insertions(+), 1 deletions(-)
>>>
>>> diff --git a/drivers/video/omap2/displays/panel-generic.c b/drivers/video/omap2/displays/panel-generic.c
>>> index 300eff5..ad80dd0 100644
>>> --- a/drivers/video/omap2/displays/panel-generic.c
>>> +++ b/drivers/video/omap2/displays/panel-generic.c
>>> @@ -66,7 +66,7 @@ static void generic_panel_power_off(struct omap_dss_device *dssdev)
>>>
>>> static int generic_panel_probe(struct omap_dss_device *dssdev)
>>> {
>>> - dssdev->panel.config = OMAP_DSS_LCD_TFT;
>>> + dssdev->panel.config |= OMAP_DSS_LCD_TFT;
>>> dssdev->panel.timings = generic_panel_timings;
>>>
>>> return 0;
>>>
>>>
>> I don't like this. Panel driver should be the one which decides the
>> config.
>>
>>
> I agree with this in most cases, but not always.
> There are certain transmitters (like TI TFP410 dvi transmitter found
> on cm-t35 and other boards) that can have some of their parameters
> defined by hardware (strapped), so only the platform knows the correct
> values for them.
> One of such parameters is the edge of the clock sampling.
>
>
>> I think a better solution is to make panel-generic configurable, which
>> has been discussed a bit some time ago on l-o.
>>
>>
> No doubt about that :)
>
>
>> Briefly:
>>
>> - Add a struct for the configuration variables (a bit like
>> arch/arm/plat-omap/include/plat/nokia-dsi-panel.h).
>>
>> - Fill the struct in the board file, and pass it to the panel driver via
>> omap_dss_device->data pointer.
>>
>> - The panel driver get the struct and uses it to do whatever
>> configuration it needs.
>>
>>
> This is more or less what I've been thinking of, but with slight addition:
> the panel driver should have a defaults for all the parameters,
> so there will be no need to provide the whole parameters list,
> just the ones that are different.
>
>
>> I think there are two ways to implement this:
>>
>> 1) Have lots of fields in the struct, including video timings and video
>> signaling information, and the driver uses these directly.
>>
>>
> This seems like a good choice for better flexibility and
> provides an easy way of dealing with the issues, I've described above.
>
>
>> 2) Have a panel name in the struct, and the panel driver contains a
>> static list of panels, including configurations for those panels, and
>> the driver selects the configuration based on the panel name given from
>> the board file. (like drivers/video/omap2/displays/panel-taal.c does,
>> except there's currently only one panel defined).
>>
>>
> This approach does not deal with the dvi transmitters issue above,
> unless there will be possibility to define some kind of platform data.
> Also, if we have a static list of panels with their configurations,
> there could be panels with (almost) the same parameters defined
> for a couple of times.
>
>
>> While 1. gives perhaps slightly easier configuration, as you just edit
>> the board file, I'd go for 2. because the required configuration is
>> really defined by the panel/chip being used, and so the board file
>> should just state which panel/chip we have, and the driver handles the
>> rest.
>>
> Well, unfortunately, it is not :(
>
>
>> And 2. makes it also easier to use the same panel/chip on multiple
>> boards.
>>
>> Implementing this would allow us to remove some panel drivers which
>> currently are 99% copies of each other.
>>
>> Tomi
>>
>>
>>
> My idea is:
> generic driver will have built-in defaults, that can
> (but not necessarily will) be overridden by platform (or other) code
> on a parameter basis.
> This will allow other panels (like tdo35s) reuse the generic driver
> without the need for their special driver.
>
> What do you think of it?
>
>
--
Regards,
Igor.
next prev parent reply other threads:[~2010-08-03 6:45 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-07-26 10:34 [PATCH 1/2] OMAP: DSS2: enable generic panel configuration modification Igor Grinberg
2010-07-26 10:34 ` [PATCH 2/2] [ARM] omap: cm-t35: fix video signal on DVI panels Igor Grinberg
2010-07-27 8:00 ` [PATCH 1/2] OMAP: DSS2: enable generic panel configuration modification Tomi Valkeinen
2010-07-27 13:59 ` Igor Grinberg
2010-08-03 6:45 ` Igor Grinberg [this message]
2010-08-03 7:54 ` Tomi Valkeinen
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=4C57BB01.6000004@compulab.co.il \
--to=grinberg@compulab.co.il \
--cc=linux-fbdev@vger.kernel.org \
--cc=linux-omap@vger.kernel.org \
--cc=mike@compulab.co.il \
--cc=tomi.valkeinen@nokia.com \
--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