DRM i2c module or bridge ?

Thierry Reding thierry.reding at gmail.com
Thu Nov 12 05:18:17 PST 2015


On Thu, Nov 12, 2015 at 12:48:51PM +0000, Emil Velikov wrote:
> Hello Thierry, all,
> 
> Inspired by a recent discussion I was started wondering - where is the
> cut between DRM i2c modules (most of which encoders/transmitters) and
> bridge drivers (again some of which i2c encoders) ? Does anyone has
> some pointers on the topic ?

DRM bridge is a superset of I2C encoders, so everything that I2C encoder
drivers do they should be able to do with DRM bridges, and more. There
isn't a strict guideline here, but I think there's general agreement
that new drivers should be using the DRM bridge framework. The primary
reason is that bridges integrate seamlessly with the driver model, that
is, the drivers that implement them are regular drivers that register
with the corresponding bus and get bound to a device, whereas the I2C
encoder infrastructure is mostly about manually instantiating devices.

For existing drivers I guess they could all be converted, but doing so
may require a bit of work. They also tend to work as-is, so finding
volunteers to do the conversion is probably going to be difficult given
the lack of motivation.

Thierry

> Based on the above I did a very quick search for third party IP
> modules in the DRM subsystem:
> 
> * i915
> dvo_ch7017.c
> dvo_ch7xxx.c
> dvo_ivch.c
> dvo_ns2501.c
> dvo_sil164.c
> dvo_tfp410.c

It looks like these use some framework that's custom to the i915 driver
but could otherwise easily be DRM bridges.

> * gma500
> tc35876x-dsi-lvds.c

This seems to be some sort of hybrid bridge and panel driver.

> * sti
> sti_hdmi_tx3g0c55phy.c
> sti_hdmi_tx3g4c28phy.c

These seem to implement some sort of PHY interface, but from a quick
look moving these to the PHY framework seems overkill. They seem no good
fit for DRM bridge because they are not separate devices, but rather the
SoC generation specific bits of the STi HDMI driver.

> (and for posterity)
> * i2c
> adv7511.c
> ch7006_drv.c
> sil164_drv.c
> tda998x_drv.c
> 
> 
> * bridge
> dw_hdmi.c
> nxp-ptn3460.c
> parade-ps8622.c
> 
> 
> By the looks of it, we can move rework (some of?) the above into
> i2c/bridge modules and in other cases (sil164) just use the existing
> one ? I'm neither volunteering nor suggesting people must work of
> these, merely curious.

My take on this is that it's probably best to keep the above in their
current form. If they need to be shared across multiple hardware setups
it might make sense to convert them to DRM bridge drivers.

For new drivers it's probably best to make them bridge drivers from the
start.

Thierry
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/dri-devel/attachments/20151112/fa58afd1/attachment.sig>


More information about the dri-devel mailing list