* [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 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.