Caching of EDID for X server to decrease startup time of X server

Daniel Vetter daniel at
Mon Aug 10 07:26:46 PDT 2015

On Mon, Aug 10, 2015 at 03:36:13PM +0200, Thierry Reding wrote:
> On Mon, Aug 10, 2015 at 02:13:43PM +0100, Chris Wilson wrote:
> > On Mon, Aug 10, 2015 at 03:01:49PM +0200, Thierry Reding wrote:
> > > Russell and Sascha were discussing this kind of caching in the i.MX
> > > driver recently. Adding both for visibility. Also not trimming the quote
> > > in case they don't have the original.
> > > 
> > > It sounds like this could be useful to have in the core. As I understand
> > > it, hotplug detection is pretty well specified for more modern display
> > > interfaces (like HDMI and DisplayPort), so I think caching of this sort
> > > could work for those. However, I think some older interfaces such as VGA
> > > (or perhaps even DVI as well) don't have reliable hotplug detection and
> > > hence would need to be able to force reading the EDID.
> > > 
> > > Still, perhaps a connector flag could be introduced to enable caching on
> > > a per-connector basis, and then we should be able to deal with this in
> > > the DRM core, rather than have per-driver quirks.
> > 
> > We've shied away from EDID caching precisely because HPD on Intel is
> > notoriously unreliable. The last suggestion no one followed up with was
> > a short term EDID cache.
> That's why I think a per-connector flag would be good. It would allow
> this caching to be enabled only where it's been confirmed to be safe.
> I'd expect that HPD works well for HDMI and DisplayPort even on Intel.

My stance is that the kernel should take care of this for userspace (it
knows best what the hw can do, and the code will be shared with everyone).
Userspace should simply ask for the cached copy using the trick Chris
Wilson submitted a while ago. Of course it should allow some means for
users to force an explicit probe on those systems where nothing really
Daniel Vetter
Software Engineer, Intel Corporation

More information about the dri-devel mailing list