[Intel-gfx] [PATCH] drm/edid: set ELD for firmware and debugfs override EDIDs
Daniel Vetter
daniel at ffwll.ch
Thu Mar 26 02:04:50 PDT 2015
On Thu, Mar 26, 2015 at 10:42:00AM +0200, Jani Nikula wrote:
> If the user supplies EDID through firmware or debugfs override, the
> driver callbacks are bypassed and the connector ELD does not get
> updated, and audio fails. Set ELD for firmware and debugfs EDIDs too.
>
> There should be no harm in gratuitously doing this for non HDMI/DP
> connectors, as it's still up to the driver to use the ELD, if any.
>
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=82349
> Reference: https://bugs.freedesktop.org/show_bug.cgi?id=80691
> Reported-by: Emil <emilsvennesson at gmail.com>
> Reported-by: Rob Engle <grenoble at gmail.com>
> Tested-by: Jolan Luff <jolan at gormsby.com>
> Cc: stable at vger.kernel.org
> Signed-off-by: Jani Nikula <jani.nikula at intel.com>
Since it's harmless I wonder whether we shouldn't just do this in
drm_add_edid_modes unconditionally. But this looks like the right minimal
patch for -fixes, so Reviewed-by: Daniel Vetter <daniel.vetter at ffwll.ch>
Cheers, Daniel
> ---
> drivers/gpu/drm/drm_edid_load.c | 1 +
> drivers/gpu/drm/drm_probe_helper.c | 1 +
> 2 files changed, 2 insertions(+)
>
> diff --git a/drivers/gpu/drm/drm_edid_load.c b/drivers/gpu/drm/drm_edid_load.c
> index 732cb6f8e653..4c0aa97aaf03 100644
> --- a/drivers/gpu/drm/drm_edid_load.c
> +++ b/drivers/gpu/drm/drm_edid_load.c
> @@ -287,6 +287,7 @@ int drm_load_edid_firmware(struct drm_connector *connector)
>
> drm_mode_connector_update_edid_property(connector, edid);
> ret = drm_add_edid_modes(connector, edid);
> + drm_edid_to_eld(connector, edid);
> kfree(edid);
>
> return ret;
> diff --git a/drivers/gpu/drm/drm_probe_helper.c b/drivers/gpu/drm/drm_probe_helper.c
> index 6591d48c1b9d..3fee587bc284 100644
> --- a/drivers/gpu/drm/drm_probe_helper.c
> +++ b/drivers/gpu/drm/drm_probe_helper.c
> @@ -174,6 +174,7 @@ static int drm_helper_probe_single_connector_modes_merge_bits(struct drm_connect
> struct edid *edid = (struct edid *) connector->edid_blob_ptr->data;
>
> count = drm_add_edid_modes(connector, edid);
> + drm_edid_to_eld(connector, edid);
> } else
> count = (*connector_funcs->get_modes)(connector);
> }
> --
> 2.1.4
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
More information about the Intel-gfx
mailing list