[PATCH 2/2] drm/radeon: use a fetch function to get the edid
Daniel Vetter
daniel at ffwll.ch
Tue Jul 15 08:18:51 PDT 2014
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 at amd.com>
[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
More information about the dri-devel
mailing list