On 25/06/14 14:03, Archit Taneja wrote: > Hi, > > On Tuesday 24 June 2014 03:34 PM, Tomi Valkeinen wrote: >> Make the omapdrm driver use the new HDMI ops when possible. >> >> omapdrm will call set_hdmi_mode (when available) to tell the encoder >> driver whether the monitor is a DVI or HDMI monitor, and if it's an HDMI >> monitor, omapdrm will call set_hdmi_infoframe to to set the AVI >> infoframe. > > > > >> @@ -89,6 +91,31 @@ static void omap_encoder_mode_set(struct >> drm_encoder *encoder, >> struct drm_display_mode *mode, >> struct drm_display_mode *adjusted_mode) >> { >> + struct drm_device *dev = encoder->dev; >> + struct omap_encoder *omap_encoder = to_omap_encoder(encoder); >> + struct omap_dss_device *dssdev = omap_encoder->dssdev; >> + struct drm_connector *connector; >> + bool hdmi_mode; >> + int r; >> + >> + hdmi_mode = false; >> + list_for_each_entry(connector, &dev->mode_config.connector_list, >> head) { >> + if (connector->encoder == encoder) { >> + hdmi_mode = omap_connector_get_hdmi_mode(connector); >> + break; >> + } >> + } >> + >> + if (dssdev->driver->set_hdmi_mode) >> + dssdev->driver->set_hdmi_mode(dssdev, hdmi_mode); > > When a HDMI monitor is replaced with a DVI one, we call the > set_hdmi_mode() driver op to set the mode to DVI. But we don't call > set_hdmi_infoframe() when the mode is set back to DVI. Do we need to set > avi infoframe registers back to a default value, or are those registers > just ignored in DVI mode? If I'm not mistaken, infoframes are a HDMI thing. When in DVI mode, the device driver should clear/disable/something the infoframe registers, depending on the HW in question. Tomi