[PATCH] drm: document that user-space should avoid parsing EDIDs

Pekka Paalanen ppaalanen at gmail.com
Fri Oct 9 13:56:51 UTC 2020


On Fri, 9 Oct 2020 16:10:25 +0300
Ville Syrjälä <ville.syrjala at linux.intel.com> wrote:

> On Fri, Oct 09, 2020 at 01:07:20PM +0100, Daniel Stone wrote:
> > Hi,
> > 
> > On Fri, 9 Oct 2020 at 10:24, Simon Ser <contact at emersion.fr> wrote:  
> > > User-space should avoid parsing EDIDs for metadata already exposed via
> > > other KMS interfaces and properties. For instance, user-space should not
> > > try to extract a list of modes from the EDID: the kernel might mutate
> > > the mode list (because of link capabilities or quirks for instance).
> > >
> > > Other metadata not exposed by KMS can be parsed by user-space. This
> > > includes for instance monitor identification (make/model/serial) and
> > > supported color-spaces.  
> > 
> > So I take it the only way to get modes is through the connector's list
> > of modes. That sounds reasonable enough to me, but I think to properly
> > handle colour (e.g. CEA modes have different behaviour for
> > limited/full range depending on which VIC they correspond to IIRC)  
> 
> If the mode has a VIC and that VIC is not 1, then it's limited range,
> otherwise full range. There are fortunately no cases where you would
> have the same exact timings corresponding to different quantization
> range depending on the VIC.
> 
> And the only reason the same timings could correspond to multiple VICs
> is aspect ratio. Which is already exposed via the mode flags, assuming
> the appropriate client cap is enabled.
> 
> So I think the only reason to expose the VIC would be if userspace is
> non-lazy and wants to manage its colors presicely, but is otherwise lazy
> and doesn't want to figure out what the VIC of the mode is on its own.

What would "figure out what the VIC of the mode is" require in userspace?

A database of all VIC modes and then compare if the detailed timings match?

Is that also how the kernel recognises that userspace wants to set a
certain VIC mode instead of some arbitrary mode?

Can CVT or GVT produce those exact timings? Can that accidentally
result in limited range?

Sounds like the hypothetical libedid needs a libvic as a friend... and
libpixel-format while at it. :-)


Thanks,
pq
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 833 bytes
Desc: OpenPGP digital signature
URL: <https://lists.freedesktop.org/archives/dri-devel/attachments/20201009/b7fce0de/attachment.sig>


More information about the dri-devel mailing list