* DRM i2c module or bridge ? @ 2015-11-12 12:48 Emil Velikov 2015-11-12 13:18 ` Thierry Reding 0 siblings, 1 reply; 5+ messages in thread From: Emil Velikov @ 2015-11-12 12:48 UTC (permalink / raw) To: Thierry Reding, ML dri-devel 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 ? 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 * gma500 tc35876x-dsi-lvds.c * sti sti_hdmi_tx3g0c55phy.c sti_hdmi_tx3g4c28phy.c (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. Thanks Emil _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/dri-devel ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: DRM i2c module or bridge ? 2015-11-12 12:48 DRM i2c module or bridge ? Emil Velikov @ 2015-11-12 13:18 ` Thierry Reding 2015-11-12 13:50 ` Emil Velikov 0 siblings, 1 reply; 5+ messages in thread From: Thierry Reding @ 2015-11-12 13:18 UTC (permalink / raw) To: Emil Velikov; +Cc: ML dri-devel [-- Attachment #1.1: Type: text/plain, Size: 2645 bytes --] 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 [-- Attachment #1.2: signature.asc --] [-- Type: application/pgp-signature, Size: 819 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 ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: DRM i2c module or bridge ? 2015-11-12 13:18 ` Thierry Reding @ 2015-11-12 13:50 ` Emil Velikov 2015-12-07 8:47 ` Archit Taneja 0 siblings, 1 reply; 5+ messages in thread From: Emil Velikov @ 2015-11-12 13:50 UTC (permalink / raw) To: Thierry Reding; +Cc: ML dri-devel On 12 November 2015 at 13:18, Thierry Reding <thierry.reding@gmail.com> wrote: > 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. > Thanks for the comprehensive reply Thierry. Pretty sure there are other people wondering about these - this should straighten things out. Just a small note: considering that most desktop GPUs are moving (have moved ?) away from third party encoders/transmitters I doubt we'll be seeing any movements on that front. Cheers, Emil _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/dri-devel ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: DRM i2c module or bridge ? 2015-11-12 13:50 ` Emil Velikov @ 2015-12-07 8:47 ` Archit Taneja 2015-12-07 13:42 ` Emil Velikov 0 siblings, 1 reply; 5+ messages in thread From: Archit Taneja @ 2015-12-07 8:47 UTC (permalink / raw) To: Emil Velikov, Thierry Reding; +Cc: ML dri-devel On 11/12/2015 07:20 PM, Emil Velikov wrote: > On 12 November 2015 at 13:18, Thierry Reding <thierry.reding@gmail.com> wrote: >> 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. >> > Thanks for the comprehensive reply Thierry. Pretty sure there are > other people wondering about these - this should straighten things > out. Please refer to the following thread for a similar discussion: http://lists.freedesktop.org/archives/dri-devel/2015-July/087097.html > > Just a small note: considering that most desktop GPUs are moving (have > moved ?) away from third party encoders/transmitters I doubt we'll be > seeing any movements on that front. We still have a requirement for such encoders in the SoC world. A SoC may provide a particular kind of encoder output, but we might need to convert that into another type of encoded output. There are multiple reasons why we might want to do this (SoC limitations, support old encoded formats like LVDS, weird requirements on some boards). There is also a trend of re-use of the same third party encoder IPs across multiple SoCs. Having bridges for such IPs is helpful too. Archit > > Cheers, > Emil > _______________________________________________ > dri-devel mailing list > dri-devel@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/dri-devel > -- The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, hosted by The Linux Foundation _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/dri-devel ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: DRM i2c module or bridge ? 2015-12-07 8:47 ` Archit Taneja @ 2015-12-07 13:42 ` Emil Velikov 0 siblings, 0 replies; 5+ messages in thread From: Emil Velikov @ 2015-12-07 13:42 UTC (permalink / raw) To: Archit Taneja; +Cc: ML dri-devel Hi Archit, On 7 December 2015 at 08:47, Archit Taneja <architt@codeaurora.org> wrote: > On 11/12/2015 07:20 PM, Emil Velikov wrote: >> On 12 November 2015 at 13:18, Thierry Reding <thierry.reding@gmail.com> >> wrote: >>> >>> 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. >>> >> Thanks for the comprehensive reply Thierry. Pretty sure there are >> other people wondering about these - this should straighten things >> out. > > > Please refer to the following thread for a similar discussion: > > http://lists.freedesktop.org/archives/dri-devel/2015-July/087097.html > Thanks for the link, I've already seen the discussion. Yet I did not find it as "clear cut" as Thierry's answer. >> >> Just a small note: considering that most desktop GPUs are moving (have >> moved ?) away from third party encoders/transmitters I doubt we'll be >> seeing any movements on that front. > > > We still have a requirement for such encoders in the SoC world. A SoC > may provide a particular kind of encoder output, but we might need to > convert that into another type of encoded output. There are multiple > reasons why we might want to do this (SoC limitations, support old > encoded formats like LVDS, weird requirements on some boards). > > There is also a trend of re-use of the same third party encoder IPs > across multiple SoCs. Having bridges for such IPs is helpful too. > Reusing things drivers multiple SoC is great imho. As Rob mentioned in another thread - albeit (slightly) awkward one could port the i2c driver to a bridge one, as as al the users of the former are converted it can be nuked. We'll get there one day :-) -Emil _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/dri-devel ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2015-12-07 13:42 UTC | newest] Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2015-11-12 12:48 DRM i2c module or bridge ? Emil Velikov 2015-11-12 13:18 ` Thierry Reding 2015-11-12 13:50 ` Emil Velikov 2015-12-07 8:47 ` Archit Taneja 2015-12-07 13:42 ` Emil Velikov
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.