Commit 57ae18fb authored by José Expósito's avatar José Expósito Committed by Maxime Ripard

drm/sun4i: hdmi: Replace drm_detect_hdmi_monitor() with is_hdmi

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 and stores its own cached value, which is less efficient.

Avoid calling drm_detect_hdmi_monitor() and use drm_display_info.is_hdmi
instead and also remove sun4i_hdmi.hdmi_monitor as it is no longer
necessary.
Signed-off-by: default avatarJosé Expósito <jose.exposito89@gmail.com>
Signed-off-by: default avatarMaxime Ripard <maxime@cerno.tech>
Link: https://patchwork.freedesktop.org/patch/msgid/20220421170725.903361-6-jose.exposito89@gmail.com
parent 0e48711f
...@@ -285,7 +285,6 @@ struct sun4i_hdmi { ...@@ -285,7 +285,6 @@ struct sun4i_hdmi {
struct sun4i_drv *drv; struct sun4i_drv *drv;
bool hdmi_monitor;
struct cec_adapter *cec_adap; struct cec_adapter *cec_adap;
const struct sun4i_hdmi_variant *variant; const struct sun4i_hdmi_variant *variant;
......
...@@ -99,6 +99,7 @@ static void sun4i_hdmi_enable(struct drm_encoder *encoder) ...@@ -99,6 +99,7 @@ static void sun4i_hdmi_enable(struct drm_encoder *encoder)
{ {
struct drm_display_mode *mode = &encoder->crtc->state->adjusted_mode; struct drm_display_mode *mode = &encoder->crtc->state->adjusted_mode;
struct sun4i_hdmi *hdmi = drm_encoder_to_sun4i_hdmi(encoder); struct sun4i_hdmi *hdmi = drm_encoder_to_sun4i_hdmi(encoder);
struct drm_display_info *display = &hdmi->connector.display_info;
u32 val = 0; u32 val = 0;
DRM_DEBUG_DRIVER("Enabling the HDMI Output\n"); DRM_DEBUG_DRIVER("Enabling the HDMI Output\n");
...@@ -111,7 +112,7 @@ static void sun4i_hdmi_enable(struct drm_encoder *encoder) ...@@ -111,7 +112,7 @@ static void sun4i_hdmi_enable(struct drm_encoder *encoder)
writel(val, hdmi->base + SUN4I_HDMI_PKT_CTRL_REG(0)); writel(val, hdmi->base + SUN4I_HDMI_PKT_CTRL_REG(0));
val = SUN4I_HDMI_VID_CTRL_ENABLE; val = SUN4I_HDMI_VID_CTRL_ENABLE;
if (hdmi->hdmi_monitor) if (display->is_hdmi)
val |= SUN4I_HDMI_VID_CTRL_HDMI_MODE; val |= SUN4I_HDMI_VID_CTRL_HDMI_MODE;
writel(val, hdmi->base + SUN4I_HDMI_VID_CTRL_REG); writel(val, hdmi->base + SUN4I_HDMI_VID_CTRL_REG);
...@@ -215,9 +216,8 @@ static int sun4i_hdmi_get_modes(struct drm_connector *connector) ...@@ -215,9 +216,8 @@ static int sun4i_hdmi_get_modes(struct drm_connector *connector)
if (!edid) if (!edid)
return 0; return 0;
hdmi->hdmi_monitor = drm_detect_hdmi_monitor(edid);
DRM_DEBUG_DRIVER("Monitor is %s monitor\n", DRM_DEBUG_DRIVER("Monitor is %s monitor\n",
hdmi->hdmi_monitor ? "an HDMI" : "a DVI"); connector->display_info.is_hdmi ? "an HDMI" : "a DVI");
drm_connector_update_edid_property(connector, edid); drm_connector_update_edid_property(connector, edid);
cec_s_phys_addr_from_edid(hdmi->cec_adap, edid); cec_s_phys_addr_from_edid(hdmi->cec_adap, edid);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment