* [PATCH] backlight: da903x_bl: switch to using SIMPLE_DEV_PM_OPS
@ 2013-03-12 5:48 Jingoo Han
2013-03-12 19:02 ` Lars-Peter Clausen
2013-03-13 0:51 ` [PATCH] backlight: da903x_bl: use BL_CORE_SUSPENDRESUME option Jingoo Han
0 siblings, 2 replies; 4+ messages in thread
From: Jingoo Han @ 2013-03-12 5:48 UTC (permalink / raw)
To: 'Andrew Morton'
Cc: 'LKML', 'Richard Purdie', 'Jingoo Han'
This reduces #ifdefs in the code. Also, CONFIG_PM_SLEEP is used
to avoid warnings of unused functions if CONFIG_PM_SLEEP is not
defined.
Signed-off-by: Jingoo Han <jg1.han@samsung.com>
---
drivers/video/backlight/da903x_bl.c | 12 ++++--------
1 files changed, 4 insertions(+), 8 deletions(-)
diff --git a/drivers/video/backlight/da903x_bl.c b/drivers/video/backlight/da903x_bl.c
index 8179cef..c625f6d 100644
--- a/drivers/video/backlight/da903x_bl.c
+++ b/drivers/video/backlight/da903x_bl.c
@@ -161,7 +161,7 @@ static int da903x_backlight_remove(struct platform_device *pdev)
return 0;
}
-#ifdef CONFIG_PM
+#ifdef CONFIG_PM_SLEEP
static int da903x_backlight_suspend(struct device *dev)
{
struct backlight_device *bl = dev_get_drvdata(dev);
@@ -176,20 +176,16 @@ static int da903x_backlight_resume(struct device *dev)
backlight_update_status(bl);
return 0;
}
-
-static const struct dev_pm_ops da903x_backlight_pm_ops = {
- .suspend = da903x_backlight_suspend,
- .resume = da903x_backlight_resume,
-};
#endif
+static SIMPLE_DEV_PM_OPS(da903x_backlight_pm_ops, da903x_backlight_suspend,
+ da903x_backlight_resume);
+
static struct platform_driver da903x_backlight_driver = {
.driver = {
.name = "da903x-backlight",
.owner = THIS_MODULE,
-#ifdef CONFIG_PM
.pm = &da903x_backlight_pm_ops,
-#endif
},
.probe = da903x_backlight_probe,
.remove = da903x_backlight_remove,
--
1.7.2.5
^ permalink raw reply related [flat|nested] 4+ messages in thread* Re: [PATCH] backlight: da903x_bl: switch to using SIMPLE_DEV_PM_OPS
2013-03-12 5:48 [PATCH] backlight: da903x_bl: switch to using SIMPLE_DEV_PM_OPS Jingoo Han
@ 2013-03-12 19:02 ` Lars-Peter Clausen
2013-03-13 0:33 ` Jingoo Han
2013-03-13 0:51 ` [PATCH] backlight: da903x_bl: use BL_CORE_SUSPENDRESUME option Jingoo Han
1 sibling, 1 reply; 4+ messages in thread
From: Lars-Peter Clausen @ 2013-03-12 19:02 UTC (permalink / raw)
To: Jingoo Han
Cc: 'Andrew Morton', 'LKML', 'Richard Purdie'
On 03/12/2013 06:48 AM, Jingoo Han wrote:
> This reduces #ifdefs in the code. Also, CONFIG_PM_SLEEP is used
> to avoid warnings of unused functions if CONFIG_PM_SLEEP is not
> defined.
>
> Signed-off-by: Jingoo Han <jg1.han@samsung.com>
I think you can eliminate the suspend/resume functions all together by using
the blacklight subsystems CORE_SUSPENDRESUME feature.
E.g.
diff --git a/drivers/video/backlight/da903x_bl.c
b/drivers/video/backlight/da903x_bl.c
index 8179cef..80ba6b3 100644
--- a/drivers/video/backlight/da903x_bl.c
+++ b/drivers/video/backlight/da903x_bl.c
@@ -88,6 +88,9 @@ static int da903x_backlight_update_status(struct
if (bl->props.fb_blank != FB_BLANK_UNBLANK)
brightness = 0;
+ if (bl->props.state & BL_CORE_SUSPENDED)
+ brightness = 0;
+
return da903x_backlight_set(bl, brightness);
}
@@ -100,6 +103,7 @@ static int da903x_backlight_get_brightness(struct
static const struct backlight_ops da903x_backlight_ops = {
.update_status = da903x_backlight_update_status,
.get_brightness = da903x_backlight_get_brightness,
+ .options = BL_CORE_SUSPENDRESUME,
};
static int da903x_backlight_probe(struct platform_device *pdev)
@@ -161,35 +165,10 @@ static int da903x_backlight_remove(struct
return 0;
}
-#ifdef CONFIG_PM
-static int da903x_backlight_suspend(struct device *dev)
-{
- struct backlight_device *bl = dev_get_drvdata(dev);
-
- return da903x_backlight_set(bl, 0);
-}
-
-static int da903x_backlight_resume(struct device *dev)
-{
- struct backlight_device *bl = dev_get_drvdata(dev);
-
- backlight_update_status(bl);
- return 0;
-}
-
-static const struct dev_pm_ops da903x_backlight_pm_ops = {
- .suspend = da903x_backlight_suspend,
- .resume = da903x_backlight_resume,
-};
-#endif
-
static struct platform_driver da903x_backlight_driver = {
.driver = {
.name = "da903x-backlight",
.owner = THIS_MODULE,
-#ifdef CONFIG_PM
- .pm = &da903x_backlight_pm_ops,
-#endif
},
.probe = da903x_backlight_probe,
.remove = da903x_backlight_remove,
^ permalink raw reply related [flat|nested] 4+ messages in thread* Re: [PATCH] backlight: da903x_bl: switch to using SIMPLE_DEV_PM_OPS
2013-03-12 19:02 ` Lars-Peter Clausen
@ 2013-03-13 0:33 ` Jingoo Han
0 siblings, 0 replies; 4+ messages in thread
From: Jingoo Han @ 2013-03-13 0:33 UTC (permalink / raw)
To: 'Lars-Peter Clausen'
Cc: 'Andrew Morton', 'LKML', 'Richard Purdie',
'Jingoo Han'
On Wednesday, March 13, 2013 4:03 AM, Lars-Peter Clausen wrote:
>
> On 03/12/2013 06:48 AM, Jingoo Han wrote:
> > This reduces #ifdefs in the code. Also, CONFIG_PM_SLEEP is used
> > to avoid warnings of unused functions if CONFIG_PM_SLEEP is not
> > defined.
> >
> > Signed-off-by: Jingoo Han <jg1.han@samsung.com>
>
> I think you can eliminate the suspend/resume functions all together by using
> the blacklight subsystems CORE_SUSPENDRESUME feature.
Hi Lars-Peter Clausen,
Yes, you're right.
I will use CORE_SUSPENDRESUME feature.
Thank you for your comment :)
Best regards,
Jingoo Han
>
> E.g.
>
> diff --git a/drivers/video/backlight/da903x_bl.c
> b/drivers/video/backlight/da903x_bl.c
> index 8179cef..80ba6b3 100644
> --- a/drivers/video/backlight/da903x_bl.c
> +++ b/drivers/video/backlight/da903x_bl.c
> @@ -88,6 +88,9 @@ static int da903x_backlight_update_status(struct
> if (bl->props.fb_blank != FB_BLANK_UNBLANK)
> brightness = 0;
>
> + if (bl->props.state & BL_CORE_SUSPENDED)
> + brightness = 0;
> +
> return da903x_backlight_set(bl, brightness);
> }
>
> @@ -100,6 +103,7 @@ static int da903x_backlight_get_brightness(struct
> static const struct backlight_ops da903x_backlight_ops = {
> .update_status = da903x_backlight_update_status,
> .get_brightness = da903x_backlight_get_brightness,
> + .options = BL_CORE_SUSPENDRESUME,
> };
>
> static int da903x_backlight_probe(struct platform_device *pdev)
> @@ -161,35 +165,10 @@ static int da903x_backlight_remove(struct
> return 0;
> }
>
> -#ifdef CONFIG_PM
> -static int da903x_backlight_suspend(struct device *dev)
> -{
> - struct backlight_device *bl = dev_get_drvdata(dev);
> -
> - return da903x_backlight_set(bl, 0);
> -}
> -
> -static int da903x_backlight_resume(struct device *dev)
> -{
> - struct backlight_device *bl = dev_get_drvdata(dev);
> -
> - backlight_update_status(bl);
> - return 0;
> -}
> -
> -static const struct dev_pm_ops da903x_backlight_pm_ops = {
> - .suspend = da903x_backlight_suspend,
> - .resume = da903x_backlight_resume,
> -};
> -#endif
> -
> static struct platform_driver da903x_backlight_driver = {
> .driver = {
> .name = "da903x-backlight",
> .owner = THIS_MODULE,
> -#ifdef CONFIG_PM
> - .pm = &da903x_backlight_pm_ops,
> -#endif
> },
> .probe = da903x_backlight_probe,
> .remove = da903x_backlight_remove,
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH] backlight: da903x_bl: use BL_CORE_SUSPENDRESUME option
2013-03-12 5:48 [PATCH] backlight: da903x_bl: switch to using SIMPLE_DEV_PM_OPS Jingoo Han
2013-03-12 19:02 ` Lars-Peter Clausen
@ 2013-03-13 0:51 ` Jingoo Han
1 sibling, 0 replies; 4+ messages in thread
From: Jingoo Han @ 2013-03-13 0:51 UTC (permalink / raw)
To: 'Andrew Morton'
Cc: 'LKML', 'Richard Purdie',
'Lars-Peter Clausen', 'Jingoo Han'
Use BL_CORE_SUSPENDRESUME option to support suspend/resume.
It reduces code size.
Signed-off-by: Jingoo Han <jg1.han@samsung.com>
Cc: Lars-Peter Clausen <lars@metafoo.de>
---
drivers/video/backlight/da903x_bl.c | 30 +++++-------------------------
1 files changed, 5 insertions(+), 25 deletions(-)
diff --git a/drivers/video/backlight/da903x_bl.c b/drivers/video/backlight/da903x_bl.c
index 8179cef..67cadd3 100644
--- a/drivers/video/backlight/da903x_bl.c
+++ b/drivers/video/backlight/da903x_bl.c
@@ -88,16 +88,21 @@ static int da903x_backlight_update_status(struct backlight_device *bl)
if (bl->props.fb_blank != FB_BLANK_UNBLANK)
brightness = 0;
+ if (bl->props.state & BL_CORE_SUSPENDED)
+ brightness = 0;
+
return da903x_backlight_set(bl, brightness);
}
static int da903x_backlight_get_brightness(struct backlight_device *bl)
{
struct da903x_backlight_data *data = bl_get_data(bl);
+
return data->current_brightness;
}
static const struct backlight_ops da903x_backlight_ops = {
+ .options = BL_CORE_SUSPENDRESUME,
.update_status = da903x_backlight_update_status,
.get_brightness = da903x_backlight_get_brightness,
};
@@ -161,35 +166,10 @@ static int da903x_backlight_remove(struct platform_device *pdev)
return 0;
}
-#ifdef CONFIG_PM
-static int da903x_backlight_suspend(struct device *dev)
-{
- struct backlight_device *bl = dev_get_drvdata(dev);
-
- return da903x_backlight_set(bl, 0);
-}
-
-static int da903x_backlight_resume(struct device *dev)
-{
- struct backlight_device *bl = dev_get_drvdata(dev);
-
- backlight_update_status(bl);
- return 0;
-}
-
-static const struct dev_pm_ops da903x_backlight_pm_ops = {
- .suspend = da903x_backlight_suspend,
- .resume = da903x_backlight_resume,
-};
-#endif
-
static struct platform_driver da903x_backlight_driver = {
.driver = {
.name = "da903x-backlight",
.owner = THIS_MODULE,
-#ifdef CONFIG_PM
- .pm = &da903x_backlight_pm_ops,
-#endif
},
.probe = da903x_backlight_probe,
.remove = da903x_backlight_remove,
--
1.7.2.5
^ permalink raw reply related [flat|nested] 4+ messages in thread
end of thread, other threads:[~2013-03-13 0:51 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-03-12 5:48 [PATCH] backlight: da903x_bl: switch to using SIMPLE_DEV_PM_OPS Jingoo Han
2013-03-12 19:02 ` Lars-Peter Clausen
2013-03-13 0:33 ` Jingoo Han
2013-03-13 0:51 ` [PATCH] backlight: da903x_bl: use BL_CORE_SUSPENDRESUME option Jingoo Han
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).