On Tue, Jul 15, 2014 at 11:08:11AM -0400, Alex Deucher wrote: > We keep a cached version of the edid in radeon_connector which > we use for determining connectedness and when to enable certain > features like hdmi audio, etc. When the user uses the firmware > interface to override the driver with some other edid the driver's > copy is never updated. The fetch function will check if there > is a user supplied edid and update the driver's copy if there > is. > > bug: > https://bugs.freedesktop.org/show_bug.cgi?id=80691 > > Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx> [snip] > +struct edid *radeon_connector_edid(struct drm_connector *connector) > +{ > + struct radeon_connector *radeon_connector = to_radeon_connector(connector); > + struct drm_property_blob *edid_blob = connector->edid_blob_ptr; > + > + if (radeon_connector->edid) { > + return radeon_connector->edid; > + } else if (edid_blob) { > + struct edid *edid = kmemdup(edid_blob->data, edid_blob->length, GFP_KERNEL); > + if (edid) > + radeon_connector->edid = edid; > + } > + return radeon_connector->edid; > +} We have similar issues on intel now that we use the debugfs interface to force certain edids (for validating e.g. 4k or 3d) - our code doesn't see the forced edid. Should we have a helper somewhere or just change drm_get_edid to dtrt here? Adding Thomas who's working on this. -Daniel -- Daniel Vetter Software Engineer, Intel Corporation +41 (0) 79 365 57 48 - http://blog.ffwll.ch _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel