[RFC] compositor-drm: name outputs according to connectors if EDID is unavailable

Pekka Paalanen ppaalanen at gmail.com
Thu Aug 24 07:49:12 UTC 2017


On Wed, 23 Aug 2017 20:50:02 -0500
Matt Hoosier <matt.hoosier at gmail.com> wrote:

> On embedded systems, EDID is typically unavailble for connectors on buses
> such as LVDS or DSI. This change enhances the original opportunistic
> naming done in 2b2092adb499d8cdc10390cf19876706bcfe69cb to report the
> make and model of an output according to the KMS connector (e.g., "DSI-1")
> if no dynamic information about an attached monitor is available for
> the connector.
> ---
>  libweston/compositor-drm.c | 12 +++++++++---
>  1 file changed, 9 insertions(+), 3 deletions(-)
> 

Hi,

using connector name to describe the connected monitor doesn't sound
right to me.

If you actually need the connector name in clients then let's
design an extension that gives you exactly that instead of twisting the
poorly defined semantics of wl_output make/model even further. We have
long email threads discussing the design of such things already:
https://lists.freedesktop.org/archives/wayland-devel/2017-May/034083.html
https://lists.freedesktop.org/archives/wayland-devel/2017-August/034719.html

However, I could imagine weston.ini options to set the make/model
strings for a DRM connector. Like you say, EDID is not always
available, but the system administrator or vendor may actually have the
values and just needs a place to hard-code them. But, this raises a
question, why not ship and inject an EDID blob through the kernel, so
that you do not need to go fixing each and every compositor out there
to pick up the hard-coded values?

You could configure so much more in an EDID blob as well.

From the Linux kernel-parameters.txt:

        drm_kms_helper.edid_firmware=[<connector>:]<file>[,[<connector>:]<file>]
                        Broken monitors, graphic adapters, KVMs and EDIDless
                        panels may send no or incorrect EDID data sets.
                        This parameter allows to specify an EDID data sets
                        in the /lib/firmware directory that are used instead.
                        Generic built-in EDID data sets are used, if one of
                        edid/1024x768.bin, edid/1280x1024.bin,
                        edid/1680x1050.bin, or edid/1920x1080.bin is given
                        and no file with the same name exists. Details and
                        instructions how to build your own EDID data are
                        available in Documentation/EDID/HOWTO.txt. An EDID
                        data set will only be used for a particular connector,
                        if its name and a colon are prepended to the EDID
                        name. Each connector may use a unique EDID data
                        set by separating the files with a comma.  An EDID
                        data set with no connector name will be used for
                        any connectors not explicitly specified.

Is there a reason why you would not want to use this kernel DRM option?

What is the actual use case behind this patch? Why do you absolutely
have to have a make/model?


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/wayland-devel/attachments/20170824/ae1eb420/attachment.sig>


More information about the wayland-devel mailing list