Message ID | 20220616072233.8302-1-hongao@uniontech.com |
---|---|
State | New |
Headers | show |
Series | drm/exynos: replace drm_detect_hdmi_monitor() with drm_display_info.is_hdmi | expand |
On Fri, 24 Jun 2022, Inki Dae <inki.dae@samsung.com> wrote: > 22. 6. 16. 16:22에 hongao 이(가) 쓴 글: >> Once EDID is parsed, the monitor HDMI support information is available >> through drm_display_info.is_hdmi. >> >> This driver calls drm_detect_hdmi_monitor() to receive the same >> information, which is less efficient. >> >> Avoid calling drm_detect_hdmi_monitor() and use drm_display_info.is_hdmi >> instead. >> > > Applied. Sorry, but this is broken. The commit message contains the clue: "Once EDID is parsed". drm_get_edid() does not parse the EDID, you need to call drm_connector_update_edid_property() first. This is what I posted some time ago [1] but apparently was working on a different baseline. BR, Jani. [1] https://patchwork.freedesktop.org/patch/msgid/f21588dcb93bdb6cf76724506063bdfcdb0a6bb4.1662036058.git.jani.nikula@intel.com > > Thanks, > Inki Dae > >> Signed-off-by: hongao <hongao@uniontech.com> >> --- >> drivers/gpu/drm/exynos/exynos_hdmi.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/drivers/gpu/drm/exynos/exynos_hdmi.c b/drivers/gpu/drm/exynos/exynos_hdmi.c >> index 7655142a4651..17e9f5efbcfc 100644 >> --- a/drivers/gpu/drm/exynos/exynos_hdmi.c >> +++ b/drivers/gpu/drm/exynos/exynos_hdmi.c >> @@ -893,7 +893,7 @@ static int hdmi_get_modes(struct drm_connector *connector) >> if (!edid) >> return -ENODEV; >> >> - hdata->dvi_mode = !drm_detect_hdmi_monitor(edid); >> + hdata->dvi_mode = !connector->display_info.is_hdmi; >> DRM_DEV_DEBUG_KMS(hdata->dev, "%s : width[%d] x height[%d]\n", >> (hdata->dvi_mode ? "dvi monitor" : "hdmi monitor"), >> edid->width_cm, edid->height_cm);
diff --git a/drivers/gpu/drm/exynos/exynos_hdmi.c b/drivers/gpu/drm/exynos/exynos_hdmi.c index 7655142a4651..17e9f5efbcfc 100644 --- a/drivers/gpu/drm/exynos/exynos_hdmi.c +++ b/drivers/gpu/drm/exynos/exynos_hdmi.c @@ -893,7 +893,7 @@ static int hdmi_get_modes(struct drm_connector *connector) if (!edid) return -ENODEV; - hdata->dvi_mode = !drm_detect_hdmi_monitor(edid); + hdata->dvi_mode = !connector->display_info.is_hdmi; DRM_DEV_DEBUG_KMS(hdata->dev, "%s : width[%d] x height[%d]\n", (hdata->dvi_mode ? "dvi monitor" : "hdmi monitor"), edid->width_cm, edid->height_cm);
Once EDID is parsed, the monitor HDMI support information is available through drm_display_info.is_hdmi. This driver calls drm_detect_hdmi_monitor() to receive the same information, which is less efficient. Avoid calling drm_detect_hdmi_monitor() and use drm_display_info.is_hdmi instead. Signed-off-by: hongao <hongao@uniontech.com> --- drivers/gpu/drm/exynos/exynos_hdmi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)