Linux Samsung SOC development
 help / color / mirror / Atom feed
From: Ajay Kumar <ajaykumar.rs@samsung.com>
To: dri-devel@lists.freedesktop.org, linux-samsung-soc@vger.kernel.org
Cc: inki.dae@samsung.com, seanpaul@google.com, ajaynumb@gmail.com,
	joshi@samsung.com, prashanth.g@samsung.com,
	Ajay Kumar <ajaykumar.rs@samsung.com>
Subject: [PATCH V2 2/9] drm/panel: add pre_enable and post_disable routines
Date: Tue, 22 Apr 2014 04:09:11 +0530	[thread overview]
Message-ID: <1398119958-32005-3-git-send-email-ajaykumar.rs@samsung.com> (raw)
In-Reply-To: <1398119958-32005-1-git-send-email-ajaykumar.rs@samsung.com>

Most of the panels need an init sequence as mentioned below:
	-- poweron LCD unit/LCD_EN
	-- start video data
	-- poweron LED unit/BL_EN
And, a de-init sequence as mentioned below:
	-- poweroff LED unit/BL_EN
	-- stop video data
	-- poweroff LCD unit/LCD_EN
With existing callbacks for drm panel, we cannot accomodate such panels,
since only two callbacks, i.e "panel_enable" and panel_disable are supported.

This patch adds:
	-- "pre_enable" callback which can be called before
	the actual video data is on, and then call the "enable"
	callback after the video data is available.

	-- "post_disable" callback which can be called after
	the video data is off, and use "disable" callback
	to do something before switching off the video data.

Now, we can easily map the above scenario as shown below:
	poweron LCD unit/LCD_EN = "pre_enable" callback
	poweron LED unit/BL_EN = "enable" callback
	poweroff LED unit/BL_EN = "disable" callback
	poweroff LCD unit/LCD_EN = "post_disable" callback

Signed-off-by: Ajay Kumar <ajaykumar.rs@samsung.com>
---
Changes since V1:
	Added post_disable callback

 include/drm/drm_panel.h |   18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/include/drm/drm_panel.h b/include/drm/drm_panel.h
index c2ab77a..bf191df 100644
--- a/include/drm/drm_panel.h
+++ b/include/drm/drm_panel.h
@@ -31,7 +31,9 @@ struct drm_device;
 struct drm_panel;
 
 struct drm_panel_funcs {
+	int (*post_disable)(struct drm_panel *panel);
 	int (*disable)(struct drm_panel *panel);
+	int (*pre_enable)(struct drm_panel *panel);
 	int (*enable)(struct drm_panel *panel);
 	int (*get_modes)(struct drm_panel *panel);
 };
@@ -46,6 +48,14 @@ struct drm_panel {
 	struct list_head list;
 };
 
+static inline int drm_panel_post_disable(struct drm_panel *panel)
+{
+	if (panel && panel->funcs && panel->funcs->post_disable)
+		return panel->funcs->post_disable(panel);
+
+	return panel ? -ENOSYS : -EINVAL;
+}
+
 static inline int drm_panel_disable(struct drm_panel *panel)
 {
 	if (panel && panel->funcs && panel->funcs->disable)
@@ -54,6 +64,14 @@ static inline int drm_panel_disable(struct drm_panel *panel)
 	return panel ? -ENOSYS : -EINVAL;
 }
 
+static inline int drm_panel_pre_enable(struct drm_panel *panel)
+{
+	if (panel && panel->funcs && panel->funcs->pre_enable)
+		return panel->funcs->pre_enable(panel);
+
+	return panel ? -ENOSYS : -EINVAL;
+}
+
 static inline int drm_panel_enable(struct drm_panel *panel)
 {
 	if (panel && panel->funcs && panel->funcs->enable)
-- 
1.7.9.5

  parent reply	other threads:[~2014-04-21 22:39 UTC|newest]

Thread overview: 58+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-04-21 22:39 [PATCH V2 0/9] drm: exynos: few patches to enhance bridge chip support Ajay Kumar
2014-04-21 22:39 ` [PATCH V2 1/9] drm/exynos: dp: support hotplug detection via GPIO Ajay Kumar
2014-04-22  7:13   ` Jingoo Han
2014-05-09  0:57     ` Jingoo Han
2014-04-21 22:39 ` Ajay Kumar [this message]
2014-04-22  8:19   ` [PATCH V2 2/9] drm/panel: add pre_enable and post_disable routines Thierry Reding
2014-04-22 14:36     ` Ajay kumar
2014-04-23  7:29       ` Daniel Vetter
2014-04-23  7:42         ` Thierry Reding
2014-04-23 19:26           ` Ajay kumar
2014-04-24 18:31             ` Thierry Reding
2014-04-25  6:04               ` Ajay kumar
2014-04-25 18:16                 ` Ajay kumar
2014-04-29 12:15                   ` Ajay kumar
2014-04-23 19:14         ` Ajay kumar
2014-04-21 22:39 ` [PATCH V2 3/9] drm/panel: Add driver for exynos_dp based panels Ajay Kumar
2014-04-22  7:22   ` Jingoo Han
2014-04-22 14:37     ` Ajay kumar
2014-04-22  8:26   ` Thierry Reding
2014-04-22 14:53     ` Ajay kumar
2014-04-22 15:16       ` Thierry Reding
2014-04-21 22:39 ` [PATCH V2 4/9] drm/exynos: add exynos_dp_panel driver registration to drm driver Ajay Kumar
2014-04-22  8:33   ` Thierry Reding
2014-04-22 15:03     ` Ajay kumar
2014-04-22 15:26       ` Thierry Reding
2014-08-20  4:02         ` Stéphane Marchesin
2014-08-21  7:36           ` Thierry Reding
2014-08-21  8:25             ` Stéphane Marchesin
2014-08-21  9:27               ` Ajay kumar
2014-08-21  9:37                 ` Thierry Reding
2014-08-21  9:28               ` Thierry Reding
2014-04-21 22:39 ` [PATCH V2 5/9] drm/exynos: dp: modify driver to support drm_panel Ajay Kumar
2014-04-22  8:37   ` Thierry Reding
2014-04-21 22:39 ` [PATCH V2 6/9] drm/bridge: ptn3460: enable polling based detection Ajay Kumar
2014-04-22  8:43   ` Thierry Reding
2014-04-21 22:39 ` [PATCH V2 7/9] drm/bridge: ptn3460: add drm_panel controls Ajay Kumar
2014-04-22  8:55   ` Thierry Reding
2014-04-22 11:34   ` Rob Clark
2014-04-22 13:53     ` Daniel Vetter
2014-04-23 18:56     ` Ajay kumar
2014-04-23 19:02       ` Ajay kumar
2014-04-24 16:11         ` Rob Clark
2014-04-24 16:55           ` Ajay kumar
2014-04-24 17:25             ` Rob Clark
2014-04-24 17:38               ` Ajay kumar
2014-04-25  6:10                 ` Ajay kumar
2014-04-25  6:17                   ` Ajay kumar
2014-04-27 12:55                     ` Daniel Vetter
2014-04-28 13:08                       ` Ajay kumar
2014-04-29 13:14                         ` Rob Clark
2014-04-21 22:39 ` [PATCH V2 8/9] drm/bridge: Add PS8622 bridge driver Ajay Kumar
2014-04-22  8:43   ` Jingoo Han
2014-04-22 13:57     ` Ajay kumar
2014-04-22 13:31   ` Sean Paul
2014-04-22 14:03     ` Ajay kumar
2014-04-21 22:39 ` [PATCH V2 9/9] drm/exynos: Add ps8622 lvds bridge discovery to DP driver Ajay Kumar
2014-04-22  9:27   ` Thierry Reding
2014-04-22 17:20     ` Ajay kumar

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=1398119958-32005-3-git-send-email-ajaykumar.rs@samsung.com \
    --to=ajaykumar.rs@samsung.com \
    --cc=ajaynumb@gmail.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=inki.dae@samsung.com \
    --cc=joshi@samsung.com \
    --cc=linux-samsung-soc@vger.kernel.org \
    --cc=prashanth.g@samsung.com \
    --cc=seanpaul@google.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox