Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7269fde4 authored by Laurent Pinchart's avatar Laurent Pinchart Committed by Tomi Valkeinen
Browse files

drm/omap: displays: Remove input omap_dss_device from panel data



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: 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 fb557171
Loading
Loading
Loading
Loading
+18 −23
Original line number Diff line number Diff line
@@ -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 = {
+18 −25
Original line number Diff line number Diff line
@@ -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,
+40 −48
Original line number Diff line number Diff line
@@ -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 = {
+18 −23
Original line number Diff line number Diff line
@@ -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 = {
+18 −23
Original line number Diff line number Diff line
@@ -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 = {
Loading