All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tomi Valkeinen <tomi.valkeinen@ti.com>
To: linux-fbdev@vger.kernel.org, linux-omap@vger.kernel.org,
	Archit Taneja <archit@ti.com>
Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
Subject: [PATCH 02/27] OMAPDSS: modify get/find functions to go through the device chain
Date: Thu, 30 May 2013 09:35:55 +0000	[thread overview]
Message-ID: <1369906580-27585-3-git-send-email-tomi.valkeinen@ti.com> (raw)
In-Reply-To: <1369906580-27585-1-git-send-email-tomi.valkeinen@ti.com>

In the future will have arbitrarily long video pipeline chains, instead
of the current two-entities-per-pipeline model.

This patch changes the affected get/find style functions so that they
properly go through the video pipeline chain, for example when getting
the overlay manager connected to a given display.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
---
 drivers/video/omap2/dss/apply.c  | 14 +++++++++++++-
 drivers/video/omap2/dss/output.c |  8 +++++++-
 2 files changed, 20 insertions(+), 2 deletions(-)

diff --git a/drivers/video/omap2/dss/apply.c b/drivers/video/omap2/dss/apply.c
index 752b985..d6212d63 100644
--- a/drivers/video/omap2/dss/apply.c
+++ b/drivers/video/omap2/dss/apply.c
@@ -422,7 +422,19 @@ static void wait_pending_extra_info_updates(void)
 
 static struct omap_dss_device *dss_mgr_get_device(struct omap_overlay_manager *mgr)
 {
-	return mgr->output ? mgr->output->device : NULL;
+	struct omap_dss_device *dssdev;
+
+	dssdev = mgr->output;
+	if (dssdev = NULL)
+		return NULL;
+
+	while (dssdev->device)
+		dssdev = dssdev->device;
+
+	if (dssdev->driver)
+		return dssdev;
+	else
+		return NULL;
 }
 
 static struct omap_dss_device *dss_ovl_get_device(struct omap_overlay *ovl)
diff --git a/drivers/video/omap2/dss/output.c b/drivers/video/omap2/dss/output.c
index 0ba168e..3f5c0a7 100644
--- a/drivers/video/omap2/dss/output.c
+++ b/drivers/video/omap2/dss/output.c
@@ -146,7 +146,13 @@ EXPORT_SYMBOL(omap_dss_find_output_by_node);
 
 struct omap_dss_device *omapdss_find_output_from_display(struct omap_dss_device *dssdev)
 {
-	return omap_dss_get_device(dssdev->output);
+	while (dssdev->output)
+		dssdev = dssdev->output;
+
+	if (dssdev->id != 0)
+		return omap_dss_get_device(dssdev);
+
+	return NULL;
 }
 EXPORT_SYMBOL(omapdss_find_output_from_display);
 
-- 
1.8.1.2


WARNING: multiple messages have this Message-ID (diff)
From: Tomi Valkeinen <tomi.valkeinen@ti.com>
To: linux-fbdev@vger.kernel.org, linux-omap@vger.kernel.org,
	Archit Taneja <archit@ti.com>
Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
Subject: [PATCH 02/27] OMAPDSS: modify get/find functions to go through the device chain
Date: Thu, 30 May 2013 12:35:55 +0300	[thread overview]
Message-ID: <1369906580-27585-3-git-send-email-tomi.valkeinen@ti.com> (raw)
In-Reply-To: <1369906580-27585-1-git-send-email-tomi.valkeinen@ti.com>

In the future will have arbitrarily long video pipeline chains, instead
of the current two-entities-per-pipeline model.

This patch changes the affected get/find style functions so that they
properly go through the video pipeline chain, for example when getting
the overlay manager connected to a given display.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
---
 drivers/video/omap2/dss/apply.c  | 14 +++++++++++++-
 drivers/video/omap2/dss/output.c |  8 +++++++-
 2 files changed, 20 insertions(+), 2 deletions(-)

diff --git a/drivers/video/omap2/dss/apply.c b/drivers/video/omap2/dss/apply.c
index 752b985..d6212d63 100644
--- a/drivers/video/omap2/dss/apply.c
+++ b/drivers/video/omap2/dss/apply.c
@@ -422,7 +422,19 @@ static void wait_pending_extra_info_updates(void)
 
 static struct omap_dss_device *dss_mgr_get_device(struct omap_overlay_manager *mgr)
 {
-	return mgr->output ? mgr->output->device : NULL;
+	struct omap_dss_device *dssdev;
+
+	dssdev = mgr->output;
+	if (dssdev == NULL)
+		return NULL;
+
+	while (dssdev->device)
+		dssdev = dssdev->device;
+
+	if (dssdev->driver)
+		return dssdev;
+	else
+		return NULL;
 }
 
 static struct omap_dss_device *dss_ovl_get_device(struct omap_overlay *ovl)
diff --git a/drivers/video/omap2/dss/output.c b/drivers/video/omap2/dss/output.c
index 0ba168e..3f5c0a7 100644
--- a/drivers/video/omap2/dss/output.c
+++ b/drivers/video/omap2/dss/output.c
@@ -146,7 +146,13 @@ EXPORT_SYMBOL(omap_dss_find_output_by_node);
 
 struct omap_dss_device *omapdss_find_output_from_display(struct omap_dss_device *dssdev)
 {
-	return omap_dss_get_device(dssdev->output);
+	while (dssdev->output)
+		dssdev = dssdev->output;
+
+	if (dssdev->id != 0)
+		return omap_dss_get_device(dssdev);
+
+	return NULL;
 }
 EXPORT_SYMBOL(omapdss_find_output_from_display);
 
-- 
1.8.1.2


  parent reply	other threads:[~2013-05-30  9:35 UTC|newest]

Thread overview: 56+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-05-30  9:35 [PATCH 00/27] OMAPDSS: dss-dev-model (Part 2/2) Tomi Valkeinen
2013-05-30  9:35 ` Tomi Valkeinen
2013-05-30  9:35 ` [PATCH 01/27] OMAPDSS: public omapdss_register_output() Tomi Valkeinen
2013-05-30  9:35   ` Tomi Valkeinen
2013-05-30  9:35 ` Tomi Valkeinen [this message]
2013-05-30  9:35   ` [PATCH 02/27] OMAPDSS: modify get/find functions to go through the device chain Tomi Valkeinen
2013-05-30  9:35 ` [PATCH 03/27] OMAPDSS: add platform data structs for new panel drivers Tomi Valkeinen
2013-05-30  9:35   ` Tomi Valkeinen
2013-05-30  9:35 ` [PATCH 04/27] ARM: OMAP: dss-common: use new display drivers Tomi Valkeinen
2013-05-30  9:35   ` Tomi Valkeinen
2013-05-30  9:35 ` [PATCH 05/27] ARM: OMAP: overo: " Tomi Valkeinen
2013-05-30  9:35   ` Tomi Valkeinen
2013-05-30  9:35 ` [PATCH 06/27] ARM: OMAP: rx51: " Tomi Valkeinen
2013-05-30  9:35   ` Tomi Valkeinen
2013-05-30  9:36 ` [PATCH 07/27] ARM: OMAP: beagle: " Tomi Valkeinen
2013-05-30  9:36   ` Tomi Valkeinen
2013-05-30  9:36 ` [PATCH 08/27] OMAPDSS: add OMAP_DISPLAY_TYPE_DVI Tomi Valkeinen
2013-05-30  9:36   ` Tomi Valkeinen
2013-05-30  9:36 ` [PATCH 09/27] drm/omap: DVI connector fix Tomi Valkeinen
2013-05-30  9:36   ` Tomi Valkeinen
2013-05-30  9:36 ` [PATCH 10/27] OMAPDSS: DPI: Add ops Tomi Valkeinen
2013-05-30  9:36   ` Tomi Valkeinen
2013-05-30  9:36 ` [PATCH 11/27] OMAPDSS: SDI: " Tomi Valkeinen
2013-05-30  9:36   ` Tomi Valkeinen
2013-05-30  9:36 ` [PATCH 12/27] OMAPDSS: DVI: " Tomi Valkeinen
2013-05-30  9:36   ` Tomi Valkeinen
2013-05-30  9:36 ` [PATCH 13/27] OMAPDSS: AnalogTV: " Tomi Valkeinen
2013-05-30  9:36   ` Tomi Valkeinen
2013-05-30  9:36 ` [PATCH 14/27] OMAPDSS: HDMI: " Tomi Valkeinen
2013-05-30  9:36   ` Tomi Valkeinen
2013-05-30  9:36 ` [PATCH 15/27] OMAPDSS: DSI: " Tomi Valkeinen
2013-05-30  9:36   ` Tomi Valkeinen
2013-05-30  9:36 ` [PATCH 16/27] OMAPDSS: Add new TFP410 Encoder driver Tomi Valkeinen
2013-05-30  9:36   ` Tomi Valkeinen
2013-05-30  9:36 ` [PATCH 17/27] OMAPDSS: Add new TPD12S015 " Tomi Valkeinen
2013-05-30  9:36   ` Tomi Valkeinen
2013-05-30  9:36 ` [PATCH 18/27] OMAPDSS: Add new DVI Connector driver Tomi Valkeinen
2013-05-30  9:36   ` Tomi Valkeinen
2013-05-30  9:36 ` [PATCH 19/27] OMAPDSS: Add new HDMI " Tomi Valkeinen
2013-05-30  9:36   ` Tomi Valkeinen
2013-05-30  9:36 ` [PATCH 20/27] OMAPDSS: Add new Analog TV " Tomi Valkeinen
2013-05-30  9:36   ` Tomi Valkeinen
2013-05-30  9:36 ` [PATCH 21/27] OMAPDSS: Add new simple DPI panel driver Tomi Valkeinen
2013-05-30  9:36   ` Tomi Valkeinen
2013-05-30  9:36 ` [PATCH 22/27] OMAPDSS: Add new DSI Command Mode " Tomi Valkeinen
2013-05-30  9:36   ` Tomi Valkeinen
2013-05-30  9:36 ` [PATCH 23/27] OMAPDSS: Add Sony ACX565AKM " Tomi Valkeinen
2013-05-30  9:36   ` Tomi Valkeinen
2013-05-30  9:36 ` [PATCH 24/27] OMAPDSS: Add LG.Philips LB035Q02 " Tomi Valkeinen
2013-05-30  9:36   ` Tomi Valkeinen
2013-05-30  9:36 ` [PATCH 25/27] ARM: OMAP: fix dsi regulator names Tomi Valkeinen
2013-05-30  9:36   ` Tomi Valkeinen
2013-05-30  9:36 ` [PATCH 26/27] ARM: OMAP: add vdds_dsi supply for dpi.0 Tomi Valkeinen
2013-05-30  9:36   ` Tomi Valkeinen
2013-05-30  9:36 ` [PATCH 27/27] ARM: OMAP: add vdds_sdi supply for sdi.0 Tomi Valkeinen
2013-05-30  9:36   ` 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=1369906580-27585-3-git-send-email-tomi.valkeinen@ti.com \
    --to=tomi.valkeinen@ti.com \
    --cc=archit@ti.com \
    --cc=linux-fbdev@vger.kernel.org \
    --cc=linux-omap@vger.kernel.org \
    /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.