FAQ Search Today's Posts Mark Forums Read
» Video Reviews

» Linux Archive

Linux-archive is a website aiming to archive linux email lists and to make them easily accessible for linux users/developers.


» Sponsor

» Partners

» Sponsor

Go Back   Linux Archive > Ubuntu > Ubuntu Kernel Team

 
 
LinkBack Thread Tools
 
Old 03-21-2012, 02:58 PM
Andy Whitcroft
 
Default EDID override support

We have an issue when the KMS EDID is either not valid or does not
accuratly describe the attached monitor. This happens with broken monitors
and also with KVM devices which often lie about the attached monitor when
you request EDID and you are not being displayed. In these situations
it would be nice to be able to take corrective action. Before KMS took
over display initialisation the X server allowed the user to specifify
an alternative EDID which it would use instead of the one loaded from
the monitor. The patch attempts to provide the kernel component of such
a mechanism in the KMS world.

This patch allows us to specify new EDID files which may then overwrite the
auto detected EDID in KMS. As loading an EDID is potentially dangerous
(indeed with old monitors you might load up and EDID which causes us
to blow up the monitor) we do not allow arbitrary files to be loaded,
we limit the files to those found in the firmware directory edid/.
The load is triggered by echoing the name of a replacement edid file
into the existing edid file in /sys. This will use the firmware loader
to load the new binary data, and then switch to it.

It is envisioned that this would be utilised by some udev support.
For example you could perhaps use system board ids to trigger automatic
loading, or perhaps the md5sum of the existing EDID where this is always
known to be wrong. This patch is a prerequisite for this kind of support.

This fix is not yet upstream, I am going to be tackling that next.
However it is a very self contained change, and is primarily intended to be
used by userspace support which we will define such that if the interface
changes it will be hidden from the user; I do not intend to guarentee
this interface API. I am considering this a bug fix for those broken
EDID scenarios which we used to be able to fix in X and no longer can.

Finally some history, I have taken this patch and sanitised it for
our use, particularly limiting its reach to the edid directory in the
firmware directories. This is both for safety and also as it would allow
that directory to be shipped in a separate package from the X team in
the future.

Proposing for Precise (post Beta 2 please).

-apw

Carsten Emde (1):
drm/edid: allow to load edid firmware

drivers/gpu/drm/drm_crtc_helper.c | 7 ++++
drivers/gpu/drm/drm_edid.c | 5 +++
drivers/gpu/drm/drm_sysfs.c | 66 ++++++++++++++++++++++++++++++++++++-
include/drm/drm_crtc.h | 1 +
4 files changed, 78 insertions(+), 1 deletions(-)

--
1.7.9.1


--
kernel-team mailing list
kernel-team@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/kernel-team
 
Old 03-21-2012, 03:08 PM
Andy Whitcroft
 
Default EDID override support

Ok IGNORE this for now, it seems upstream has _just_ merged an
alternative patch set for this very thing. If we pull anything it needs
to be interface compatible with that.

-apw

--
kernel-team mailing list
kernel-team@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/kernel-team
 
Old 03-23-2012, 05:10 PM
Andy Whitcroft
 
Default EDID override support

We have an issue when the KMS EDID is either not valid or does not
accuratly describe the attached monitor. This happens with broken monitors
and also with KVM devices which often lie about the attached monitor when
you request EDID and you are not being displayed. In these situations
it would be nice to be able to take corrective action. Before KMS took
over display initialisation the X server allowed the user to specifify
an alternative EDID which it would use instead of the one loaded from
the monitor. The patch attempts to provide the kernel component of such
a mechanism in the KMS world.

This patch allows us to specify new EDID files which may then overwrite the
auto detected EDID in KMS. As loading an EDID is potentially dangerous
(indeed with old monitors you might load up and EDID which causes us
to blow up the monitor) we do not allow arbitrary files to be loaded,
we limit the files to those found in the firmware directory edid/.
The load is triggered by echoing the name of a replacement edid file
into the existing edid file in /sys. This will use the firmware loader
to load the new binary data, and then switch to it.

It is envisioned that this would be utilised by some udev support.
For example you could perhaps use system board ids to trigger automatic
loading, or perhaps the md5sum of the existing EDID where this is always
known to be wrong. This patch is a prerequisite for this kind of support.

This fix is not yet upstream, I am going to be tackling that next.
However it is a very self contained change, and is primarily intended to be
used by userspace support which we will define such that if the interface
changes it will be hidden from the user; I do not intend to guarentee
this interface API. I am considering this a bug fix for those broken
EDID scenarios which we used to be able to fix in X and no longer can.

Finally some history, this patch just was merged into the DRM tree
ready most likely for 3.4 or 3.5. Using the same interface as we will
get for Q seems desirable.

Proposing for Precise (post Beta 2 please).

-apw

Andy Whitcroft (1):
UBUNTU: [Config]: enable CONFIG_DRM_LOAD_EDID_FIRMWARE

Carsten Emde (1):
drm: allow loading an EDID as firmware to override broken monitor

Documentation/EDID/1024x768.S | 44 +++++
Documentation/EDID/1280x1024.S | 44 +++++
Documentation/EDID/1680x1050.S | 44 +++++
Documentation/EDID/1920x1080.S | 44 +++++
Documentation/EDID/HOWTO.txt | 39 +++++
Documentation/EDID/Makefile | 26 +++
Documentation/EDID/edid.S | 261 +++++++++++++++++++++++++++++
Documentation/EDID/hex | 1 +
Documentation/kernel-parameters.txt | 15 ++
debian.master/config/config.common.ubuntu | 1 +
drivers/gpu/drm/Kconfig | 12 ++
drivers/gpu/drm/Makefile | 1 +
drivers/gpu/drm/drm_crtc_helper.c | 8 +-
drivers/gpu/drm/drm_edid.c | 4 +-
drivers/gpu/drm/drm_edid_load.c | 250 +++++++++++++++++++++++++++
include/drm/drm_crtc.h | 1 +
include/drm/drm_edid.h | 1 +
17 files changed, 793 insertions(+), 3 deletions(-)
create mode 100644 Documentation/EDID/1024x768.S
create mode 100644 Documentation/EDID/1280x1024.S
create mode 100644 Documentation/EDID/1680x1050.S
create mode 100644 Documentation/EDID/1920x1080.S
create mode 100644 Documentation/EDID/HOWTO.txt
create mode 100644 Documentation/EDID/Makefile
create mode 100644 Documentation/EDID/edid.S
create mode 100644 Documentation/EDID/hex
create mode 100644 drivers/gpu/drm/drm_edid_load.c

--
1.7.9.1

--
kernel-team mailing list
kernel-team@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/kernel-team
 

Thread Tools




All times are GMT. The time now is 12:21 AM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.
Copyright 2007 - 2008, www.linux-archive.org