All of lore.kernel.org
 help / color / mirror / Atom feed
From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: dri-devel@lists.freedesktop.org
Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
Subject: [PATCH v2 23/60] drm/omap: displays: Remove input omap_dss_device from panel data
Date: Sat, 26 May 2018 20:24:41 +0300	[thread overview]
Message-ID: <20180526172518.18710-24-laurent.pinchart@ideasonboard.com> (raw)
In-Reply-To: <20180526172518.18710-1-laurent.pinchart@ideasonboard.com>

All connectors, encoders and panels store a pointer to their input
omap_dss_device in the panel driver data structure. This duplicates the
src field in the omap_dss_device structure. Remove the private copy and
use the src field.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
---
 .../gpu/drm/omapdrm/displays/connector-analog-tv.c |  41 ++---
 drivers/gpu/drm/omapdrm/displays/connector-dvi.c   |  43 ++---
 drivers/gpu/drm/omapdrm/displays/connector-hdmi.c  |  88 +++++-----
 drivers/gpu/drm/omapdrm/displays/encoder-opa362.c  |  41 ++---
 drivers/gpu/drm/omapdrm/displays/encoder-tfp410.c  |  41 ++---
 .../gpu/drm/omapdrm/displays/encoder-tpd12s015.c   |  68 +++-----
 drivers/gpu/drm/omapdrm/displays/panel-dpi.c       |  44 +++--
 drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c    | 190 ++++++++++-----------
 .../omapdrm/displays/panel-lgphilips-lb035q02.c    |  41 ++---
 .../drm/omapdrm/displays/panel-nec-nl8048hl11.c    |  42 ++---
 .../drm/omapdrm/displays/panel-sharp-ls037v7dw01.c |  42 ++---
 .../drm/omapdrm/displays/panel-sony-acx565akm.c    |  42 ++---
 .../drm/omapdrm/displays/panel-tpo-td028ttec1.c    |  42 ++---
 .../drm/omapdrm/displays/panel-tpo-td043mtea1.c    |  44 +++--
 14 files changed, 362 insertions(+), 447 deletions(-)

diff --git a/drivers/gpu/drm/omapdrm/displays/connector-analog-tv.c b/drivers/gpu/drm/omapdrm/displays/connector-analog-tv.c
index d77e21fc26ad..f579bd9ce7cb 100644
--- a/drivers/gpu/drm/omapdrm/displays/connector-analog-tv.c
+++ b/drivers/gpu/drm/omapdrm/displays/connector-analog-tv.c
@@ -18,7 +18,6 @@
 
 struct panel_drv_data {
 	struct omap_dss_device dssdev;
-	struct omap_dss_device *in;
 
 	struct device *dev;
 
@@ -45,40 +44,37 @@ static const struct videomode tvc_pal_vm = {
 static int tvc_connect(struct omap_dss_device *dssdev)
 {
 	struct panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in;
+	struct omap_dss_device *src;
 	int r;
 
-	in = omapdss_of_find_source_for_first_ep(ddata->dev->of_node);
-	if (IS_ERR(in)) {
+	src = omapdss_of_find_source_for_first_ep(ddata->dev->of_node);
+	if (IS_ERR(src)) {
 		dev_err(ddata->dev, "failed to find video source\n");
-		return PTR_ERR(in);
+		return PTR_ERR(src);
 	}
 
-	r = omapdss_device_connect(in, dssdev);
+	r = omapdss_device_connect(src, dssdev);
 	if (r) {
-		omap_dss_put_device(in);
+		omap_dss_put_device(src);
 		return r;
 	}
 
-	ddata->in = in;
 	return 0;
 }
 
 static void tvc_disconnect(struct omap_dss_device *dssdev)
 {
-	struct panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = dssdev->src;
 
-	omapdss_device_disconnect(in, dssdev);
+	omapdss_device_disconnect(src, dssdev);
 
-	omap_dss_put_device(in);
-	ddata->in = NULL;
+	omap_dss_put_device(src);
 }
 
 static int tvc_enable(struct omap_dss_device *dssdev)
 {
 	struct panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = dssdev->src;
 	int r;
 
 	dev_dbg(ddata->dev, "enable\n");
@@ -89,9 +85,9 @@ static int tvc_enable(struct omap_dss_device *dssdev)
 	if (omapdss_device_is_enabled(dssdev))
 		return 0;
 
-	in->ops->set_timings(in, &ddata->vm);
+	src->ops->set_timings(src, &ddata->vm);
 
-	r = in->ops->enable(in);
+	r = src->ops->enable(src);
 	if (r)
 		return r;
 
@@ -103,14 +99,14 @@ static int tvc_enable(struct omap_dss_device *dssdev)
 static void tvc_disable(struct omap_dss_device *dssdev)
 {
 	struct panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = dssdev->src;
 
 	dev_dbg(ddata->dev, "disable\n");
 
 	if (!omapdss_device_is_enabled(dssdev))
 		return;
 
-	in->ops->disable(in);
+	src->ops->disable(src);
 
 	dssdev->state = OMAP_DSS_DISPLAY_DISABLED;
 }
@@ -119,11 +115,11 @@ static void tvc_set_timings(struct omap_dss_device *dssdev,
 			    struct videomode *vm)
 {
 	struct panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = dssdev->src;
 
 	ddata->vm = *vm;
 
-	in->ops->set_timings(in, vm);
+	src->ops->set_timings(src, vm);
 }
 
 static void tvc_get_timings(struct omap_dss_device *dssdev,
@@ -137,10 +133,9 @@ static void tvc_get_timings(struct omap_dss_device *dssdev,
 static int tvc_check_timings(struct omap_dss_device *dssdev,
 			     struct videomode *vm)
 {
-	struct panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = dssdev->src;
 
-	return in->ops->check_timings(in, vm);
+	return src->ops->check_timings(src, vm);
 }
 
 static const struct omap_dss_driver tvc_driver = {
diff --git a/drivers/gpu/drm/omapdrm/displays/connector-dvi.c b/drivers/gpu/drm/omapdrm/displays/connector-dvi.c
index 9a3ecc3ed5b2..48dbb9df76b5 100644
--- a/drivers/gpu/drm/omapdrm/displays/connector-dvi.c
+++ b/drivers/gpu/drm/omapdrm/displays/connector-dvi.c
@@ -40,7 +40,6 @@ static const struct videomode dvic_default_vm = {
 
 struct panel_drv_data {
 	struct omap_dss_device dssdev;
-	struct omap_dss_device *in;
 
 	struct videomode vm;
 
@@ -59,41 +58,37 @@ struct panel_drv_data {
 
 static int dvic_connect(struct omap_dss_device *dssdev)
 {
-	struct panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in;
+	struct omap_dss_device *src;
 	int r;
 
-	in = omapdss_of_find_source_for_first_ep(dssdev->dev->of_node);
-	if (IS_ERR(in)) {
+	src = omapdss_of_find_source_for_first_ep(dssdev->dev->of_node);
+	if (IS_ERR(src)) {
 		dev_err(dssdev->dev, "failed to find video source\n");
-		return PTR_ERR(in);
+		return PTR_ERR(src);
 	}
 
-	r = omapdss_device_connect(in, dssdev);
+	r = omapdss_device_connect(src, dssdev);
 	if (r) {
-		omap_dss_put_device(in);
+		omap_dss_put_device(src);
 		return r;
 	}
 
-	ddata->in = in;
 	return 0;
 }
 
 static void dvic_disconnect(struct omap_dss_device *dssdev)
 {
-	struct panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = dssdev->src;
 
-	omapdss_device_disconnect(in, dssdev);
+	omapdss_device_disconnect(src, dssdev);
 
-	omap_dss_put_device(in);
-	ddata->in = NULL;
+	omap_dss_put_device(src);
 }
 
 static int dvic_enable(struct omap_dss_device *dssdev)
 {
 	struct panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = dssdev->src;
 	int r;
 
 	if (!omapdss_device_is_connected(dssdev))
@@ -102,9 +97,9 @@ static int dvic_enable(struct omap_dss_device *dssdev)
 	if (omapdss_device_is_enabled(dssdev))
 		return 0;
 
-	in->ops->set_timings(in, &ddata->vm);
+	src->ops->set_timings(src, &ddata->vm);
 
-	r = in->ops->enable(in);
+	r = src->ops->enable(src);
 	if (r)
 		return r;
 
@@ -115,13 +110,12 @@ static int dvic_enable(struct omap_dss_device *dssdev)
 
 static void dvic_disable(struct omap_dss_device *dssdev)
 {
-	struct panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = dssdev->src;
 
 	if (!omapdss_device_is_enabled(dssdev))
 		return;
 
-	in->ops->disable(in);
+	src->ops->disable(src);
 
 	dssdev->state = OMAP_DSS_DISPLAY_DISABLED;
 }
@@ -130,11 +124,11 @@ static void dvic_set_timings(struct omap_dss_device *dssdev,
 			     struct videomode *vm)
 {
 	struct panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = dssdev->src;
 
 	ddata->vm = *vm;
 
-	in->ops->set_timings(in, vm);
+	src->ops->set_timings(src, vm);
 }
 
 static void dvic_get_timings(struct omap_dss_device *dssdev,
@@ -148,10 +142,9 @@ static void dvic_get_timings(struct omap_dss_device *dssdev,
 static int dvic_check_timings(struct omap_dss_device *dssdev,
 			      struct videomode *vm)
 {
-	struct panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = dssdev->src;
 
-	return in->ops->check_timings(in, vm);
+	return src->ops->check_timings(src, vm);
 }
 
 static int dvic_ddc_read(struct i2c_adapter *adapter,
diff --git a/drivers/gpu/drm/omapdrm/displays/connector-hdmi.c b/drivers/gpu/drm/omapdrm/displays/connector-hdmi.c
index 665af9932317..4acb53788862 100644
--- a/drivers/gpu/drm/omapdrm/displays/connector-hdmi.c
+++ b/drivers/gpu/drm/omapdrm/displays/connector-hdmi.c
@@ -37,7 +37,6 @@ static const struct videomode hdmic_default_vm = {
 
 struct panel_drv_data {
 	struct omap_dss_device dssdev;
-	struct omap_dss_device *in;
 	void (*hpd_cb)(void *cb_data, enum drm_connector_status status);
 	void *hpd_cb_data;
 	bool hpd_enabled;
@@ -55,40 +54,37 @@ struct panel_drv_data {
 static int hdmic_connect(struct omap_dss_device *dssdev)
 {
 	struct panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in;
+	struct omap_dss_device *src;
 	int r;
 
-	in = omapdss_of_find_source_for_first_ep(ddata->dev->of_node);
-	if (IS_ERR(in)) {
+	src = omapdss_of_find_source_for_first_ep(ddata->dev->of_node);
+	if (IS_ERR(src)) {
 		dev_err(ddata->dev, "failed to find video source\n");
-		return PTR_ERR(in);
+		return PTR_ERR(src);
 	}
 
-	r = omapdss_device_connect(in, dssdev);
+	r = omapdss_device_connect(src, dssdev);
 	if (r) {
-		omap_dss_put_device(in);
+		omap_dss_put_device(src);
 		return r;
 	}
 
-	ddata->in = in;
 	return 0;
 }
 
 static void hdmic_disconnect(struct omap_dss_device *dssdev)
 {
-	struct panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = dssdev->src;
 
-	omapdss_device_disconnect(in, dssdev);
+	omapdss_device_disconnect(src, dssdev);
 
-	omap_dss_put_device(in);
-	ddata->in = NULL;
+	omap_dss_put_device(src);
 }
 
 static int hdmic_enable(struct omap_dss_device *dssdev)
 {
 	struct panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = dssdev->src;
 	int r;
 
 	dev_dbg(ddata->dev, "enable\n");
@@ -99,9 +95,9 @@ static int hdmic_enable(struct omap_dss_device *dssdev)
 	if (omapdss_device_is_enabled(dssdev))
 		return 0;
 
-	in->ops->set_timings(in, &ddata->vm);
+	src->ops->set_timings(src, &ddata->vm);
 
-	r = in->ops->enable(in);
+	r = src->ops->enable(src);
 	if (r)
 		return r;
 
@@ -113,14 +109,14 @@ static int hdmic_enable(struct omap_dss_device *dssdev)
 static void hdmic_disable(struct omap_dss_device *dssdev)
 {
 	struct panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = dssdev->src;
 
 	dev_dbg(ddata->dev, "disable\n");
 
 	if (!omapdss_device_is_enabled(dssdev))
 		return;
 
-	in->ops->disable(in);
+	src->ops->disable(src);
 
 	dssdev->state = OMAP_DSS_DISPLAY_DISABLED;
 }
@@ -129,11 +125,11 @@ static void hdmic_set_timings(struct omap_dss_device *dssdev,
 			      struct videomode *vm)
 {
 	struct panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = dssdev->src;
 
 	ddata->vm = *vm;
 
-	in->ops->set_timings(in, vm);
+	src->ops->set_timings(src, vm);
 }
 
 static void hdmic_get_timings(struct omap_dss_device *dssdev,
@@ -147,33 +143,31 @@ static void hdmic_get_timings(struct omap_dss_device *dssdev,
 static int hdmic_check_timings(struct omap_dss_device *dssdev,
 			       struct videomode *vm)
 {
-	struct panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = dssdev->src;
 
-	return in->ops->check_timings(in, vm);
+	return src->ops->check_timings(src, vm);
 }
 
 static int hdmic_read_edid(struct omap_dss_device *dssdev,
 		u8 *edid, int len)
 {
-	struct panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = dssdev->src;
 
-	return in->ops->hdmi.read_edid(in, edid, len);
+	return src->ops->hdmi.read_edid(src, edid, len);
 }
 
 static bool hdmic_detect(struct omap_dss_device *dssdev)
 {
 	struct panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = dssdev->src;
 	bool connected;
 
 	if (gpio_is_valid(ddata->hpd_gpio))
 		connected = gpio_get_value_cansleep(ddata->hpd_gpio);
 	else
-		connected = in->ops->hdmi.detect(in);
-	if (!connected && in->ops->hdmi.lost_hotplug)
-		in->ops->hdmi.lost_hotplug(in);
+		connected = src->ops->hdmi.detect(src);
+	if (!connected && src->ops->hdmi.lost_hotplug)
+		src->ops->hdmi.lost_hotplug(src);
 	return connected;
 }
 
@@ -183,7 +177,7 @@ static int hdmic_register_hpd_cb(struct omap_dss_device *dssdev,
 				 void *cb_data)
 {
 	struct panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = dssdev->src;
 
 	if (gpio_is_valid(ddata->hpd_gpio)) {
 		mutex_lock(&ddata->hpd_lock);
@@ -191,8 +185,8 @@ static int hdmic_register_hpd_cb(struct omap_dss_device *dssdev,
 		ddata->hpd_cb_data = cb_data;
 		mutex_unlock(&ddata->hpd_lock);
 		return 0;
-	} else if (in->ops->hdmi.register_hpd_cb) {
-		return in->ops->hdmi.register_hpd_cb(in, cb, cb_data);
+	} else if (src->ops->hdmi.register_hpd_cb) {
+		return src->ops->hdmi.register_hpd_cb(src, cb, cb_data);
 	}
 
 	return -ENOTSUPP;
@@ -201,61 +195,59 @@ static int hdmic_register_hpd_cb(struct omap_dss_device *dssdev,
 static void hdmic_unregister_hpd_cb(struct omap_dss_device *dssdev)
 {
 	struct panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = dssdev->src;
 
 	if (gpio_is_valid(ddata->hpd_gpio)) {
 		mutex_lock(&ddata->hpd_lock);
 		ddata->hpd_cb = NULL;
 		ddata->hpd_cb_data = NULL;
 		mutex_unlock(&ddata->hpd_lock);
-	} else if (in->ops->hdmi.unregister_hpd_cb) {
-		in->ops->hdmi.unregister_hpd_cb(in);
+	} else if (src->ops->hdmi.unregister_hpd_cb) {
+		src->ops->hdmi.unregister_hpd_cb(src);
 	}
 }
 
 static void hdmic_enable_hpd(struct omap_dss_device *dssdev)
 {
 	struct panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = dssdev->src;
 
 	if (gpio_is_valid(ddata->hpd_gpio)) {
 		mutex_lock(&ddata->hpd_lock);
 		ddata->hpd_enabled = true;
 		mutex_unlock(&ddata->hpd_lock);
-	} else if (in->ops->hdmi.enable_hpd) {
-		in->ops->hdmi.enable_hpd(in);
+	} else if (src->ops->hdmi.enable_hpd) {
+		src->ops->hdmi.enable_hpd(src);
 	}
 }
 
 static void hdmic_disable_hpd(struct omap_dss_device *dssdev)
 {
 	struct panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = dssdev->src;
 
 	if (gpio_is_valid(ddata->hpd_gpio)) {
 		mutex_lock(&ddata->hpd_lock);
 		ddata->hpd_enabled = false;
 		mutex_unlock(&ddata->hpd_lock);
-	} else if (in->ops->hdmi.disable_hpd) {
-		in->ops->hdmi.disable_hpd(in);
+	} else if (src->ops->hdmi.disable_hpd) {
+		src->ops->hdmi.disable_hpd(src);
 	}
 }
 
 static int hdmic_set_hdmi_mode(struct omap_dss_device *dssdev, bool hdmi_mode)
 {
-	struct panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = dssdev->src;
 
-	return in->ops->hdmi.set_hdmi_mode(in, hdmi_mode);
+	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 panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = dssdev->src;
 
-	return in->ops->hdmi.set_infoframe(in, avi);
+	return src->ops->hdmi.set_infoframe(src, avi);
 }
 
 static const struct omap_dss_driver hdmic_driver = {
diff --git a/drivers/gpu/drm/omapdrm/displays/encoder-opa362.c b/drivers/gpu/drm/omapdrm/displays/encoder-opa362.c
index 6baca0dc2b62..c9c744e0c92e 100644
--- a/drivers/gpu/drm/omapdrm/displays/encoder-opa362.c
+++ b/drivers/gpu/drm/omapdrm/displays/encoder-opa362.c
@@ -23,7 +23,6 @@
 
 struct panel_drv_data {
 	struct omap_dss_device dssdev;
-	struct omap_dss_device *in;
 
 	struct gpio_desc *enable_gpio;
 
@@ -35,23 +34,21 @@ struct panel_drv_data {
 static int opa362_connect(struct omap_dss_device *dssdev,
 		struct omap_dss_device *dst)
 {
-	struct panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in;
+	struct omap_dss_device *src;
 	int r;
 
-	in = omapdss_of_find_source_for_first_ep(dssdev->dev->of_node);
-	if (IS_ERR(in)) {
+	src = omapdss_of_find_source_for_first_ep(dssdev->dev->of_node);
+	if (IS_ERR(src)) {
 		dev_err(dssdev->dev, "failed to find video source\n");
-		return PTR_ERR(in);
+		return PTR_ERR(src);
 	}
 
-	r = omapdss_device_connect(in, dssdev);
+	r = omapdss_device_connect(src, dssdev);
 	if (r) {
-		omap_dss_put_device(in);
+		omap_dss_put_device(src);
 		return r;
 	}
 
-	ddata->in = in;
 	return 0;
 }
 
@@ -59,18 +56,17 @@ static void opa362_disconnect(struct omap_dss_device *dssdev,
 		struct omap_dss_device *dst)
 {
 	struct panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = dssdev->src;
 
-	omapdss_device_disconnect(in, &ddata->dssdev);
+	omapdss_device_disconnect(src, &ddata->dssdev);
 
-	omap_dss_put_device(in);
-	ddata->in = NULL;
+	omap_dss_put_device(src);
 }
 
 static int opa362_enable(struct omap_dss_device *dssdev)
 {
 	struct panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = dssdev->src;
 	int r;
 
 	dev_dbg(dssdev->dev, "enable\n");
@@ -81,9 +77,9 @@ static int opa362_enable(struct omap_dss_device *dssdev)
 	if (omapdss_device_is_enabled(dssdev))
 		return 0;
 
-	in->ops->set_timings(in, &ddata->vm);
+	src->ops->set_timings(src, &ddata->vm);
 
-	r = in->ops->enable(in);
+	r = src->ops->enable(src);
 	if (r)
 		return r;
 
@@ -98,7 +94,7 @@ static int opa362_enable(struct omap_dss_device *dssdev)
 static void opa362_disable(struct omap_dss_device *dssdev)
 {
 	struct panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = dssdev->src;
 
 	dev_dbg(dssdev->dev, "disable\n");
 
@@ -108,7 +104,7 @@ static void opa362_disable(struct omap_dss_device *dssdev)
 	if (ddata->enable_gpio)
 		gpiod_set_value_cansleep(ddata->enable_gpio, 0);
 
-	in->ops->disable(in);
+	src->ops->disable(src);
 
 	dssdev->state = OMAP_DSS_DISPLAY_DISABLED;
 }
@@ -117,24 +113,23 @@ static void opa362_set_timings(struct omap_dss_device *dssdev,
 			       struct videomode *vm)
 {
 	struct panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = dssdev->src;
 
 	dev_dbg(dssdev->dev, "set_timings\n");
 
 	ddata->vm = *vm;
 
-	in->ops->set_timings(in, vm);
+	src->ops->set_timings(src, vm);
 }
 
 static int opa362_check_timings(struct omap_dss_device *dssdev,
 				struct videomode *vm)
 {
-	struct panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = dssdev->src;
 
 	dev_dbg(dssdev->dev, "check_timings\n");
 
-	return in->ops->check_timings(in, vm);
+	return src->ops->check_timings(src, vm);
 }
 
 static const struct omap_dss_device_ops opa362_ops = {
diff --git a/drivers/gpu/drm/omapdrm/displays/encoder-tfp410.c b/drivers/gpu/drm/omapdrm/displays/encoder-tfp410.c
index c1ae8bebf04d..f568e53a9104 100644
--- a/drivers/gpu/drm/omapdrm/displays/encoder-tfp410.c
+++ b/drivers/gpu/drm/omapdrm/displays/encoder-tfp410.c
@@ -19,7 +19,6 @@
 
 struct panel_drv_data {
 	struct omap_dss_device dssdev;
-	struct omap_dss_device *in;
 
 	int pd_gpio;
 
@@ -31,23 +30,21 @@ struct panel_drv_data {
 static int tfp410_connect(struct omap_dss_device *dssdev,
 		struct omap_dss_device *dst)
 {
-	struct panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in;
+	struct omap_dss_device *src;
 	int r;
 
-	in = omapdss_of_find_source_for_first_ep(dssdev->dev->of_node);
-	if (IS_ERR(in)) {
+	src = omapdss_of_find_source_for_first_ep(dssdev->dev->of_node);
+	if (IS_ERR(src)) {
 		dev_err(dssdev->dev, "failed to find video source\n");
-		return PTR_ERR(in);
+		return PTR_ERR(src);
 	}
 
-	r = omapdss_device_connect(in, dssdev);
+	r = omapdss_device_connect(src, dssdev);
 	if (r) {
-		omap_dss_put_device(in);
+		omap_dss_put_device(src);
 		return r;
 	}
 
-	ddata->in = in;
 	return 0;
 }
 
@@ -55,18 +52,17 @@ static void tfp410_disconnect(struct omap_dss_device *dssdev,
 		struct omap_dss_device *dst)
 {
 	struct panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = dssdev->src;
 
-	omapdss_device_disconnect(in, &ddata->dssdev);
+	omapdss_device_disconnect(src, &ddata->dssdev);
 
-	omap_dss_put_device(in);
-	ddata->in = NULL;
+	omap_dss_put_device(src);
 }
 
 static int tfp410_enable(struct omap_dss_device *dssdev)
 {
 	struct panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = dssdev->src;
 	int r;
 
 	if (!omapdss_device_is_connected(dssdev))
@@ -75,9 +71,9 @@ static int tfp410_enable(struct omap_dss_device *dssdev)
 	if (omapdss_device_is_enabled(dssdev))
 		return 0;
 
-	in->ops->set_timings(in, &ddata->vm);
+	src->ops->set_timings(src, &ddata->vm);
 
-	r = in->ops->enable(in);
+	r = src->ops->enable(src);
 	if (r)
 		return r;
 
@@ -92,7 +88,7 @@ static int tfp410_enable(struct omap_dss_device *dssdev)
 static void tfp410_disable(struct omap_dss_device *dssdev)
 {
 	struct panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = dssdev->src;
 
 	if (!omapdss_device_is_enabled(dssdev))
 		return;
@@ -100,7 +96,7 @@ static void tfp410_disable(struct omap_dss_device *dssdev)
 	if (gpio_is_valid(ddata->pd_gpio))
 		gpio_set_value_cansleep(ddata->pd_gpio, 0);
 
-	in->ops->disable(in);
+	src->ops->disable(src);
 
 	dssdev->state = OMAP_DSS_DISPLAY_DISABLED;
 }
@@ -115,24 +111,23 @@ static void tfp410_set_timings(struct omap_dss_device *dssdev,
 			       struct videomode *vm)
 {
 	struct panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = dssdev->src;
 
 	tfp410_fix_timings(vm);
 
 	ddata->vm = *vm;
 
-	in->ops->set_timings(in, vm);
+	src->ops->set_timings(src, vm);
 }
 
 static int tfp410_check_timings(struct omap_dss_device *dssdev,
 				struct videomode *vm)
 {
-	struct panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = dssdev->src;
 
 	tfp410_fix_timings(vm);
 
-	return in->ops->check_timings(in, vm);
+	return src->ops->check_timings(src, vm);
 }
 
 static const struct omap_dss_device_ops tfp410_ops = {
diff --git a/drivers/gpu/drm/omapdrm/displays/encoder-tpd12s015.c b/drivers/gpu/drm/omapdrm/displays/encoder-tpd12s015.c
index 8aa338d01bf7..7bbe794e9d21 100644
--- a/drivers/gpu/drm/omapdrm/displays/encoder-tpd12s015.c
+++ b/drivers/gpu/drm/omapdrm/displays/encoder-tpd12s015.c
@@ -21,7 +21,6 @@
 
 struct panel_drv_data {
 	struct omap_dss_device dssdev;
-	struct omap_dss_device *in;
 	void (*hpd_cb)(void *cb_data, enum drm_connector_status status);
 	void *hpd_cb_data;
 	bool hpd_enabled;
@@ -40,18 +39,18 @@ static int tpd_connect(struct omap_dss_device *dssdev,
 		struct omap_dss_device *dst)
 {
 	struct panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in;
+	struct omap_dss_device *src;
 	int r;
 
-	in = omapdss_of_find_source_for_first_ep(dssdev->dev->of_node);
-	if (IS_ERR(in)) {
+	src = omapdss_of_find_source_for_first_ep(dssdev->dev->of_node);
+	if (IS_ERR(src)) {
 		dev_err(dssdev->dev, "failed to find video source\n");
-		return PTR_ERR(in);
+		return PTR_ERR(src);
 	}
 
-	r = omapdss_device_connect(in, dssdev);
+	r = omapdss_device_connect(src, dssdev);
 	if (r) {
-		omap_dss_put_device(in);
+		omap_dss_put_device(src);
 		return r;
 	}
 
@@ -61,7 +60,6 @@ static int tpd_connect(struct omap_dss_device *dssdev,
 	/* DC-DC converter needs at max 300us to get to 90% of 5V */
 	udelay(300);
 
-	ddata->in = in;
 	return 0;
 }
 
@@ -69,29 +67,28 @@ static void tpd_disconnect(struct omap_dss_device *dssdev,
 		struct omap_dss_device *dst)
 {
 	struct panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = dssdev->src;
 
 	gpiod_set_value_cansleep(ddata->ct_cp_hpd_gpio, 0);
 	gpiod_set_value_cansleep(ddata->ls_oe_gpio, 0);
 
-	omapdss_device_disconnect(in, &ddata->dssdev);
+	omapdss_device_disconnect(src, &ddata->dssdev);
 
-	omap_dss_put_device(in);
-	ddata->in = NULL;
+	omap_dss_put_device(src);
 }
 
 static int tpd_enable(struct omap_dss_device *dssdev)
 {
 	struct panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = dssdev->src;
 	int r;
 
 	if (dssdev->state == OMAP_DSS_DISPLAY_ACTIVE)
 		return 0;
 
-	in->ops->set_timings(in, &ddata->vm);
+	src->ops->set_timings(src, &ddata->vm);
 
-	r = in->ops->enable(in);
+	r = src->ops->enable(src);
 	if (r)
 		return r;
 
@@ -102,13 +99,12 @@ static int tpd_enable(struct omap_dss_device *dssdev)
 
 static void tpd_disable(struct omap_dss_device *dssdev)
 {
-	struct panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = dssdev->src;
 
 	if (dssdev->state != OMAP_DSS_DISPLAY_ACTIVE)
 		return;
 
-	in->ops->disable(in);
+	src->ops->disable(src);
 
 	dssdev->state = OMAP_DSS_DISPLAY_DISABLED;
 }
@@ -117,45 +113,41 @@ static void tpd_set_timings(struct omap_dss_device *dssdev,
 			    struct videomode *vm)
 {
 	struct panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = dssdev->src;
 
 	ddata->vm = *vm;
 
-	in->ops->set_timings(in, vm);
+	src->ops->set_timings(src, vm);
 }
 
 static int tpd_check_timings(struct omap_dss_device *dssdev,
 			     struct videomode *vm)
 {
-	struct panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in = ddata->in;
-	int r;
-
-	r = in->ops->check_timings(in, vm);
+	struct omap_dss_device *src = dssdev->src;
 
-	return r;
+	return src->ops->check_timings(src, vm);
 }
 
 static int tpd_read_edid(struct omap_dss_device *dssdev,
 		u8 *edid, int len)
 {
 	struct panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = dssdev->src;
 
 	if (!gpiod_get_value_cansleep(ddata->hpd_gpio))
 		return -ENODEV;
 
-	return in->ops->hdmi.read_edid(in, edid, len);
+	return src->ops->hdmi.read_edid(src, edid, len);
 }
 
 static bool tpd_detect(struct omap_dss_device *dssdev)
 {
 	struct panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = dssdev->src;
 	bool connected = gpiod_get_value_cansleep(ddata->hpd_gpio);
 
-	if (!connected && in->ops->hdmi.lost_hotplug)
-		in->ops->hdmi.lost_hotplug(in);
+	if (!connected && src->ops->hdmi.lost_hotplug)
+		src->ops->hdmi.lost_hotplug(src);
 	return connected;
 }
 
@@ -205,19 +197,17 @@ static void tpd_disable_hpd(struct omap_dss_device *dssdev)
 static int tpd_set_infoframe(struct omap_dss_device *dssdev,
 		const struct hdmi_avi_infoframe *avi)
 {
-	struct panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = dssdev->src;
 
-	return in->ops->hdmi.set_infoframe(in, avi);
+	return src->ops->hdmi.set_infoframe(src, avi);
 }
 
 static int tpd_set_hdmi_mode(struct omap_dss_device *dssdev,
 		bool hdmi_mode)
 {
-	struct panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = dssdev->src;
 
-	return in->ops->hdmi.set_hdmi_mode(in, hdmi_mode);
+	return src->ops->hdmi.set_hdmi_mode(src, hdmi_mode);
 }
 
 static const struct omap_dss_device_ops tpd_ops = {
@@ -262,7 +252,7 @@ static irqreturn_t tpd_hpd_isr(int irq, void *data)
 
 static int tpd_probe(struct platform_device *pdev)
 {
-	struct omap_dss_device *in, *dssdev;
+	struct omap_dss_device *dssdev;
 	struct panel_drv_data *ddata;
 	int r;
 	struct gpio_desc *gpio;
@@ -311,8 +301,6 @@ static int tpd_probe(struct platform_device *pdev)
 	dssdev->owner = THIS_MODULE;
 	dssdev->port_num = 1;
 
-	in = ddata->in;
-
 	r = omapdss_register_output(dssdev);
 	if (r) {
 		dev_err(&pdev->dev, "Failed to register output\n");
diff --git a/drivers/gpu/drm/omapdrm/displays/panel-dpi.c b/drivers/gpu/drm/omapdrm/displays/panel-dpi.c
index 5d704cf0809f..32af5b11b448 100644
--- a/drivers/gpu/drm/omapdrm/displays/panel-dpi.c
+++ b/drivers/gpu/drm/omapdrm/displays/panel-dpi.c
@@ -23,7 +23,6 @@
 
 struct panel_drv_data {
 	struct omap_dss_device dssdev;
-	struct omap_dss_device *in;
 
 	struct videomode vm;
 
@@ -37,41 +36,37 @@ struct panel_drv_data {
 
 static int panel_dpi_connect(struct omap_dss_device *dssdev)
 {
-	struct panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in;
+	struct omap_dss_device *src;
 	int r;
 
-	in = omapdss_of_find_source_for_first_ep(dssdev->dev->of_node);
-	if (IS_ERR(in)) {
+	src = omapdss_of_find_source_for_first_ep(dssdev->dev->of_node);
+	if (IS_ERR(src)) {
 		dev_err(dssdev->dev, "failed to find video source\n");
-		return PTR_ERR(in);
+		return PTR_ERR(src);
 	}
 
-	r = omapdss_device_connect(in, dssdev);
+	r = omapdss_device_connect(src, dssdev);
 	if (r) {
-		omap_dss_put_device(in);
+		omap_dss_put_device(src);
 		return r;
 	}
 
-	ddata->in = in;
 	return 0;
 }
 
 static void panel_dpi_disconnect(struct omap_dss_device *dssdev)
 {
-	struct panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = dssdev->src;
 
-	omapdss_device_disconnect(in, dssdev);
+	omapdss_device_disconnect(src, dssdev);
 
-	omap_dss_put_device(in);
-	ddata->in = NULL;
+	omap_dss_put_device(src);
 }
 
 static int panel_dpi_enable(struct omap_dss_device *dssdev)
 {
 	struct panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = dssdev->src;
 	int r;
 
 	if (!omapdss_device_is_connected(dssdev))
@@ -80,15 +75,15 @@ static int panel_dpi_enable(struct omap_dss_device *dssdev)
 	if (omapdss_device_is_enabled(dssdev))
 		return 0;
 
-	in->ops->set_timings(in, &ddata->vm);
+	src->ops->set_timings(src, &ddata->vm);
 
-	r = in->ops->enable(in);
+	r = src->ops->enable(src);
 	if (r)
 		return r;
 
 	r = regulator_enable(ddata->vcc_supply);
 	if (r) {
-		in->ops->disable(in);
+		src->ops->disable(src);
 		return r;
 	}
 
@@ -103,7 +98,7 @@ static int panel_dpi_enable(struct omap_dss_device *dssdev)
 static void panel_dpi_disable(struct omap_dss_device *dssdev)
 {
 	struct panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = dssdev->src;
 
 	if (!omapdss_device_is_enabled(dssdev))
 		return;
@@ -113,7 +108,7 @@ static void panel_dpi_disable(struct omap_dss_device *dssdev)
 	gpiod_set_value_cansleep(ddata->enable_gpio, 0);
 	regulator_disable(ddata->vcc_supply);
 
-	in->ops->disable(in);
+	src->ops->disable(src);
 
 	dssdev->state = OMAP_DSS_DISPLAY_DISABLED;
 }
@@ -122,11 +117,11 @@ static void panel_dpi_set_timings(struct omap_dss_device *dssdev,
 				  struct videomode *vm)
 {
 	struct panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = dssdev->src;
 
 	ddata->vm = *vm;
 
-	in->ops->set_timings(in, vm);
+	src->ops->set_timings(src, vm);
 }
 
 static void panel_dpi_get_timings(struct omap_dss_device *dssdev,
@@ -140,10 +135,9 @@ static void panel_dpi_get_timings(struct omap_dss_device *dssdev,
 static int panel_dpi_check_timings(struct omap_dss_device *dssdev,
 				   struct videomode *vm)
 {
-	struct panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = dssdev->src;
 
-	return in->ops->check_timings(in, vm);
+	return src->ops->check_timings(src, vm);
 }
 
 static const struct omap_dss_driver panel_dpi_ops = {
diff --git a/drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c b/drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c
index be6c0c811e66..353510af58e7 100644
--- a/drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c
+++ b/drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c
@@ -41,7 +41,6 @@
 
 struct panel_drv_data {
 	struct omap_dss_device dssdev;
-	struct omap_dss_device *in;
 
 	struct videomode vm;
 
@@ -142,11 +141,11 @@ static void hw_guard_wait(struct panel_drv_data *ddata)
 
 static int dsicm_dcs_read_1(struct panel_drv_data *ddata, u8 dcs_cmd, u8 *data)
 {
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = ddata->dssdev.src;
 	int r;
 	u8 buf[1];
 
-	r = in->ops->dsi.dcs_read(in, ddata->channel, dcs_cmd, buf, 1);
+	r = src->ops->dsi.dcs_read(src, ddata->channel, dcs_cmd, buf, 1);
 
 	if (r < 0)
 		return r;
@@ -158,29 +157,30 @@ static int dsicm_dcs_read_1(struct panel_drv_data *ddata, u8 dcs_cmd, u8 *data)
 
 static int dsicm_dcs_write_0(struct panel_drv_data *ddata, u8 dcs_cmd)
 {
-	struct omap_dss_device *in = ddata->in;
-	return in->ops->dsi.dcs_write(in, ddata->channel, &dcs_cmd, 1);
+	struct omap_dss_device *src = ddata->dssdev.src;
+
+	return src->ops->dsi.dcs_write(src, ddata->channel, &dcs_cmd, 1);
 }
 
 static int dsicm_dcs_write_1(struct panel_drv_data *ddata, u8 dcs_cmd, u8 param)
 {
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = ddata->dssdev.src;
 	u8 buf[2] = { dcs_cmd, param };
 
-	return in->ops->dsi.dcs_write(in, ddata->channel, buf, 2);
+	return src->ops->dsi.dcs_write(src, ddata->channel, buf, 2);
 }
 
 static int dsicm_sleep_in(struct panel_drv_data *ddata)
 
 {
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = ddata->dssdev.src;
 	u8 cmd;
 	int r;
 
 	hw_guard_wait(ddata);
 
 	cmd = MIPI_DCS_ENTER_SLEEP_MODE;
-	r = in->ops->dsi.dcs_write_nosync(in, ddata->channel, &cmd, 1);
+	r = src->ops->dsi.dcs_write_nosync(src, ddata->channel, &cmd, 1);
 	if (r)
 		return r;
 
@@ -228,7 +228,7 @@ static int dsicm_get_id(struct panel_drv_data *ddata, u8 *id1, u8 *id2, u8 *id3)
 static int dsicm_set_update_window(struct panel_drv_data *ddata,
 		u16 x, u16 y, u16 w, u16 h)
 {
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = ddata->dssdev.src;
 	int r;
 	u16 x1 = x;
 	u16 x2 = x + w - 1;
@@ -242,7 +242,7 @@ static int dsicm_set_update_window(struct panel_drv_data *ddata,
 	buf[3] = (x2 >> 8) & 0xff;
 	buf[4] = (x2 >> 0) & 0xff;
 
-	r = in->ops->dsi.dcs_write_nosync(in, ddata->channel, buf, sizeof(buf));
+	r = src->ops->dsi.dcs_write_nosync(src, ddata->channel, buf, sizeof(buf));
 	if (r)
 		return r;
 
@@ -252,11 +252,11 @@ static int dsicm_set_update_window(struct panel_drv_data *ddata,
 	buf[3] = (y2 >> 8) & 0xff;
 	buf[4] = (y2 >> 0) & 0xff;
 
-	r = in->ops->dsi.dcs_write_nosync(in, ddata->channel, buf, sizeof(buf));
+	r = src->ops->dsi.dcs_write_nosync(src, ddata->channel, buf, sizeof(buf));
 	if (r)
 		return r;
 
-	in->ops->dsi.bta_sync(in, ddata->channel);
+	src->ops->dsi.bta_sync(src, ddata->channel);
 
 	return r;
 }
@@ -275,7 +275,7 @@ static void dsicm_cancel_ulps_work(struct panel_drv_data *ddata)
 
 static int dsicm_enter_ulps(struct panel_drv_data *ddata)
 {
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = ddata->dssdev.src;
 	int r;
 
 	if (ddata->ulps_enabled)
@@ -290,7 +290,7 @@ static int dsicm_enter_ulps(struct panel_drv_data *ddata)
 	if (ddata->ext_te_gpio)
 		disable_irq(gpiod_to_irq(ddata->ext_te_gpio));
 
-	in->ops->dsi.disable(in, false, true);
+	src->ops->dsi.disable(src, false, true);
 
 	ddata->ulps_enabled = true;
 
@@ -309,19 +309,19 @@ static int dsicm_enter_ulps(struct panel_drv_data *ddata)
 
 static int dsicm_exit_ulps(struct panel_drv_data *ddata)
 {
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = ddata->dssdev.src;
 	int r;
 
 	if (!ddata->ulps_enabled)
 		return 0;
 
-	r = in->ops->enable(in);
+	r = src->ops->enable(src);
 	if (r) {
 		dev_err(&ddata->pdev->dev, "failed to enable DSI\n");
 		goto err1;
 	}
 
-	in->ops->dsi.enable_hs(in, ddata->channel, true);
+	src->ops->dsi.enable_hs(src, ddata->channel, true);
 
 	r = _dsicm_enable_te(ddata, true);
 	if (r) {
@@ -366,7 +366,7 @@ static int dsicm_wake_up(struct panel_drv_data *ddata)
 static int dsicm_bl_update_status(struct backlight_device *dev)
 {
 	struct panel_drv_data *ddata = dev_get_drvdata(&dev->dev);
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = ddata->dssdev.src;
 	int r = 0;
 	int level;
 
@@ -381,13 +381,13 @@ static int dsicm_bl_update_status(struct backlight_device *dev)
 	mutex_lock(&ddata->lock);
 
 	if (ddata->enabled) {
-		in->ops->dsi.bus_lock(in);
+		src->ops->dsi.bus_lock(src);
 
 		r = dsicm_wake_up(ddata);
 		if (!r)
 			r = dsicm_dcs_write_1(ddata, DCS_BRIGHTNESS, level);
 
-		in->ops->dsi.bus_unlock(in);
+		src->ops->dsi.bus_unlock(src);
 	}
 
 	mutex_unlock(&ddata->lock);
@@ -414,21 +414,21 @@ static ssize_t dsicm_num_errors_show(struct device *dev,
 {
 	struct platform_device *pdev = to_platform_device(dev);
 	struct panel_drv_data *ddata = platform_get_drvdata(pdev);
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = ddata->dssdev.src;
 	u8 errors = 0;
 	int r;
 
 	mutex_lock(&ddata->lock);
 
 	if (ddata->enabled) {
-		in->ops->dsi.bus_lock(in);
+		src->ops->dsi.bus_lock(src);
 
 		r = dsicm_wake_up(ddata);
 		if (!r)
 			r = dsicm_dcs_read_1(ddata, DCS_READ_NUM_ERRORS,
 					&errors);
 
-		in->ops->dsi.bus_unlock(in);
+		src->ops->dsi.bus_unlock(src);
 	} else {
 		r = -ENODEV;
 	}
@@ -446,20 +446,20 @@ static ssize_t dsicm_hw_revision_show(struct device *dev,
 {
 	struct platform_device *pdev = to_platform_device(dev);
 	struct panel_drv_data *ddata = platform_get_drvdata(pdev);
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = ddata->dssdev.src;
 	u8 id1, id2, id3;
 	int r;
 
 	mutex_lock(&ddata->lock);
 
 	if (ddata->enabled) {
-		in->ops->dsi.bus_lock(in);
+		src->ops->dsi.bus_lock(src);
 
 		r = dsicm_wake_up(ddata);
 		if (!r)
 			r = dsicm_get_id(ddata, &id1, &id2, &id3);
 
-		in->ops->dsi.bus_unlock(in);
+		src->ops->dsi.bus_unlock(src);
 	} else {
 		r = -ENODEV;
 	}
@@ -478,7 +478,7 @@ static ssize_t dsicm_store_ulps(struct device *dev,
 {
 	struct platform_device *pdev = to_platform_device(dev);
 	struct panel_drv_data *ddata = platform_get_drvdata(pdev);
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = ddata->dssdev.src;
 	unsigned long t;
 	int r;
 
@@ -489,14 +489,14 @@ static ssize_t dsicm_store_ulps(struct device *dev,
 	mutex_lock(&ddata->lock);
 
 	if (ddata->enabled) {
-		in->ops->dsi.bus_lock(in);
+		src->ops->dsi.bus_lock(src);
 
 		if (t)
 			r = dsicm_enter_ulps(ddata);
 		else
 			r = dsicm_wake_up(ddata);
 
-		in->ops->dsi.bus_unlock(in);
+		src->ops->dsi.bus_unlock(src);
 	}
 
 	mutex_unlock(&ddata->lock);
@@ -528,7 +528,7 @@ static ssize_t dsicm_store_ulps_timeout(struct device *dev,
 {
 	struct platform_device *pdev = to_platform_device(dev);
 	struct panel_drv_data *ddata = platform_get_drvdata(pdev);
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = ddata->dssdev.src;
 	unsigned long t;
 	int r;
 
@@ -541,9 +541,9 @@ static ssize_t dsicm_store_ulps_timeout(struct device *dev,
 
 	if (ddata->enabled) {
 		/* dsicm_wake_up will restart the timer */
-		in->ops->dsi.bus_lock(in);
+		src->ops->dsi.bus_lock(src);
 		r = dsicm_wake_up(ddata);
-		in->ops->dsi.bus_unlock(in);
+		src->ops->dsi.bus_unlock(src);
 	}
 
 	mutex_unlock(&ddata->lock);
@@ -603,7 +603,7 @@ static void dsicm_hw_reset(struct panel_drv_data *ddata)
 
 static int dsicm_power_on(struct panel_drv_data *ddata)
 {
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = ddata->dssdev.src;
 	u8 id1, id2, id3;
 	int r;
 	struct omap_dss_dsi_config dsi_config = {
@@ -635,7 +635,7 @@ static int dsicm_power_on(struct panel_drv_data *ddata)
 	}
 
 	if (ddata->pin_config.num_pins > 0) {
-		r = in->ops->dsi.configure_pins(in, &ddata->pin_config);
+		r = src->ops->dsi.configure_pins(src, &ddata->pin_config);
 		if (r) {
 			dev_err(&ddata->pdev->dev,
 				"failed to configure DSI pins\n");
@@ -643,13 +643,13 @@ static int dsicm_power_on(struct panel_drv_data *ddata)
 		}
 	}
 
-	r = in->ops->dsi.set_config(in, &dsi_config);
+	r = src->ops->dsi.set_config(src, &dsi_config);
 	if (r) {
 		dev_err(&ddata->pdev->dev, "failed to configure DSI\n");
 		goto err_vddi;
 	}
 
-	r = in->ops->enable(in);
+	r = src->ops->enable(src);
 	if (r) {
 		dev_err(&ddata->pdev->dev, "failed to enable DSI\n");
 		goto err_vddi;
@@ -657,7 +657,7 @@ static int dsicm_power_on(struct panel_drv_data *ddata)
 
 	dsicm_hw_reset(ddata);
 
-	in->ops->dsi.enable_hs(in, ddata->channel, false);
+	src->ops->dsi.enable_hs(src, ddata->channel, false);
 
 	r = dsicm_sleep_out(ddata);
 	if (r)
@@ -689,7 +689,7 @@ static int dsicm_power_on(struct panel_drv_data *ddata)
 	if (r)
 		goto err;
 
-	r = in->ops->dsi.enable_video_output(in, ddata->channel);
+	r = src->ops->dsi.enable_video_output(src, ddata->channel);
 	if (r)
 		goto err;
 
@@ -701,7 +701,7 @@ static int dsicm_power_on(struct panel_drv_data *ddata)
 		ddata->intro_printed = true;
 	}
 
-	in->ops->dsi.enable_hs(in, ddata->channel, true);
+	src->ops->dsi.enable_hs(src, ddata->channel, true);
 
 	return 0;
 err:
@@ -709,7 +709,7 @@ static int dsicm_power_on(struct panel_drv_data *ddata)
 
 	dsicm_hw_reset(ddata);
 
-	in->ops->dsi.disable(in, true, false);
+	src->ops->dsi.disable(src, true, false);
 err_vddi:
 	if (ddata->vddi)
 		regulator_disable(ddata->vddi);
@@ -722,10 +722,10 @@ static int dsicm_power_on(struct panel_drv_data *ddata)
 
 static void dsicm_power_off(struct panel_drv_data *ddata)
 {
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = ddata->dssdev.src;
 	int r;
 
-	in->ops->dsi.disable_video_output(in, ddata->channel);
+	src->ops->dsi.disable_video_output(src, ddata->channel);
 
 	r = dsicm_dcs_write_0(ddata, MIPI_DCS_SET_DISPLAY_OFF);
 	if (!r)
@@ -737,7 +737,7 @@ static void dsicm_power_off(struct panel_drv_data *ddata)
 		dsicm_hw_reset(ddata);
 	}
 
-	in->ops->dsi.disable(in, true, false);
+	src->ops->dsi.disable(src, true, false);
 
 	if (ddata->vddi)
 		regulator_disable(ddata->vddi);
@@ -760,61 +760,59 @@ static int dsicm_connect(struct omap_dss_device *dssdev)
 {
 	struct panel_drv_data *ddata = to_panel_data(dssdev);
 	struct device *dev = &ddata->pdev->dev;
-	struct omap_dss_device *in;
+	struct omap_dss_device *src;
 	int r;
 
-	in = omapdss_of_find_source_for_first_ep(dssdev->dev->of_node);
-	if (IS_ERR(in)) {
+	src = omapdss_of_find_source_for_first_ep(dssdev->dev->of_node);
+	if (IS_ERR(src)) {
 		dev_err(dssdev->dev, "failed to find video source\n");
-		return PTR_ERR(in);
+		return PTR_ERR(src);
 	}
 
-	r = omapdss_device_connect(in, dssdev);
+	r = omapdss_device_connect(src, dssdev);
 	if (r) {
 		dev_err(dev, "Failed to connect to video source\n");
 		goto err_connect;
 	}
 
-	r = in->ops->dsi.request_vc(in, &ddata->channel);
+	r = src->ops->dsi.request_vc(src, &ddata->channel);
 	if (r) {
 		dev_err(dev, "failed to get virtual channel\n");
 		goto err_req_vc;
 	}
 
-	r = in->ops->dsi.set_vc_id(in, ddata->channel, TCH);
+	r = src->ops->dsi.set_vc_id(src, ddata->channel, TCH);
 	if (r) {
 		dev_err(dev, "failed to set VC_ID\n");
 		goto err_vc_id;
 	}
 
-	ddata->in = in;
 	return 0;
 
 err_vc_id:
-	in->ops->dsi.release_vc(in, ddata->channel);
+	src->ops->dsi.release_vc(src, ddata->channel);
 err_req_vc:
-	omapdss_device_disconnect(in, dssdev);
+	omapdss_device_disconnect(src, dssdev);
 err_connect:
-	omap_dss_put_device(in);
+	omap_dss_put_device(src);
 	return r;
 }
 
 static void dsicm_disconnect(struct omap_dss_device *dssdev)
 {
 	struct panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = dssdev->src;
 
-	in->ops->dsi.release_vc(in, ddata->channel);
-	omapdss_device_disconnect(in, dssdev);
+	src->ops->dsi.release_vc(src, ddata->channel);
+	omapdss_device_disconnect(src, dssdev);
 
-	omap_dss_put_device(in);
-	ddata->in = NULL;
+	omap_dss_put_device(src);
 }
 
 static int dsicm_enable(struct omap_dss_device *dssdev)
 {
 	struct panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = dssdev->src;
 	int r;
 
 	dev_dbg(&ddata->pdev->dev, "enable\n");
@@ -831,11 +829,11 @@ static int dsicm_enable(struct omap_dss_device *dssdev)
 		goto err;
 	}
 
-	in->ops->dsi.bus_lock(in);
+	src->ops->dsi.bus_lock(src);
 
 	r = dsicm_power_on(ddata);
 
-	in->ops->dsi.bus_unlock(in);
+	src->ops->dsi.bus_unlock(src);
 
 	if (r)
 		goto err;
@@ -856,7 +854,7 @@ static int dsicm_enable(struct omap_dss_device *dssdev)
 static void dsicm_disable(struct omap_dss_device *dssdev)
 {
 	struct panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = dssdev->src;
 	int r;
 
 	dev_dbg(&ddata->pdev->dev, "disable\n");
@@ -867,7 +865,7 @@ static void dsicm_disable(struct omap_dss_device *dssdev)
 
 	dsicm_cancel_ulps_work(ddata);
 
-	in->ops->dsi.bus_lock(in);
+	src->ops->dsi.bus_lock(src);
 
 	if (omapdss_device_is_enabled(dssdev)) {
 		r = dsicm_wake_up(ddata);
@@ -875,7 +873,7 @@ static void dsicm_disable(struct omap_dss_device *dssdev)
 			dsicm_power_off(ddata);
 	}
 
-	in->ops->dsi.bus_unlock(in);
+	src->ops->dsi.bus_unlock(src);
 
 	dssdev->state = OMAP_DSS_DISPLAY_DISABLED;
 
@@ -885,16 +883,16 @@ static void dsicm_disable(struct omap_dss_device *dssdev)
 static void dsicm_framedone_cb(int err, void *data)
 {
 	struct panel_drv_data *ddata = data;
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = ddata->dssdev.src;
 
 	dev_dbg(&ddata->pdev->dev, "framedone, err %d\n", err);
-	in->ops->dsi.bus_unlock(ddata->in);
+	src->ops->dsi.bus_unlock(src);
 }
 
 static irqreturn_t dsicm_te_isr(int irq, void *data)
 {
 	struct panel_drv_data *ddata = data;
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = ddata->dssdev.src;
 	int old;
 	int r;
 
@@ -903,7 +901,7 @@ static irqreturn_t dsicm_te_isr(int irq, void *data)
 	if (old) {
 		cancel_delayed_work(&ddata->te_timeout_work);
 
-		r = in->ops->dsi.update(in, ddata->channel, dsicm_framedone_cb,
+		r = src->ops->dsi.update(src, ddata->channel, dsicm_framedone_cb,
 				ddata);
 		if (r)
 			goto err;
@@ -912,7 +910,7 @@ static irqreturn_t dsicm_te_isr(int irq, void *data)
 	return IRQ_HANDLED;
 err:
 	dev_err(&ddata->pdev->dev, "start update failed\n");
-	in->ops->dsi.bus_unlock(in);
+	src->ops->dsi.bus_unlock(src);
 	return IRQ_HANDLED;
 }
 
@@ -920,25 +918,25 @@ static void dsicm_te_timeout_work_callback(struct work_struct *work)
 {
 	struct panel_drv_data *ddata = container_of(work, struct panel_drv_data,
 					te_timeout_work.work);
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = ddata->dssdev.src;
 
 	dev_err(&ddata->pdev->dev, "TE not received for 250ms!\n");
 
 	atomic_set(&ddata->do_update, 0);
-	in->ops->dsi.bus_unlock(in);
+	src->ops->dsi.bus_unlock(src);
 }
 
 static int dsicm_update(struct omap_dss_device *dssdev,
 				    u16 x, u16 y, u16 w, u16 h)
 {
 	struct panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = dssdev->src;
 	int r;
 
 	dev_dbg(&ddata->pdev->dev, "update %d, %d, %d x %d\n", x, y, w, h);
 
 	mutex_lock(&ddata->lock);
-	in->ops->dsi.bus_lock(in);
+	src->ops->dsi.bus_lock(src);
 
 	r = dsicm_wake_up(ddata);
 	if (r)
@@ -960,17 +958,17 @@ static int dsicm_update(struct omap_dss_device *dssdev,
 				msecs_to_jiffies(250));
 		atomic_set(&ddata->do_update, 1);
 	} else {
-		r = in->ops->dsi.update(in, ddata->channel, dsicm_framedone_cb,
+		r = src->ops->dsi.update(src, ddata->channel, dsicm_framedone_cb,
 				ddata);
 		if (r)
 			goto err;
 	}
 
-	/* note: no bus_unlock here. unlock is in framedone_cb */
+	/* note: no bus_unlock here. unlock is src framedone_cb */
 	mutex_unlock(&ddata->lock);
 	return 0;
 err:
-	in->ops->dsi.bus_unlock(in);
+	src->ops->dsi.bus_unlock(src);
 	mutex_unlock(&ddata->lock);
 	return r;
 }
@@ -978,13 +976,13 @@ static int dsicm_update(struct omap_dss_device *dssdev,
 static int dsicm_sync(struct omap_dss_device *dssdev)
 {
 	struct panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = dssdev->src;
 
 	dev_dbg(&ddata->pdev->dev, "sync\n");
 
 	mutex_lock(&ddata->lock);
-	in->ops->dsi.bus_lock(in);
-	in->ops->dsi.bus_unlock(in);
+	src->ops->dsi.bus_lock(src);
+	src->ops->dsi.bus_unlock(src);
 	mutex_unlock(&ddata->lock);
 
 	dev_dbg(&ddata->pdev->dev, "sync done\n");
@@ -994,7 +992,7 @@ static int dsicm_sync(struct omap_dss_device *dssdev)
 
 static int _dsicm_enable_te(struct panel_drv_data *ddata, bool enable)
 {
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = ddata->dssdev.src;
 	int r;
 
 	if (enable)
@@ -1003,7 +1001,7 @@ static int _dsicm_enable_te(struct panel_drv_data *ddata, bool enable)
 		r = dsicm_dcs_write_0(ddata, MIPI_DCS_SET_TEAR_OFF);
 
 	if (!ddata->ext_te_gpio)
-		in->ops->dsi.enable_te(in, enable);
+		src->ops->dsi.enable_te(src, enable);
 
 	/* possible panel bug */
 	msleep(100);
@@ -1014,7 +1012,7 @@ static int _dsicm_enable_te(struct panel_drv_data *ddata, bool enable)
 static int dsicm_enable_te(struct omap_dss_device *dssdev, bool enable)
 {
 	struct panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = dssdev->src;
 	int r;
 
 	mutex_lock(&ddata->lock);
@@ -1022,7 +1020,7 @@ static int dsicm_enable_te(struct omap_dss_device *dssdev, bool enable)
 	if (ddata->te_enabled == enable)
 		goto end;
 
-	in->ops->dsi.bus_lock(in);
+	src->ops->dsi.bus_lock(src);
 
 	if (ddata->enabled) {
 		r = dsicm_wake_up(ddata);
@@ -1036,13 +1034,13 @@ static int dsicm_enable_te(struct omap_dss_device *dssdev, bool enable)
 
 	ddata->te_enabled = enable;
 
-	in->ops->dsi.bus_unlock(in);
+	src->ops->dsi.bus_unlock(src);
 end:
 	mutex_unlock(&ddata->lock);
 
 	return 0;
 err:
-	in->ops->dsi.bus_unlock(in);
+	src->ops->dsi.bus_unlock(src);
 	mutex_unlock(&ddata->lock);
 
 	return r;
@@ -1065,7 +1063,7 @@ static int dsicm_memory_read(struct omap_dss_device *dssdev,
 		u16 x, u16 y, u16 w, u16 h)
 {
 	struct panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = dssdev->src;
 	int r;
 	int first = 1;
 	int plen;
@@ -1084,7 +1082,7 @@ static int dsicm_memory_read(struct omap_dss_device *dssdev,
 	size = min((u32)w * h * 3,
 		   ddata->vm.hactive * ddata->vm.vactive * 3);
 
-	in->ops->dsi.bus_lock(in);
+	src->ops->dsi.bus_lock(src);
 
 	r = dsicm_wake_up(ddata);
 	if (r)
@@ -1100,7 +1098,7 @@ static int dsicm_memory_read(struct omap_dss_device *dssdev,
 
 	dsicm_set_update_window(ddata, x, y, w, h);
 
-	r = in->ops->dsi.set_max_rx_packet_size(in, ddata->channel, plen);
+	r = src->ops->dsi.set_max_rx_packet_size(src, ddata->channel, plen);
 	if (r)
 		goto err2;
 
@@ -1108,7 +1106,7 @@ static int dsicm_memory_read(struct omap_dss_device *dssdev,
 		u8 dcs_cmd = first ? 0x2e : 0x3e;
 		first = 0;
 
-		r = in->ops->dsi.dcs_read(in, ddata->channel, dcs_cmd,
+		r = src->ops->dsi.dcs_read(src, ddata->channel, dcs_cmd,
 				buf + buf_used, size - buf_used);
 
 		if (r < 0) {
@@ -1134,9 +1132,9 @@ static int dsicm_memory_read(struct omap_dss_device *dssdev,
 	r = buf_used;
 
 err3:
-	in->ops->dsi.set_max_rx_packet_size(in, ddata->channel, 1);
+	src->ops->dsi.set_max_rx_packet_size(src, ddata->channel, 1);
 err2:
-	in->ops->dsi.bus_unlock(in);
+	src->ops->dsi.bus_unlock(src);
 err1:
 	mutex_unlock(&ddata->lock);
 	return r;
@@ -1147,7 +1145,7 @@ static void dsicm_ulps_work(struct work_struct *work)
 	struct panel_drv_data *ddata = container_of(work, struct panel_drv_data,
 			ulps_work.work);
 	struct omap_dss_device *dssdev = &ddata->dssdev;
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = dssdev->src;
 
 	mutex_lock(&ddata->lock);
 
@@ -1156,11 +1154,11 @@ static void dsicm_ulps_work(struct work_struct *work)
 		return;
 	}
 
-	in->ops->dsi.bus_lock(in);
+	src->ops->dsi.bus_lock(src);
 
 	dsicm_enter_ulps(ddata);
 
-	in->ops->dsi.bus_unlock(in);
+	src->ops->dsi.bus_unlock(src);
 	mutex_unlock(&ddata->lock);
 }
 
diff --git a/drivers/gpu/drm/omapdrm/displays/panel-lgphilips-lb035q02.c b/drivers/gpu/drm/omapdrm/displays/panel-lgphilips-lb035q02.c
index 50b74e7351e9..5bea3eadd7d2 100644
--- a/drivers/gpu/drm/omapdrm/displays/panel-lgphilips-lb035q02.c
+++ b/drivers/gpu/drm/omapdrm/displays/panel-lgphilips-lb035q02.c
@@ -45,7 +45,6 @@ static const struct videomode lb035q02_vm = {
 
 struct panel_drv_data {
 	struct omap_dss_device dssdev;
-	struct omap_dss_device *in;
 
 	struct spi_device *spi;
 
@@ -119,42 +118,39 @@ static void init_lb035q02_panel(struct spi_device *spi)
 static int lb035q02_connect(struct omap_dss_device *dssdev)
 {
 	struct panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in;
+	struct omap_dss_device *src;
 	int r;
 
-	in = omapdss_of_find_source_for_first_ep(dssdev->dev->of_node);
-	if (IS_ERR(in)) {
+	src = omapdss_of_find_source_for_first_ep(dssdev->dev->of_node);
+	if (IS_ERR(src)) {
 		dev_err(dssdev->dev, "failed to find video source\n");
-		return PTR_ERR(in);
+		return PTR_ERR(src);
 	}
 
-	r = omapdss_device_connect(in, dssdev);
+	r = omapdss_device_connect(src, dssdev);
 	if (r) {
-		omap_dss_put_device(in);
+		omap_dss_put_device(src);
 		return r;
 	}
 
 	init_lb035q02_panel(ddata->spi);
 
-	ddata->in = in;
 	return 0;
 }
 
 static void lb035q02_disconnect(struct omap_dss_device *dssdev)
 {
-	struct panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = dssdev->src;
 
-	omapdss_device_disconnect(in, dssdev);
+	omapdss_device_disconnect(src, dssdev);
 
-	omap_dss_put_device(in);
-	ddata->in = NULL;
+	omap_dss_put_device(src);
 }
 
 static int lb035q02_enable(struct omap_dss_device *dssdev)
 {
 	struct panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = dssdev->src;
 	int r;
 
 	if (!omapdss_device_is_connected(dssdev))
@@ -163,9 +159,9 @@ static int lb035q02_enable(struct omap_dss_device *dssdev)
 	if (omapdss_device_is_enabled(dssdev))
 		return 0;
 
-	in->ops->set_timings(in, &ddata->vm);
+	src->ops->set_timings(src, &ddata->vm);
 
-	r = in->ops->enable(in);
+	r = src->ops->enable(src);
 	if (r)
 		return r;
 
@@ -180,7 +176,7 @@ static int lb035q02_enable(struct omap_dss_device *dssdev)
 static void lb035q02_disable(struct omap_dss_device *dssdev)
 {
 	struct panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = dssdev->src;
 
 	if (!omapdss_device_is_enabled(dssdev))
 		return;
@@ -188,7 +184,7 @@ static void lb035q02_disable(struct omap_dss_device *dssdev)
 	if (ddata->enable_gpio)
 		gpiod_set_value_cansleep(ddata->enable_gpio, 0);
 
-	in->ops->disable(in);
+	src->ops->disable(src);
 
 	dssdev->state = OMAP_DSS_DISPLAY_DISABLED;
 }
@@ -197,11 +193,11 @@ static void lb035q02_set_timings(struct omap_dss_device *dssdev,
 				 struct videomode *vm)
 {
 	struct panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = dssdev->src;
 
 	ddata->vm = *vm;
 
-	in->ops->set_timings(in, vm);
+	src->ops->set_timings(src, vm);
 }
 
 static void lb035q02_get_timings(struct omap_dss_device *dssdev,
@@ -215,10 +211,9 @@ static void lb035q02_get_timings(struct omap_dss_device *dssdev,
 static int lb035q02_check_timings(struct omap_dss_device *dssdev,
 				  struct videomode *vm)
 {
-	struct panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = dssdev->src;
 
-	return in->ops->check_timings(in, vm);
+	return src->ops->check_timings(src, vm);
 }
 
 static const struct omap_dss_driver lb035q02_ops = {
diff --git a/drivers/gpu/drm/omapdrm/displays/panel-nec-nl8048hl11.c b/drivers/gpu/drm/omapdrm/displays/panel-nec-nl8048hl11.c
index 769cba6c99ef..d03339034f18 100644
--- a/drivers/gpu/drm/omapdrm/displays/panel-nec-nl8048hl11.c
+++ b/drivers/gpu/drm/omapdrm/displays/panel-nec-nl8048hl11.c
@@ -21,7 +21,6 @@
 
 struct panel_drv_data {
 	struct omap_dss_device	dssdev;
-	struct omap_dss_device *in;
 
 	struct videomode vm;
 
@@ -114,41 +113,37 @@ static int init_nec_8048_wvga_lcd(struct spi_device *spi)
 
 static int nec_8048_connect(struct omap_dss_device *dssdev)
 {
-	struct panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in;
+	struct omap_dss_device *src;
 	int r;
 
-	in = omapdss_of_find_source_for_first_ep(dssdev->dev->of_node);
-	if (IS_ERR(in)) {
+	src = omapdss_of_find_source_for_first_ep(dssdev->dev->of_node);
+	if (IS_ERR(src)) {
 		dev_err(dssdev->dev, "failed to find video source\n");
-		return PTR_ERR(in);
+		return PTR_ERR(src);
 	}
 
-	r = omapdss_device_connect(in, dssdev);
+	r = omapdss_device_connect(src, dssdev);
 	if (r) {
-		omap_dss_put_device(in);
+		omap_dss_put_device(src);
 		return r;
 	}
 
-	ddata->in = in;
 	return 0;
 }
 
 static void nec_8048_disconnect(struct omap_dss_device *dssdev)
 {
-	struct panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = dssdev->src;
 
-	omapdss_device_disconnect(in, dssdev);
+	omapdss_device_disconnect(src, dssdev);
 
-	omap_dss_put_device(in);
-	ddata->in = NULL;
+	omap_dss_put_device(src);
 }
 
 static int nec_8048_enable(struct omap_dss_device *dssdev)
 {
 	struct panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = dssdev->src;
 	int r;
 
 	if (!omapdss_device_is_connected(dssdev))
@@ -157,9 +152,9 @@ static int nec_8048_enable(struct omap_dss_device *dssdev)
 	if (omapdss_device_is_enabled(dssdev))
 		return 0;
 
-	in->ops->set_timings(in, &ddata->vm);
+	src->ops->set_timings(src, &ddata->vm);
 
-	r = in->ops->enable(in);
+	r = src->ops->enable(src);
 	if (r)
 		return r;
 
@@ -174,7 +169,7 @@ static int nec_8048_enable(struct omap_dss_device *dssdev)
 static void nec_8048_disable(struct omap_dss_device *dssdev)
 {
 	struct panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = dssdev->src;
 
 	if (!omapdss_device_is_enabled(dssdev))
 		return;
@@ -182,7 +177,7 @@ static void nec_8048_disable(struct omap_dss_device *dssdev)
 	if (gpio_is_valid(ddata->res_gpio))
 		gpio_set_value_cansleep(ddata->res_gpio, 0);
 
-	in->ops->disable(in);
+	src->ops->disable(src);
 
 	dssdev->state = OMAP_DSS_DISPLAY_DISABLED;
 }
@@ -191,11 +186,11 @@ static void nec_8048_set_timings(struct omap_dss_device *dssdev,
 				 struct videomode *vm)
 {
 	struct panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = dssdev->src;
 
 	ddata->vm = *vm;
 
-	in->ops->set_timings(in, vm);
+	src->ops->set_timings(src, vm);
 }
 
 static void nec_8048_get_timings(struct omap_dss_device *dssdev,
@@ -209,10 +204,9 @@ static void nec_8048_get_timings(struct omap_dss_device *dssdev,
 static int nec_8048_check_timings(struct omap_dss_device *dssdev,
 				  struct videomode *vm)
 {
-	struct panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = dssdev->src;
 
-	return in->ops->check_timings(in, vm);
+	return src->ops->check_timings(src, vm);
 }
 
 static const struct omap_dss_driver nec_8048_ops = {
diff --git a/drivers/gpu/drm/omapdrm/displays/panel-sharp-ls037v7dw01.c b/drivers/gpu/drm/omapdrm/displays/panel-sharp-ls037v7dw01.c
index 629ea2d93575..93f1a0e89861 100644
--- a/drivers/gpu/drm/omapdrm/displays/panel-sharp-ls037v7dw01.c
+++ b/drivers/gpu/drm/omapdrm/displays/panel-sharp-ls037v7dw01.c
@@ -21,7 +21,6 @@
 
 struct panel_drv_data {
 	struct omap_dss_device dssdev;
-	struct omap_dss_device *in;
 	struct regulator *vcc;
 
 	struct videomode vm;
@@ -60,41 +59,37 @@ static const struct videomode sharp_ls_vm = {
 
 static int sharp_ls_connect(struct omap_dss_device *dssdev)
 {
-	struct panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in;
+	struct omap_dss_device *src;
 	int r;
 
-	in = omapdss_of_find_source_for_first_ep(dssdev->dev->of_node);
-	if (IS_ERR(in)) {
+	src = omapdss_of_find_source_for_first_ep(dssdev->dev->of_node);
+	if (IS_ERR(src)) {
 		dev_err(dssdev->dev, "failed to find video source\n");
-		return PTR_ERR(in);
+		return PTR_ERR(src);
 	}
 
-	r = omapdss_device_connect(in, dssdev);
+	r = omapdss_device_connect(src, dssdev);
 	if (r) {
-		omap_dss_put_device(in);
+		omap_dss_put_device(src);
 		return r;
 	}
 
-	ddata->in = in;
 	return 0;
 }
 
 static void sharp_ls_disconnect(struct omap_dss_device *dssdev)
 {
-	struct panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = dssdev->src;
 
-	omapdss_device_disconnect(in, dssdev);
+	omapdss_device_disconnect(src, dssdev);
 
-	omap_dss_put_device(in);
-	ddata->in = NULL;
+	omap_dss_put_device(src);
 }
 
 static int sharp_ls_enable(struct omap_dss_device *dssdev)
 {
 	struct panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = dssdev->src;
 	int r;
 
 	if (!omapdss_device_is_connected(dssdev))
@@ -103,7 +98,7 @@ static int sharp_ls_enable(struct omap_dss_device *dssdev)
 	if (omapdss_device_is_enabled(dssdev))
 		return 0;
 
-	in->ops->set_timings(in, &ddata->vm);
+	src->ops->set_timings(src, &ddata->vm);
 
 	if (ddata->vcc) {
 		r = regulator_enable(ddata->vcc);
@@ -111,7 +106,7 @@ static int sharp_ls_enable(struct omap_dss_device *dssdev)
 			return r;
 	}
 
-	r = in->ops->enable(in);
+	r = src->ops->enable(src);
 	if (r) {
 		regulator_disable(ddata->vcc);
 		return r;
@@ -134,7 +129,7 @@ static int sharp_ls_enable(struct omap_dss_device *dssdev)
 static void sharp_ls_disable(struct omap_dss_device *dssdev)
 {
 	struct panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = dssdev->src;
 
 	if (!omapdss_device_is_enabled(dssdev))
 		return;
@@ -149,7 +144,7 @@ static void sharp_ls_disable(struct omap_dss_device *dssdev)
 
 	msleep(100);
 
-	in->ops->disable(in);
+	src->ops->disable(src);
 
 	if (ddata->vcc)
 		regulator_disable(ddata->vcc);
@@ -161,11 +156,11 @@ static void sharp_ls_set_timings(struct omap_dss_device *dssdev,
 				 struct videomode *vm)
 {
 	struct panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = dssdev->src;
 
 	ddata->vm = *vm;
 
-	in->ops->set_timings(in, vm);
+	src->ops->set_timings(src, vm);
 }
 
 static void sharp_ls_get_timings(struct omap_dss_device *dssdev,
@@ -179,10 +174,9 @@ static void sharp_ls_get_timings(struct omap_dss_device *dssdev,
 static int sharp_ls_check_timings(struct omap_dss_device *dssdev,
 				  struct videomode *vm)
 {
-	struct panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = dssdev->src;
 
-	return in->ops->check_timings(in, vm);
+	return src->ops->check_timings(src, vm);
 }
 
 static const struct omap_dss_driver sharp_ls_ops = {
diff --git a/drivers/gpu/drm/omapdrm/displays/panel-sony-acx565akm.c b/drivers/gpu/drm/omapdrm/displays/panel-sony-acx565akm.c
index 75cb672b1161..ce32ad974ae8 100644
--- a/drivers/gpu/drm/omapdrm/displays/panel-sony-acx565akm.c
+++ b/drivers/gpu/drm/omapdrm/displays/panel-sony-acx565akm.c
@@ -64,7 +64,6 @@
 
 struct panel_drv_data {
 	struct omap_dss_device	dssdev;
-	struct omap_dss_device *in;
 
 	int reset_gpio;
 
@@ -509,48 +508,44 @@ static const struct attribute_group bldev_attr_group = {
 
 static int acx565akm_connect(struct omap_dss_device *dssdev)
 {
-	struct panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in;
+	struct omap_dss_device *src;
 	int r;
 
-	in = omapdss_of_find_source_for_first_ep(dssdev->dev->of_node);
-	if (IS_ERR(in)) {
+	src = omapdss_of_find_source_for_first_ep(dssdev->dev->of_node);
+	if (IS_ERR(src)) {
 		dev_err(dssdev->dev, "failed to find video source\n");
-		return PTR_ERR(in);
+		return PTR_ERR(src);
 	}
 
-	r = omapdss_device_connect(in, dssdev);
+	r = omapdss_device_connect(src, dssdev);
 	if (r) {
-		omap_dss_put_device(in);
+		omap_dss_put_device(src);
 		return r;
 	}
 
-	ddata->in = in;
 	return 0;
 }
 
 static void acx565akm_disconnect(struct omap_dss_device *dssdev)
 {
-	struct panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = dssdev->src;
 
-	omapdss_device_disconnect(in, dssdev);
+	omapdss_device_disconnect(src, dssdev);
 
-	omap_dss_put_device(in);
-	ddata->in = NULL;
+	omap_dss_put_device(src);
 }
 
 static int acx565akm_panel_power_on(struct omap_dss_device *dssdev)
 {
 	struct panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = dssdev->src;
 	int r;
 
 	dev_dbg(&ddata->spi->dev, "%s\n", __func__);
 
-	in->ops->set_timings(in, &ddata->vm);
+	src->ops->set_timings(src, &ddata->vm);
 
-	r = in->ops->enable(in);
+	r = src->ops->enable(src);
 	if (r) {
 		pr_err("%s sdi enable failed\n", __func__);
 		return r;
@@ -591,7 +586,7 @@ static int acx565akm_panel_power_on(struct omap_dss_device *dssdev)
 static void acx565akm_panel_power_off(struct omap_dss_device *dssdev)
 {
 	struct panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = dssdev->src;
 
 	dev_dbg(dssdev->dev, "%s\n", __func__);
 
@@ -615,7 +610,7 @@ static void acx565akm_panel_power_off(struct omap_dss_device *dssdev)
 	/* FIXME need to tweak this delay */
 	msleep(100);
 
-	in->ops->disable(in);
+	src->ops->disable(src);
 }
 
 static int acx565akm_enable(struct omap_dss_device *dssdev)
@@ -662,11 +657,11 @@ static void acx565akm_set_timings(struct omap_dss_device *dssdev,
 				  struct videomode *vm)
 {
 	struct panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = dssdev->src;
 
 	ddata->vm = *vm;
 
-	in->ops->set_timings(in, vm);
+	src->ops->set_timings(src, vm);
 }
 
 static void acx565akm_get_timings(struct omap_dss_device *dssdev,
@@ -680,10 +675,9 @@ static void acx565akm_get_timings(struct omap_dss_device *dssdev,
 static int acx565akm_check_timings(struct omap_dss_device *dssdev,
 				   struct videomode *vm)
 {
-	struct panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = dssdev->src;
 
-	return in->ops->check_timings(in, vm);
+	return src->ops->check_timings(src, vm);
 }
 
 static const struct omap_dss_driver acx565akm_ops = {
diff --git a/drivers/gpu/drm/omapdrm/displays/panel-tpo-td028ttec1.c b/drivers/gpu/drm/omapdrm/displays/panel-tpo-td028ttec1.c
index 2491c4876dd4..3224502016f4 100644
--- a/drivers/gpu/drm/omapdrm/displays/panel-tpo-td028ttec1.c
+++ b/drivers/gpu/drm/omapdrm/displays/panel-tpo-td028ttec1.c
@@ -33,7 +33,6 @@
 
 struct panel_drv_data {
 	struct omap_dss_device dssdev;
-	struct omap_dss_device *in;
 
 	struct videomode vm;
 
@@ -168,41 +167,37 @@ enum jbt_register {
 
 static int td028ttec1_panel_connect(struct omap_dss_device *dssdev)
 {
-	struct panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in;
+	struct omap_dss_device *src;
 	int r;
 
-	in = omapdss_of_find_source_for_first_ep(dssdev->dev->of_node);
-	if (IS_ERR(in)) {
+	src = omapdss_of_find_source_for_first_ep(dssdev->dev->of_node);
+	if (IS_ERR(src)) {
 		dev_err(dssdev->dev, "failed to find video source\n");
-		return PTR_ERR(in);
+		return PTR_ERR(src);
 	}
 
-	r = omapdss_device_connect(in, dssdev);
+	r = omapdss_device_connect(src, dssdev);
 	if (r) {
-		omap_dss_put_device(in);
+		omap_dss_put_device(src);
 		return r;
 	}
 
-	ddata->in = in;
 	return 0;
 }
 
 static void td028ttec1_panel_disconnect(struct omap_dss_device *dssdev)
 {
-	struct panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = dssdev->src;
 
-	omapdss_device_disconnect(in, dssdev);
+	omapdss_device_disconnect(src, dssdev);
 
-	omap_dss_put_device(in);
-	ddata->in = NULL;
+	omap_dss_put_device(src);
 }
 
 static int td028ttec1_panel_enable(struct omap_dss_device *dssdev)
 {
 	struct panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = dssdev->src;
 	int r;
 
 	if (!omapdss_device_is_connected(dssdev))
@@ -211,9 +206,9 @@ static int td028ttec1_panel_enable(struct omap_dss_device *dssdev)
 	if (omapdss_device_is_enabled(dssdev))
 		return 0;
 
-	in->ops->set_timings(in, &ddata->vm);
+	src->ops->set_timings(src, &ddata->vm);
 
-	r = in->ops->enable(in);
+	r = src->ops->enable(src);
 	if (r)
 		return r;
 
@@ -310,7 +305,7 @@ static int td028ttec1_panel_enable(struct omap_dss_device *dssdev)
 static void td028ttec1_panel_disable(struct omap_dss_device *dssdev)
 {
 	struct panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = dssdev->src;
 
 	if (!omapdss_device_is_enabled(dssdev))
 		return;
@@ -322,7 +317,7 @@ static void td028ttec1_panel_disable(struct omap_dss_device *dssdev)
 	jbt_ret_write_0(ddata, JBT_REG_SLEEP_IN);
 	jbt_reg_write_1(ddata, JBT_REG_POWER_ON_OFF, 0x00);
 
-	in->ops->disable(in);
+	src->ops->disable(src);
 
 	dssdev->state = OMAP_DSS_DISPLAY_DISABLED;
 }
@@ -331,11 +326,11 @@ static void td028ttec1_panel_set_timings(struct omap_dss_device *dssdev,
 					 struct videomode *vm)
 {
 	struct panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = dssdev->src;
 
 	ddata->vm = *vm;
 
-	in->ops->set_timings(in, vm);
+	src->ops->set_timings(src, vm);
 }
 
 static void td028ttec1_panel_get_timings(struct omap_dss_device *dssdev,
@@ -349,10 +344,9 @@ static void td028ttec1_panel_get_timings(struct omap_dss_device *dssdev,
 static int td028ttec1_panel_check_timings(struct omap_dss_device *dssdev,
 					  struct videomode *vm)
 {
-	struct panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = dssdev->src;
 
-	return in->ops->check_timings(in, vm);
+	return src->ops->check_timings(src, vm);
 }
 
 static const struct omap_dss_driver td028ttec1_ops = {
diff --git a/drivers/gpu/drm/omapdrm/displays/panel-tpo-td043mtea1.c b/drivers/gpu/drm/omapdrm/displays/panel-tpo-td043mtea1.c
index df3d8103823d..e3212e476b91 100644
--- a/drivers/gpu/drm/omapdrm/displays/panel-tpo-td043mtea1.c
+++ b/drivers/gpu/drm/omapdrm/displays/panel-tpo-td043mtea1.c
@@ -54,7 +54,6 @@ static const u16 tpo_td043_def_gamma[12] = {
 
 struct panel_drv_data {
 	struct omap_dss_device	dssdev;
-	struct omap_dss_device *in;
 
 	struct videomode vm;
 
@@ -339,41 +338,37 @@ static void tpo_td043_power_off(struct panel_drv_data *ddata)
 
 static int tpo_td043_connect(struct omap_dss_device *dssdev)
 {
-	struct panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in;
+	struct omap_dss_device *src;
 	int r;
 
-	in = omapdss_of_find_source_for_first_ep(dssdev->dev->of_node);
-	if (IS_ERR(in)) {
+	src = omapdss_of_find_source_for_first_ep(dssdev->dev->of_node);
+	if (IS_ERR(src)) {
 		dev_err(dssdev->dev, "failed to find video source\n");
-		return PTR_ERR(in);
+		return PTR_ERR(src);
 	}
 
-	r = omapdss_device_connect(in, dssdev);
+	r = omapdss_device_connect(src, dssdev);
 	if (r) {
-		omap_dss_put_device(in);
+		omap_dss_put_device(src);
 		return r;
 	}
 
-	ddata->in = in;
 	return 0;
 }
 
 static void tpo_td043_disconnect(struct omap_dss_device *dssdev)
 {
-	struct panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = dssdev->src;
 
-	omapdss_device_disconnect(in, dssdev);
+	omapdss_device_disconnect(src, dssdev);
 
-	omap_dss_put_device(in);
-	ddata->in = NULL;
+	omap_dss_put_device(src);
 }
 
 static int tpo_td043_enable(struct omap_dss_device *dssdev)
 {
 	struct panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = dssdev->src;
 	int r;
 
 	if (!omapdss_device_is_connected(dssdev))
@@ -382,9 +377,9 @@ static int tpo_td043_enable(struct omap_dss_device *dssdev)
 	if (omapdss_device_is_enabled(dssdev))
 		return 0;
 
-	in->ops->set_timings(in, &ddata->vm);
+	src->ops->set_timings(src, &ddata->vm);
 
-	r = in->ops->enable(in);
+	r = src->ops->enable(src);
 	if (r)
 		return r;
 
@@ -395,7 +390,7 @@ static int tpo_td043_enable(struct omap_dss_device *dssdev)
 	if (!ddata->spi_suspended) {
 		r = tpo_td043_power_on(ddata);
 		if (r) {
-			in->ops->disable(in);
+			src->ops->disable(src);
 			return r;
 		}
 	}
@@ -408,12 +403,12 @@ static int tpo_td043_enable(struct omap_dss_device *dssdev)
 static void tpo_td043_disable(struct omap_dss_device *dssdev)
 {
 	struct panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = dssdev->src;
 
 	if (!omapdss_device_is_enabled(dssdev))
 		return;
 
-	in->ops->disable(in);
+	src->ops->disable(src);
 
 	if (!ddata->spi_suspended)
 		tpo_td043_power_off(ddata);
@@ -425,11 +420,11 @@ static void tpo_td043_set_timings(struct omap_dss_device *dssdev,
 				  struct videomode *vm)
 {
 	struct panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = dssdev->src;
 
 	ddata->vm = *vm;
 
-	in->ops->set_timings(in, vm);
+	src->ops->set_timings(src, vm);
 }
 
 static void tpo_td043_get_timings(struct omap_dss_device *dssdev,
@@ -443,10 +438,9 @@ static void tpo_td043_get_timings(struct omap_dss_device *dssdev,
 static int tpo_td043_check_timings(struct omap_dss_device *dssdev,
 				   struct videomode *vm)
 {
-	struct panel_drv_data *ddata = to_panel_data(dssdev);
-	struct omap_dss_device *in = ddata->in;
+	struct omap_dss_device *src = dssdev->src;
 
-	return in->ops->check_timings(in, vm);
+	return src->ops->check_timings(src, vm);
 }
 
 static const struct omap_dss_driver tpo_td043_ops = {
-- 
Regards,

Laurent Pinchart

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

  parent reply	other threads:[~2018-05-26 17:25 UTC|newest]

Thread overview: 127+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-05-26 17:24 [PATCH v2 00/60] omapdrm: Reverse direction of DSS device (dis)connect operations Laurent Pinchart
2018-05-26 17:24 ` [PATCH v2 01/60] drm/omap: Allocate drm_device earlier and unref it as last step Laurent Pinchart
2018-06-10 14:16   ` Sebastian Reichel
2018-05-26 17:24 ` [PATCH v2 02/60] drm/omap: Manage the usable omap_dss_device list within omap_drm_private Laurent Pinchart
2018-06-10 15:19   ` Sebastian Reichel
2018-05-26 17:24 ` [PATCH v2 03/60] drm/omap: Do dss_device (display) ordering in omap_drv.c Laurent Pinchart
2018-06-10 15:23   ` Sebastian Reichel
2018-05-26 17:24 ` [PATCH v2 04/60] drm/omap: dss: Remove display ordering from dss/display.c Laurent Pinchart
2018-06-10 15:23   ` Sebastian Reichel
2018-05-26 17:24 ` [PATCH v2 05/60] drm/omap: dss: Gather OMAP DSS components at probe time Laurent Pinchart
2018-06-10 15:33   ` Sebastian Reichel
2018-05-26 17:24 ` [PATCH v2 06/60] drm/omap: dss: Move platform_device_register from core.c to dss.c probe Laurent Pinchart
2018-06-10 15:40   ` Sebastian Reichel
2018-05-26 17:24 ` [PATCH v2 07/60] drm/omap: dss: Handle DPI and SDI port initialization failures Laurent Pinchart
2018-06-10 16:04   ` Sebastian Reichel
2018-05-26 17:24 ` [PATCH v2 08/60] drm/omap: dss: Remove omapdss_atv_ops get_wss and set_wss operations Laurent Pinchart
2018-06-10 16:10   ` Sebastian Reichel
2018-05-26 17:24 ` [PATCH v2 09/60] drm/omap: dss: Remove DSS encoders get_timings operation Laurent Pinchart
2018-06-10 16:13   ` Sebastian Reichel
2018-05-26 17:24 ` [PATCH v2 10/60] drm/omap: dss: Remove unused omapdss_default_get_timings() Laurent Pinchart
2018-06-10 16:18   ` Sebastian Reichel
2018-05-26 17:24 ` [PATCH v2 11/60] drm/omap: dss: Constify omap_dss_driver operations structure Laurent Pinchart
2018-06-10 16:20   ` Sebastian Reichel
2018-05-26 17:24 ` [PATCH v2 12/60] drm/omap: displays: Remove videomode from omap_dss_device structure Laurent Pinchart
2018-06-10 17:44   ` Sebastian Reichel
2018-05-26 17:24 ` [PATCH v2 13/60] drm/omap: dss: Remove omap_dss_device panel fields Laurent Pinchart
2018-06-10 17:48   ` Sebastian Reichel
2018-05-26 17:24 ` [PATCH v2 14/60] drm/omap: dss: Rename omap_dss_device list field to output_list Laurent Pinchart
2018-06-10 18:55   ` Sebastian Reichel
2018-05-26 17:24 ` [PATCH v2 15/60] drm/omap: dss: Create global list of all omap_dss_device instances Laurent Pinchart
2018-06-10 19:03   ` Sebastian Reichel
2018-05-26 17:24 ` [PATCH v2 16/60] drm/omap: dss: Create and use omapdss_device_is_registered() Laurent Pinchart
2018-06-10 19:04   ` Sebastian Reichel
2018-05-26 17:24 ` [PATCH v2 17/60] drm/omap: dss: Rework output lookup by port node Laurent Pinchart
2018-06-10 19:19   ` Sebastian Reichel
2018-05-26 17:24 ` [PATCH v2 18/60] drm/omap: dss: Allow looking up any device by port Laurent Pinchart
2018-06-10 19:25   ` Sebastian Reichel
2018-05-26 17:24 ` [PATCH v2 19/60] drm/omap: dss: Move common device operations to common structure Laurent Pinchart
2018-06-10 19:42   ` Sebastian Reichel
2018-05-26 17:24 ` [PATCH v2 20/60] drm/omap: dss: Add functions to connect and disconnect devices Laurent Pinchart
2018-06-10 19:47   ` Sebastian Reichel
2018-05-26 17:24 ` [PATCH v2 21/60] drm/omap: dss: Move debug message and checks to connection handlers Laurent Pinchart
2018-06-10 19:47   ` Sebastian Reichel
2018-05-26 17:24 ` [PATCH v2 22/60] drm/omap: dss: Move src and dst check and set " Laurent Pinchart
2018-06-10 19:54   ` Sebastian Reichel
2018-05-26 17:24 ` Laurent Pinchart [this message]
2018-06-10 20:03   ` [PATCH v2 23/60] drm/omap: displays: Remove input omap_dss_device from panel data Sebastian Reichel
2018-05-26 17:24 ` [PATCH v2 24/60] drm/omap: dsi: Simplify debugfs implementation Laurent Pinchart
2018-06-10 20:08   ` Sebastian Reichel
2018-05-26 17:24 ` [PATCH v2 25/60] drm/omap: Move DSI debugfs clocks dump to dsi%u_clks files Laurent Pinchart
2018-06-10 20:09   ` Sebastian Reichel
2018-05-26 17:24 ` [PATCH v2 26/60] drm/omap: dss: Remove output devices list Laurent Pinchart
2018-06-10 20:12   ` Sebastian Reichel
2018-05-26 17:24 ` [PATCH v2 27/60] drm/omap: dss: Rename for_each_dss_dev macro to for_each_dss_display Laurent Pinchart
2018-06-10 20:17   ` Sebastian Reichel
2018-05-26 17:24 ` [PATCH v2 28/60] drm/omap: dss: Make omap_dss_get_next_device() more generic Laurent Pinchart
2018-06-10 20:17   ` Sebastian Reichel
2018-05-26 17:24 ` [PATCH v2 29/60] drm/omap: dss: Split omapdss_register_display() Laurent Pinchart
2018-06-10 20:24   ` Sebastian Reichel
2018-05-26 17:24 ` [PATCH v2 30/60] drm/omap: dss: Remove panel devices list Laurent Pinchart
2018-06-10 20:32   ` Sebastian Reichel
2018-05-26 17:24 ` [PATCH v2 31/60] drm/omap: dss: Move and rename omap_dss_(get|put)_device() Laurent Pinchart
2018-06-10 20:36   ` Sebastian Reichel
2018-05-26 17:24 ` [PATCH v2 32/60] drm/omap: dss: Store dss_device pointer in omap_dss_device Laurent Pinchart
2018-06-10 20:43   ` Sebastian Reichel
2018-05-26 17:24 ` [PATCH v2 33/60] drm/omap: dss: Move DSS mgr ops and private data to dss_device Laurent Pinchart
2018-06-10 20:43   ` Sebastian Reichel
2018-05-26 17:24 ` [PATCH v2 34/60] drm/omap: dss: Modify omapdss_find_output_from_display() to return channel Laurent Pinchart
2018-06-10 20:46   ` Sebastian Reichel
2018-05-26 17:24 ` [PATCH v2 35/60] drm/omap: dss: Replace omap_dss_device port number with bitmask Laurent Pinchart
2018-06-10 21:00   ` Sebastian Reichel
2018-05-26 17:24 ` [PATCH v2 36/60] drm/omap: dss: Extend omapdss_of_find_source_for_first_ep() to sinks Laurent Pinchart
2018-06-10 21:13   ` Sebastian Reichel
2018-05-26 17:24 ` [PATCH v2 37/60] drm/omap: displays: Don't cast dssdev to panel data unnecessarily Laurent Pinchart
2018-06-10 21:14   ` Sebastian Reichel
2018-05-26 17:24 ` [PATCH v2 38/60] drm/omap: dss: Cleanup error paths in output init functions Laurent Pinchart
2018-06-10 21:17   ` Sebastian Reichel
2018-05-26 17:24 ` [PATCH v2 39/60] drm/omap: dss: dsi: Move initialization code from bind to probe Laurent Pinchart
2018-06-10 22:32   ` Sebastian Reichel
2018-05-26 17:24 ` [PATCH v2 40/60] drm/omap: dss: hdmi4: " Laurent Pinchart
2018-06-10 22:54   ` Sebastian Reichel
2018-05-26 17:24 ` [PATCH v2 41/60] drm/omap: dss: hdmi5: " Laurent Pinchart
2018-06-10 23:08   ` Sebastian Reichel
2018-05-26 17:25 ` [PATCH v2 42/60] drm/omap: dss: venc: " Laurent Pinchart
2018-06-10 23:17   ` Sebastian Reichel
2018-05-26 17:25 ` [PATCH v2 43/60] drm/omap: dss: Acquire next dssdev at probe time Laurent Pinchart
2018-06-10 23:49   ` Sebastian Reichel
2018-05-26 17:25 ` [PATCH v2 44/60] drm/omap: dss: Add for_each_dss_output() macro Laurent Pinchart
2018-06-10 23:52   ` Sebastian Reichel
2018-06-11 17:11     ` Laurent Pinchart
2018-06-11 21:06       ` Sebastian Reichel
2018-05-26 17:25 ` [PATCH v2 45/60] drm/omap: dss: Add function to retrieve display for an output Laurent Pinchart
2018-06-10 23:49   ` Sebastian Reichel
2018-05-26 17:25 ` [PATCH v2 46/60] drm/omap: dss: Remove duplicated parameter to dss_mgr_(dis)connect() Laurent Pinchart
2018-06-10 23:48   ` Sebastian Reichel
2018-06-11 17:16     ` Laurent Pinchart
2018-06-11 21:02       ` Sebastian Reichel
2018-05-26 17:25 ` [PATCH v2 47/60] drm/omap: dss: Get regulators at probe time Laurent Pinchart
2018-06-10 23:58   ` Sebastian Reichel
2018-05-26 17:25 ` [PATCH v2 48/60] drm/omap: Remove unneeded variable assignments in omap_modeset_init Laurent Pinchart
2018-06-11  0:01   ` Sebastian Reichel
2018-05-26 17:25 ` [PATCH v2 49/60] drm/omap: Create all planes before CRTCs Laurent Pinchart
2018-06-11  0:07   ` Sebastian Reichel
2018-05-26 17:25 ` [PATCH v2 50/60] drm/omap: Group CRTC, encoder, connector and dssdev in a structure Laurent Pinchart
2018-06-11 10:50   ` Sebastian Reichel
2018-05-26 17:25 ` [PATCH v2 51/60] drm/omap: Reverse direction of DSS device (dis)connect operations Laurent Pinchart
2018-06-11 11:59   ` Sebastian Reichel
2018-06-11 19:21     ` Laurent Pinchart
2018-05-26 17:25 ` [PATCH v2 52/60] drm/omap: dss: Move connection checks to omapdss_device_(dis)connect Laurent Pinchart
2018-06-11 11:59   ` Sebastian Reichel
2018-05-26 17:25 ` [PATCH v2 53/60] drm/omap: dss: Move display type validation to initialization time Laurent Pinchart
2018-06-11 11:59   ` Sebastian Reichel
2018-05-26 17:25 ` [PATCH v2 54/60] drm/omap: dss: Merge two disconnection helpers Laurent Pinchart
2018-06-11 11:59   ` Sebastian Reichel
2018-05-26 17:25 ` [PATCH v2 55/60] drm/omap: Pass pipe pointer to omap_crtc_init() Laurent Pinchart
2018-06-11 12:00   ` Sebastian Reichel
2018-05-26 17:25 ` [PATCH v2 56/60] drm/omap: Store CRTC lookup by channel table in omap_drm_private Laurent Pinchart
2018-06-11 12:00   ` Sebastian Reichel
2018-05-26 17:25 ` [PATCH v2 57/60] drm/omap: Remove omap_crtc_output global array Laurent Pinchart
2018-06-11 12:00   ` Sebastian Reichel
2018-05-26 17:25 ` [PATCH v2 58/60] drm/omap: Remove supported output check in CRTC connect handler Laurent Pinchart
2018-06-11 12:00   ` Sebastian Reichel
2018-05-26 17:25 ` [PATCH v2 59/60] drm/omap: Set dispc_channel_connect from DSS output connect handlers Laurent Pinchart
2018-06-11 12:00   ` Sebastian Reichel
2018-05-26 17:25 ` [PATCH v2 60/60] drm/omap: dss: Remove the dss_mgr_(dis)connect() operations Laurent Pinchart
2018-06-11 12:01   ` Sebastian Reichel
2018-06-13  6:56 ` [PATCH v2 00/60] omapdrm: Reverse direction of DSS device (dis)connect operations Tomi Valkeinen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180526172518.18710-24-laurent.pinchart@ideasonboard.com \
    --to=laurent.pinchart@ideasonboard.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=tomi.valkeinen@ti.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.