From: sebastian.hesselbarth@gmail.com (Sebastian Hesselbarth)
To: linux-arm-kernel@lists.infradead.org
Subject: [RFC 4/4] DRM: tda998x: add missing include
Date: Sat, 18 May 2013 22:50:40 +0200 [thread overview]
Message-ID: <5197E9A0.1020607@gmail.com> (raw)
In-Reply-To: <20130518202604.GM18614@n2100.arm.linux.org.uk>
On 05/18/2013 10:26 PM, Russell King - ARM Linux wrote:
> On Sat, May 18, 2013 at 09:30:09PM +0200, Sebastian Hesselbarth wrote:
>> The device for tda998x yes, but not the driver. Anyway, Russel decided
>> to have tda998x probed by his drm_driver.
>
> For the simple reason that _that_ is how DRM slave encoders work.
> Sometimes, reading the code of the subsystem you're using is well
> worth the effort.
I agree and add that the probing itself doesn't prevent you from using
DT for tda driver at all. You can still have an marvell,external-slave
property pointing to the phandle of tda node. With that you get the
adapter and i2c slave address for what is currently called
dove_tda19989.c and may become e.g. dove_ext_i2c.c. In tda998x_drv you
find the node and get all properties for input config or interrupt
gpio.
I have done that in the drivers before, but DT node parsing here is
_added_ to the driver as it can be used on other non-DT platforms as
well.
>> The connection of Dove LCD and tda998x is _not_ Cubox specific, it is
>> also on the D2Plug. To be precise, even "Dove LCD" is not Dove specific
>> as you can find the very same controller on other Marvell SoCs with
>> little differences.
>
> Well, to spoil the argument a little, actually, the interconnection
> between the two is in no way "standardized". There's many different
> ways to wire the two chips together and have it work - because the
> TDA998x chips have a set of input muxes and swaps which allow you to
> connect the red, green, blue high/low nibbles in various ways and
> still have a correctly working system. The TDA998x connectivity is
> _highly_ configuable.
>
> So, just because one board connects LCD_D0 (red bit 0) to a particular
> pin on the TDA998x does not mean that another board does it that way
> too.
>
> So Jean-Francois is quite correct that this data needs to be provided
> by the board in some manner. The question is - how to do that sensibly.
>
> One possible stop-gap solution is to provide a default set which just
> happens to match the cubox, and allow OF to override it. :)
While I agree, Rob may have a different view on that for tda998x ;)
>> There is so much to take care of like pixel format on lcd pins driving
>> an external encoder (_not_ only tda998x), what gpio pin is connected to
>> TDA interrupt line, one or two lcds, ...
>
> Luckily, drivers/gpu/drm/i2c/tda998x.c does not make use of the IRQ
> signal at present - it's fairly basic and it currently operates by
> polling. Eventually, this could change of course. :)
Again, that is in the driver Jean-Francois has available. Make sure irq
handler runs in a separate thread from get_edid and hpd and you will
be interrupted on hpd. Having said, that should finally lead to the
slave encoder setting .connector_type and .polled as this is where you
know it.
Sebastian
WARNING: multiple messages have this Message-ID (diff)
From: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
To: Russell King - ARM Linux <linux@arm.linux.org.uk>
Cc: Jean-Francois Moine <moinejf@free.fr>,
Rob Clark <robdclark@gmail.com>,
linux-arm-kernel@lists.infradead.org,
dri-devel@lists.freedesktop.org,
Jason Cooper <jason@lakedaemon.net>
Subject: Re: [RFC 4/4] DRM: tda998x: add missing include
Date: Sat, 18 May 2013 22:50:40 +0200 [thread overview]
Message-ID: <5197E9A0.1020607@gmail.com> (raw)
In-Reply-To: <20130518202604.GM18614@n2100.arm.linux.org.uk>
On 05/18/2013 10:26 PM, Russell King - ARM Linux wrote:
> On Sat, May 18, 2013 at 09:30:09PM +0200, Sebastian Hesselbarth wrote:
>> The device for tda998x yes, but not the driver. Anyway, Russel decided
>> to have tda998x probed by his drm_driver.
>
> For the simple reason that _that_ is how DRM slave encoders work.
> Sometimes, reading the code of the subsystem you're using is well
> worth the effort.
I agree and add that the probing itself doesn't prevent you from using
DT for tda driver at all. You can still have an marvell,external-slave
property pointing to the phandle of tda node. With that you get the
adapter and i2c slave address for what is currently called
dove_tda19989.c and may become e.g. dove_ext_i2c.c. In tda998x_drv you
find the node and get all properties for input config or interrupt
gpio.
I have done that in the drivers before, but DT node parsing here is
_added_ to the driver as it can be used on other non-DT platforms as
well.
>> The connection of Dove LCD and tda998x is _not_ Cubox specific, it is
>> also on the D2Plug. To be precise, even "Dove LCD" is not Dove specific
>> as you can find the very same controller on other Marvell SoCs with
>> little differences.
>
> Well, to spoil the argument a little, actually, the interconnection
> between the two is in no way "standardized". There's many different
> ways to wire the two chips together and have it work - because the
> TDA998x chips have a set of input muxes and swaps which allow you to
> connect the red, green, blue high/low nibbles in various ways and
> still have a correctly working system. The TDA998x connectivity is
> _highly_ configuable.
>
> So, just because one board connects LCD_D0 (red bit 0) to a particular
> pin on the TDA998x does not mean that another board does it that way
> too.
>
> So Jean-Francois is quite correct that this data needs to be provided
> by the board in some manner. The question is - how to do that sensibly.
>
> One possible stop-gap solution is to provide a default set which just
> happens to match the cubox, and allow OF to override it. :)
While I agree, Rob may have a different view on that for tda998x ;)
>> There is so much to take care of like pixel format on lcd pins driving
>> an external encoder (_not_ only tda998x), what gpio pin is connected to
>> TDA interrupt line, one or two lcds, ...
>
> Luckily, drivers/gpu/drm/i2c/tda998x.c does not make use of the IRQ
> signal at present - it's fairly basic and it currently operates by
> polling. Eventually, this could change of course. :)
Again, that is in the driver Jean-Francois has available. Make sure irq
handler runs in a separate thread from get_edid and hpd and you will
be interrupted on hpd. Having said, that should finally lead to the
slave encoder setting .connector_type and .polled as this is where you
know it.
Sebastian
next prev parent reply other threads:[~2013-05-18 20:50 UTC|newest]
Thread overview: 91+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-05-16 19:25 [RFC 0/8] rmk's Dove DRM/TDA19988 Cubox driver Russell King - ARM Linux
2013-05-16 19:25 ` Russell King - ARM Linux
2013-05-16 19:25 ` [RFC 1/8] DRM: Add Dove DRM driver Russell King
2013-05-16 19:25 ` Russell King
2013-05-16 19:25 ` [RFC 2/8] drm/i2c: nxp-tda998x: fix EDID reading on TDA19988 devices Russell King
2013-05-16 19:25 ` Russell King
2013-05-16 19:26 ` [RFC 3/8] drm/i2c: nxp-tda998x: ensure VIP output mux is properly set Russell King
2013-05-16 19:26 ` Russell King
2013-05-18 6:56 ` Jean-Francois Moine
2013-05-18 6:56 ` Jean-Francois Moine
2013-05-19 10:30 ` Russell King - ARM Linux
2013-05-19 10:30 ` Russell King - ARM Linux
2013-05-16 19:26 ` [RFC 4/8] drm/i2c: nxp-tda998x: fix npix/nline programming Russell King
2013-05-16 19:26 ` Russell King
2013-05-16 19:26 ` [RFC 5/8] drm/i2c: nxp-tda998x: prepare for video input configuration Russell King
2013-05-16 19:26 ` Russell King
2013-05-16 19:27 ` [RFC 6/8] drm/i2c: nxp-tda998x: add video and audio " Russell King
2013-05-16 19:27 ` Russell King
2013-05-22 21:08 ` Rob Clark
2013-05-22 21:08 ` Rob Clark
2013-05-16 19:27 ` [RFC 7/8] DRM: Dove: add support for drm tda19988 driver Russell King
2013-05-16 19:27 ` Russell King
2013-05-16 19:27 ` [RFC 8/8] DRM: dove: provide a couple of generic slave encoder helpers Russell King
2013-05-16 19:27 ` Russell King
2013-05-17 11:33 ` [RFC 0/8] rmk's Dove DRM/TDA19988 Cubox driver Jean-Francois Moine
2013-05-17 11:33 ` Jean-Francois Moine
2013-05-17 11:58 ` Sebastian Hesselbarth
2013-05-17 11:58 ` Sebastian Hesselbarth
2013-05-17 12:01 ` Russell King - ARM Linux
2013-05-17 12:01 ` Russell King - ARM Linux
2013-05-17 17:40 ` Jean-Francois Moine
2013-05-17 17:40 ` Jean-Francois Moine
2013-05-17 18:00 ` Russell King - ARM Linux
2013-05-17 18:00 ` Russell King - ARM Linux
2013-05-17 18:05 ` Russell King - ARM Linux
2013-05-17 18:05 ` Russell King - ARM Linux
2013-05-17 18:57 ` Jean-Francois Moine
2013-05-17 18:57 ` Jean-Francois Moine
2013-05-19 8:59 ` Russell King - ARM Linux
2013-05-19 8:59 ` Russell King - ARM Linux
2013-05-20 13:36 ` Alex Deucher
2013-05-20 13:36 ` Alex Deucher
2013-05-20 20:15 ` Russell King - ARM Linux
2013-05-20 20:15 ` Russell King - ARM Linux
2013-05-20 20:23 ` Alex Deucher
2013-05-20 20:23 ` Alex Deucher
2013-05-21 6:30 ` Jean-Francois Moine
2013-05-21 6:30 ` Jean-Francois Moine
2013-05-19 11:25 ` Russell King - ARM Linux
2013-05-19 11:25 ` Russell King - ARM Linux
2013-05-18 17:12 ` [RFC 0/4] Add DT support to rmk's Dove DRM driver Sebastian Hesselbarth
2013-05-18 17:12 ` [RFC 1/4] ARM: dove: add lcd controller DT nodes Sebastian Hesselbarth
2013-05-18 17:12 ` [RFC 2/4] ARM: dove: add video card node for SolidRun CuBox Sebastian Hesselbarth
2013-05-18 17:33 ` Jean-Francois Moine
2013-05-18 17:33 ` Jean-Francois Moine
2013-05-18 18:33 ` Sebastian Hesselbarth
2013-05-18 18:33 ` Sebastian Hesselbarth
2013-05-18 17:12 ` [RFC 3/4] DRM: add OF support for Dove DRM driver Sebastian Hesselbarth
2013-05-18 17:45 ` Jean-Francois Moine
2013-05-18 17:45 ` Jean-Francois Moine
2013-05-18 18:20 ` Sebastian Hesselbarth
2013-05-18 18:20 ` Sebastian Hesselbarth
2013-05-18 19:18 ` Jean-Francois Moine
2013-05-18 19:18 ` Jean-Francois Moine
2013-05-20 10:16 ` Russell King - ARM Linux
2013-05-20 10:16 ` Russell King - ARM Linux
2013-05-18 20:46 ` Russell King - ARM Linux
2013-05-18 20:46 ` Russell King - ARM Linux
2013-05-18 17:12 ` [RFC 4/4] DRM: tda998x: add missing include Sebastian Hesselbarth
2013-05-18 17:46 ` Jean-Francois Moine
2013-05-18 17:46 ` Jean-Francois Moine
2013-05-18 18:21 ` Sebastian Hesselbarth
2013-05-18 18:21 ` Sebastian Hesselbarth
2013-05-18 18:23 ` Rob Clark
2013-05-18 18:23 ` Rob Clark
2013-05-18 18:58 ` Jean-Francois Moine
2013-05-18 18:58 ` Jean-Francois Moine
2013-05-18 19:11 ` Rob Clark
2013-05-18 19:11 ` Rob Clark
2013-05-18 19:30 ` Sebastian Hesselbarth
2013-05-18 19:30 ` Sebastian Hesselbarth
2013-05-18 20:26 ` Russell King - ARM Linux
2013-05-18 20:26 ` Russell King - ARM Linux
2013-05-18 20:50 ` Sebastian Hesselbarth [this message]
2013-05-18 20:50 ` Sebastian Hesselbarth
2013-05-19 6:01 ` Jean-Francois Moine
2013-05-19 6:01 ` Jean-Francois Moine
2013-05-19 8:30 ` Sebastian Hesselbarth
2013-05-19 8:30 ` Sebastian Hesselbarth
2013-05-19 16:49 ` Jean-Francois Moine
2013-05-19 16:49 ` Jean-Francois Moine
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=5197E9A0.1020607@gmail.com \
--to=sebastian.hesselbarth@gmail.com \
--cc=linux-arm-kernel@lists.infradead.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.