On Tue, Sep 23, 2014 at 03:09:44PM +0300, Tomi Valkeinen wrote: > On 23/09/14 13:01, Thierry Reding wrote: > > On Tue, Sep 23, 2014 at 12:40:24PM +0300, Tomi Valkeinen wrote: [...] > >> What exactly is a bridge and what is an encoder? Those are DRM > >> constructs, aren't they? > > > > Yes. I think bridges are mostly a superset of encoders. > > Superset in what way? If I have a SiI9022 RGB-to-HDMI encoder embedded > into my SoC (i.e. a DRM encoder), or I have a board with a SiI9022 > encoder on the board (i.e. a DRM bridge), what is different? Superset in what they represent from a software point of view. As in: an encoder /is a/ bridge. Though they aren't currently implemented that way. > >> As I see it, a video pipeline consist of a video source (display > >> controller usually), a chain of encoders (all of which may not be > >> strictly "encoders", they could be level shifters, muxes, ESD protection > >> devices or such), and either a display device like a panel or a > >> connector to outside world. > > > > Well, the panel itself is attached to a connector. The connector is > > really what userspace uses to control the output and indirectly the > > panel. > > Yep. That's also something that should be fixed. A connector SW entity > is fine when connecting an external monitor, but a panel directly > connected to the SoC does not have a connector, and it's the panel that > should be controlled from the userspace. I disagree. A panel is usually also attached using some sort of connector. Maybe not an HDMI, VGA or DP connector, but still some sort of connector where often it can even be removed. Panels are theoretically hot-pluggable, too, much in the same way that monitors are. > But again, the legacy... You've got to make the abstraction somewhere, and I'm quite surprised actually how well the DRM abstractions are working out. I mean we can support anything from HDMI to DP to eDP, DSI and LVDS with just the connector abstraction and it all just works. That makes it a pretty good abstraction in my book. Thierry