Commit 7805d1e5 authored by Laurent Pinchart's avatar Laurent Pinchart Committed by Tomi Valkeinen

drm/omap: Don't call HDMI mode and infoframe operations recursively

The HDMI mode (.set_hdmi_mode()) and infoframe (.set_infoframe())
operations are called recursively from the display device back to the
HDMI encoder. This isn't required, as all components other than the HDMI
encoder just forward the operation to the previous component in the
chain. Call the operations directly on the HDMI encoder.
Signed-off-by: default avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: default avatarSebastian Reichel <sebastian.reichel@collabora.co.uk>
Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
parent d96aaada
...@@ -154,21 +154,6 @@ static void hdmic_unregister_hpd_cb(struct omap_dss_device *dssdev) ...@@ -154,21 +154,6 @@ static void hdmic_unregister_hpd_cb(struct omap_dss_device *dssdev)
mutex_unlock(&ddata->hpd_lock); mutex_unlock(&ddata->hpd_lock);
} }
static int hdmic_set_hdmi_mode(struct omap_dss_device *dssdev, bool hdmi_mode)
{
struct omap_dss_device *src = dssdev->src;
return src->ops->hdmi.set_hdmi_mode(src, hdmi_mode);
}
static int hdmic_set_infoframe(struct omap_dss_device *dssdev,
const struct hdmi_avi_infoframe *avi)
{
struct omap_dss_device *src = dssdev->src;
return src->ops->hdmi.set_infoframe(src, avi);
}
static const struct omap_dss_device_ops hdmic_ops = { static const struct omap_dss_device_ops hdmic_ops = {
.connect = hdmic_connect, .connect = hdmic_connect,
.disconnect = hdmic_disconnect, .disconnect = hdmic_disconnect,
...@@ -183,11 +168,6 @@ static const struct omap_dss_device_ops hdmic_ops = { ...@@ -183,11 +168,6 @@ static const struct omap_dss_device_ops hdmic_ops = {
.detect = hdmic_detect, .detect = hdmic_detect,
.register_hpd_cb = hdmic_register_hpd_cb, .register_hpd_cb = hdmic_register_hpd_cb,
.unregister_hpd_cb = hdmic_unregister_hpd_cb, .unregister_hpd_cb = hdmic_unregister_hpd_cb,
.hdmi = {
.set_hdmi_mode = hdmic_set_hdmi_mode,
.set_infoframe = hdmic_set_infoframe,
},
}; };
static irqreturn_t hdmic_hpd_isr(int irq, void *data) static irqreturn_t hdmic_hpd_isr(int irq, void *data)
......
...@@ -145,22 +145,6 @@ static void tpd_unregister_hpd_cb(struct omap_dss_device *dssdev) ...@@ -145,22 +145,6 @@ static void tpd_unregister_hpd_cb(struct omap_dss_device *dssdev)
mutex_unlock(&ddata->hpd_lock); mutex_unlock(&ddata->hpd_lock);
} }
static int tpd_set_infoframe(struct omap_dss_device *dssdev,
const struct hdmi_avi_infoframe *avi)
{
struct omap_dss_device *src = dssdev->src;
return src->ops->hdmi.set_infoframe(src, avi);
}
static int tpd_set_hdmi_mode(struct omap_dss_device *dssdev,
bool hdmi_mode)
{
struct omap_dss_device *src = dssdev->src;
return src->ops->hdmi.set_hdmi_mode(src, hdmi_mode);
}
static const struct omap_dss_device_ops tpd_ops = { static const struct omap_dss_device_ops tpd_ops = {
.connect = tpd_connect, .connect = tpd_connect,
.disconnect = tpd_disconnect, .disconnect = tpd_disconnect,
...@@ -171,11 +155,6 @@ static const struct omap_dss_device_ops tpd_ops = { ...@@ -171,11 +155,6 @@ static const struct omap_dss_device_ops tpd_ops = {
.detect = tpd_detect, .detect = tpd_detect,
.register_hpd_cb = tpd_register_hpd_cb, .register_hpd_cb = tpd_register_hpd_cb,
.unregister_hpd_cb = tpd_unregister_hpd_cb, .unregister_hpd_cb = tpd_unregister_hpd_cb,
.hdmi = {
.set_infoframe = tpd_set_infoframe,
.set_hdmi_mode = tpd_set_hdmi_mode,
},
}; };
static irqreturn_t tpd_hpd_isr(int irq, void *data) static irqreturn_t tpd_hpd_isr(int irq, void *data)
......
...@@ -58,7 +58,7 @@ static void omap_encoder_mode_set(struct drm_encoder *encoder, ...@@ -58,7 +58,7 @@ static void omap_encoder_mode_set(struct drm_encoder *encoder,
{ {
struct drm_device *dev = encoder->dev; struct drm_device *dev = encoder->dev;
struct omap_encoder *omap_encoder = to_omap_encoder(encoder); struct omap_encoder *omap_encoder = to_omap_encoder(encoder);
struct omap_dss_device *dssdev = omap_encoder->display; struct omap_dss_device *dssdev = omap_encoder->output;
struct drm_connector *connector; struct drm_connector *connector;
bool hdmi_mode; bool hdmi_mode;
int r; int r;
......
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