RE: [PATCH 2/7] i2c-bfin-twi: Use struct dev_pm_ops for power management

2012-07-11 Thread Zhang, Sonic
Acked-by: Sonic Zhang 

>-Original Message-
>From: Rafael J. Wysocki [mailto:r...@sisk.pl]
>Sent: Thursday, July 12, 2012 3:24 AM
>To: LKML
>Cc: Linux PM list; Linus Walleij; linux-...@vger.kernel.org; Zhang, Sonic; Jean
>Delvare; Ben Dooks; Wolfram Sang; Peter Korsgaard; Guan Xuetao; Vitaly Wool;
>Colin Cross; Stephen Warren
>Subject: [PATCH 2/7] i2c-bfin-twi: Use struct dev_pm_ops for power management
>
>From: Rafael J. Wysocki 
>
>Make the Blackfin On-Chip Two Wire Interface driver define its PM
>callbacks through a struct dev_pm_ops object rather than by using
>legacy PM hooks in struct platform_driver.
>
>Signed-off-by: Rafael J. Wysocki 
>---
> drivers/i2c/busses/i2c-bfin-twi.c |   18 ++
> 1 file changed, 10 insertions(+), 8 deletions(-)
>
>Index: linux/drivers/i2c/busses/i2c-bfin-twi.c
>=
>==
>--- linux.orig/drivers/i2c/busses/i2c-bfin-twi.c
>+++ linux/drivers/i2c/busses/i2c-bfin-twi.c
>@@ -611,9 +611,9 @@ static struct i2c_algorithm bfin_twi_alg
>   .functionality = bfin_twi_functionality,
> };
>
>-static int i2c_bfin_twi_suspend(struct platform_device *pdev, pm_message_t
>state)
>+static int i2c_bfin_twi_suspend(struct device *dev)
> {
>-  struct bfin_twi_iface *iface = platform_get_drvdata(pdev);
>+  struct bfin_twi_iface *iface = dev_get_drvdata(dev);
>
>   iface->saved_clkdiv = read_CLKDIV(iface);
>   iface->saved_control = read_CONTROL(iface);
>@@ -626,14 +626,14 @@ static int i2c_bfin_twi_suspend(struct p
>   return 0;
> }
>
>-static int i2c_bfin_twi_resume(struct platform_device *pdev)
>+static int i2c_bfin_twi_resume(struct device *dev)
> {
>-  struct bfin_twi_iface *iface = platform_get_drvdata(pdev);
>+  struct bfin_twi_iface *iface = dev_get_drvdata(dev);
>
>   int rc = request_irq(iface->irq, bfin_twi_interrupt_entry,
>-  0, pdev->name, iface);
>+  0, to_platform_device(dev)->name, iface);
>   if (rc) {
>-  dev_err(>dev, "Can't get IRQ %d !\n", iface->irq);
>+  dev_err(dev, "Can't get IRQ %d !\n", iface->irq);
>   return -ENODEV;
>   }
>
>@@ -646,6 +646,9 @@ static int i2c_bfin_twi_resume(struct pl
>   return 0;
> }
>
>+static SIMPLE_DEV_PM_OPS(i2c_bfin_twi_pm,
>+   i2c_bfin_twi_suspend, i2c_bfin_twi_resume);
>+
> static int i2c_bfin_twi_probe(struct platform_device *pdev)
> {
>   struct bfin_twi_iface *iface;
>@@ -770,11 +773,10 @@ static int i2c_bfin_twi_remove(struct pl
> static struct platform_driver i2c_bfin_twi_driver = {
>   .probe  = i2c_bfin_twi_probe,
>   .remove = i2c_bfin_twi_remove,
>-  .suspend= i2c_bfin_twi_suspend,
>-  .resume = i2c_bfin_twi_resume,
>   .driver = {
>   .name   = "i2c-bfin-twi",
>   .owner  = THIS_MODULE,
>+  .pm = _bfin_twi_pm,
>   },
> };
>
>

N�r��yb�X��ǧv�^�)޺{.n�+{zX����ܨ}���Ơz�:+v���zZ+��+zf���h���~i���z��w���?�&�)ߢf��^jǫy�m��@A�a���
0��h���i

RE: [PATCH 2/7] i2c-bfin-twi: Use struct dev_pm_ops for power management

2012-07-11 Thread Zhang, Sonic
Acked-by: Sonic Zhang sonic.zh...@analog.com

-Original Message-
From: Rafael J. Wysocki [mailto:r...@sisk.pl]
Sent: Thursday, July 12, 2012 3:24 AM
To: LKML
Cc: Linux PM list; Linus Walleij; linux-...@vger.kernel.org; Zhang, Sonic; Jean
Delvare; Ben Dooks; Wolfram Sang; Peter Korsgaard; Guan Xuetao; Vitaly Wool;
Colin Cross; Stephen Warren
Subject: [PATCH 2/7] i2c-bfin-twi: Use struct dev_pm_ops for power management

From: Rafael J. Wysocki r...@sisk.pl

Make the Blackfin On-Chip Two Wire Interface driver define its PM
callbacks through a struct dev_pm_ops object rather than by using
legacy PM hooks in struct platform_driver.

Signed-off-by: Rafael J. Wysocki r...@sisk.pl
---
 drivers/i2c/busses/i2c-bfin-twi.c |   18 ++
 1 file changed, 10 insertions(+), 8 deletions(-)

Index: linux/drivers/i2c/busses/i2c-bfin-twi.c
=
==
--- linux.orig/drivers/i2c/busses/i2c-bfin-twi.c
+++ linux/drivers/i2c/busses/i2c-bfin-twi.c
@@ -611,9 +611,9 @@ static struct i2c_algorithm bfin_twi_alg
   .functionality = bfin_twi_functionality,
 };

-static int i2c_bfin_twi_suspend(struct platform_device *pdev, pm_message_t
state)
+static int i2c_bfin_twi_suspend(struct device *dev)
 {
-  struct bfin_twi_iface *iface = platform_get_drvdata(pdev);
+  struct bfin_twi_iface *iface = dev_get_drvdata(dev);

   iface-saved_clkdiv = read_CLKDIV(iface);
   iface-saved_control = read_CONTROL(iface);
@@ -626,14 +626,14 @@ static int i2c_bfin_twi_suspend(struct p
   return 0;
 }

-static int i2c_bfin_twi_resume(struct platform_device *pdev)
+static int i2c_bfin_twi_resume(struct device *dev)
 {
-  struct bfin_twi_iface *iface = platform_get_drvdata(pdev);
+  struct bfin_twi_iface *iface = dev_get_drvdata(dev);

   int rc = request_irq(iface-irq, bfin_twi_interrupt_entry,
-  0, pdev-name, iface);
+  0, to_platform_device(dev)-name, iface);
   if (rc) {
-  dev_err(pdev-dev, Can't get IRQ %d !\n, iface-irq);
+  dev_err(dev, Can't get IRQ %d !\n, iface-irq);
   return -ENODEV;
   }

@@ -646,6 +646,9 @@ static int i2c_bfin_twi_resume(struct pl
   return 0;
 }

+static SIMPLE_DEV_PM_OPS(i2c_bfin_twi_pm,
+   i2c_bfin_twi_suspend, i2c_bfin_twi_resume);
+
 static int i2c_bfin_twi_probe(struct platform_device *pdev)
 {
   struct bfin_twi_iface *iface;
@@ -770,11 +773,10 @@ static int i2c_bfin_twi_remove(struct pl
 static struct platform_driver i2c_bfin_twi_driver = {
   .probe  = i2c_bfin_twi_probe,
   .remove = i2c_bfin_twi_remove,
-  .suspend= i2c_bfin_twi_suspend,
-  .resume = i2c_bfin_twi_resume,
   .driver = {
   .name   = i2c-bfin-twi,
   .owner  = THIS_MODULE,
+  .pm = i2c_bfin_twi_pm,
   },
 };



N�r��yb�X��ǧv�^�)޺{.n�+{zX����ܨ}���Ơz�j:+v���zZ+��+zf���h���~i���z��w���?��)ߢf��^jǫy�m��@A�a���
0��h���i