mirror of
https://github.com/torvalds/linux.git
synced 2026-05-30 18:13:41 +02:00
drm/exynos: hdmi: convert to struct drm_edid
Prefer the struct drm_edid based functions for reading the EDID and updating the connector. The functional change is that the CEC physical address gets invalidated when the EDID could not be read. v2: - display info usage was split to a separate patch - check drm_edid_connector_update() return value Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> Acked-by: Inki Dae <inki.dae@samsung.com> Link: https://patchwork.freedesktop.org/patch/msgid/be15dce66a5373a7aed797a4ef63b0ba90b231e9.1724348429.git.jani.nikula@intel.com Signed-off-by: Jani Nikula <jani.nikula@intel.com>
This commit is contained in:
parent
0bf469888e
commit
f6e4f57fd9
|
|
@ -884,14 +884,21 @@ static int hdmi_get_modes(struct drm_connector *connector)
|
|||
{
|
||||
struct hdmi_context *hdata = connector_to_hdmi(connector);
|
||||
const struct drm_display_info *info = &connector->display_info;
|
||||
struct edid *edid;
|
||||
const struct drm_edid *drm_edid;
|
||||
int ret;
|
||||
|
||||
if (!hdata->ddc_adpt)
|
||||
goto no_edid;
|
||||
|
||||
edid = drm_get_edid(connector, hdata->ddc_adpt);
|
||||
if (!edid)
|
||||
drm_edid = drm_edid_read_ddc(connector, hdata->ddc_adpt);
|
||||
|
||||
ret = drm_edid_connector_update(connector, drm_edid);
|
||||
if (ret)
|
||||
return 0;
|
||||
|
||||
cec_notifier_set_phys_addr(hdata->notifier, info->source_physical_address);
|
||||
|
||||
if (!drm_edid)
|
||||
goto no_edid;
|
||||
|
||||
hdata->dvi_mode = !info->is_hdmi;
|
||||
|
|
@ -899,12 +906,9 @@ static int hdmi_get_modes(struct drm_connector *connector)
|
|||
(hdata->dvi_mode ? "dvi monitor" : "hdmi monitor"),
|
||||
info->width_mm / 10, info->height_mm / 10);
|
||||
|
||||
drm_connector_update_edid_property(connector, edid);
|
||||
cec_notifier_set_phys_addr_from_edid(hdata->notifier, edid);
|
||||
ret = drm_edid_connector_add_modes(connector);
|
||||
|
||||
ret = drm_add_edid_modes(connector, edid);
|
||||
|
||||
kfree(edid);
|
||||
drm_edid_free(drm_edid);
|
||||
|
||||
return ret;
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user