From: Donghwa Lee <dh09.lee@samsung.com>
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v2] video: exynos: s6e8ax0: support early fb event of fb_blank()
Date: Tue, 24 Jul 2012 02:19:25 +0000 [thread overview]
Message-ID: <500E062D.2020307@samsung.com> (raw)
This patch supports early fb event of fb_blank().
- In case of lcd power off : call early_set_power() interface and lcd
power is off. And then framebuffer is blanked.
- In case of lcd power on : First, framebuffer is unblanked, and then
call set_power() interface to turn lcd on.
Signed-off-by: Donghwa Lee <dh09.lee@samsung.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
---
Changes of v1:
- changes function name from s6e8aa0_early_set_power() to
s6e8ax0_early_set_power()
drivers/video/exynos/s6e8ax0.c | 32 ++++++++++++++++++++++++++++++++
1 files changed, 32 insertions(+), 0 deletions(-)
diff --git a/drivers/video/exynos/s6e8ax0.c b/drivers/video/exynos/s6e8ax0.c
index 05d080b..bfb1919 100644
--- a/drivers/video/exynos/s6e8ax0.c
+++ b/drivers/video/exynos/s6e8ax0.c
@@ -663,6 +663,37 @@ static int s6e8ax0_gamma_ctrl(struct s6e8ax0 *lcd, int gamma)
return 0;
}
+static int s6e8ax0_early_set_power(struct lcd_device *ld, int power)
+{
+ struct s6e8ax0 *lcd = lcd_get_data(ld);
+ struct mipi_dsim_master_ops *ops = lcd_to_master_ops(lcd);
+ int ret = 0;
+
+ if (power != FB_BLANK_UNBLANK && power != FB_BLANK_POWERDOWN &&
+ power != FB_BLANK_NORMAL) {
+ dev_err(lcd->dev, "power value should be 0, 1 or 4.\n");
+ return -EINVAL;
+ }
+
+ if (lcd->power = power) {
+ dev_err(lcd->dev, "power mode is same as previous one.\n");
+ return -EINVAL;
+ }
+
+ if (ops->set_early_blank_mode) {
+ /* LCD power off */
+ if ((POWER_IS_OFF(power) && POWER_IS_ON(lcd->power))
+ || (POWER_IS_ON(lcd->power) && POWER_IS_NRM(power))) {
+ ret = ops->set_early_blank_mode(lcd_to_master(lcd),
+ power);
+ if (!ret && lcd->power != power)
+ lcd->power = power;
+ }
+ }
+
+ return ret;
+}
+
static int s6e8ax0_set_power(struct lcd_device *ld, int power)
{
struct s6e8ax0 *lcd = lcd_get_data(ld);
@@ -731,6 +762,7 @@ static int s6e8ax0_set_brightness(struct backlight_device *bd)
}
static struct lcd_ops s6e8ax0_lcd_ops = {
+ .early_set_power = s6e8ax0_early_set_power,
.set_power = s6e8ax0_set_power,
.get_power = s6e8ax0_get_power,
};
--
1.7.4.1
WARNING: multiple messages have this Message-ID (diff)
From: dh09.lee@samsung.com (Donghwa Lee)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v2] video: exynos: s6e8ax0: support early fb event of fb_blank()
Date: Tue, 24 Jul 2012 11:19:25 +0900 [thread overview]
Message-ID: <500E062D.2020307@samsung.com> (raw)
This patch supports early fb event of fb_blank().
- In case of lcd power off : call early_set_power() interface and lcd
power is off. And then framebuffer is blanked.
- In case of lcd power on : First, framebuffer is unblanked, and then
call set_power() interface to turn lcd on.
Signed-off-by: Donghwa Lee <dh09.lee@samsung.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
---
Changes of v1:
- changes function name from s6e8aa0_early_set_power() to
s6e8ax0_early_set_power()
drivers/video/exynos/s6e8ax0.c | 32 ++++++++++++++++++++++++++++++++
1 files changed, 32 insertions(+), 0 deletions(-)
diff --git a/drivers/video/exynos/s6e8ax0.c b/drivers/video/exynos/s6e8ax0.c
index 05d080b..bfb1919 100644
--- a/drivers/video/exynos/s6e8ax0.c
+++ b/drivers/video/exynos/s6e8ax0.c
@@ -663,6 +663,37 @@ static int s6e8ax0_gamma_ctrl(struct s6e8ax0 *lcd, int gamma)
return 0;
}
+static int s6e8ax0_early_set_power(struct lcd_device *ld, int power)
+{
+ struct s6e8ax0 *lcd = lcd_get_data(ld);
+ struct mipi_dsim_master_ops *ops = lcd_to_master_ops(lcd);
+ int ret = 0;
+
+ if (power != FB_BLANK_UNBLANK && power != FB_BLANK_POWERDOWN &&
+ power != FB_BLANK_NORMAL) {
+ dev_err(lcd->dev, "power value should be 0, 1 or 4.\n");
+ return -EINVAL;
+ }
+
+ if (lcd->power == power) {
+ dev_err(lcd->dev, "power mode is same as previous one.\n");
+ return -EINVAL;
+ }
+
+ if (ops->set_early_blank_mode) {
+ /* LCD power off */
+ if ((POWER_IS_OFF(power) && POWER_IS_ON(lcd->power))
+ || (POWER_IS_ON(lcd->power) && POWER_IS_NRM(power))) {
+ ret = ops->set_early_blank_mode(lcd_to_master(lcd),
+ power);
+ if (!ret && lcd->power != power)
+ lcd->power = power;
+ }
+ }
+
+ return ret;
+}
+
static int s6e8ax0_set_power(struct lcd_device *ld, int power)
{
struct s6e8ax0 *lcd = lcd_get_data(ld);
@@ -731,6 +762,7 @@ static int s6e8ax0_set_brightness(struct backlight_device *bd)
}
static struct lcd_ops s6e8ax0_lcd_ops = {
+ .early_set_power = s6e8ax0_early_set_power,
.set_power = s6e8ax0_set_power,
.get_power = s6e8ax0_get_power,
};
--
1.7.4.1
next reply other threads:[~2012-07-24 2:19 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-07-24 2:19 Donghwa Lee [this message]
2012-07-24 2:19 ` [PATCH v2] video: exynos: s6e8ax0: support early fb event of fb_blank() Donghwa Lee
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=500E062D.2020307@samsung.com \
--to=dh09.lee@samsung.com \
--cc=linux-arm-kernel@lists.infradead.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.