Thread (8 messages) 8 messages, 2 authors, 2014-02-13

Re: [PATCH 3/4] input: sirfsoc-onkey - use dev_get_drvdata instead of platform_get_drvdata

flat view

From: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Date: 2014-02-13 16:39:28

On Thu, Feb 13, 2014 at 03:47:33PM +0800, Barry Song wrote:
2014-02-13 15:24 GMT+08:00 Dmitry Torokhov [off-list ref]:
quoted
On Thu, Feb 13, 2014 at 02:40:23PM +0800, Barry Song wrote:
quoted
From: Xianglong Du <redacted>

In resume entry, use dev_get_drvdata() instead of to_platform_device(dev) +
platform_get_drvdata(pdev).

Signed-off-by: Xianglong Du <redacted>
Signed-off-by: Barry Song <redacted>
---
 drivers/input/misc/sirfsoc-onkey.c |    3 +--
 1 files changed, 1 insertions(+), 2 deletions(-)
diff --git a/drivers/input/misc/sirfsoc-onkey.c b/drivers/input/misc/sirfsoc-onkey.c
index 097c10a..8e45bf11 100644
--- a/drivers/input/misc/sirfsoc-onkey.c
+++ b/drivers/input/misc/sirfsoc-onkey.c
@@ -157,8 +157,7 @@ static int sirfsoc_pwrc_remove(struct platform_device *pdev)
 #ifdef CONFIG_PM_SLEEP
 static int sirfsoc_pwrc_resume(struct device *dev)
 {
-     struct platform_device *pdev = to_platform_device(dev);
-     struct sirfsoc_pwrc_drvdata *pwrcdrv = platform_get_drvdata(pdev);
+     struct sirfsoc_pwrc_drvdata *pwrcdrv = dev_get_drvdata(dev);
I believe we should use accessors matching the object type. Currently
dev_get_drvdata and platform_get_drvdata return the same object, but
they do not have to.

IOW I prefer the original code.
i did see many commits in kernel which did same jobs with this one. e.g:
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=a1216394e620d0dfbb03c712ae3210e7b77c9e11
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=bab8b563ef08455440badca7fe79b2c700bd1b75
...

in my understand, the changed context is a general pm_ops to general
"driver" and not a legacy suspend/resume in "platform_driver" bound
with pdev, so in the context, we are caring about "device" more than
"pdev".
It is more about who owns the data - generic device or platform device?
how do you think if i do a more change in probe() with this by:

- platform_set_drvdata(pdev, pwrcdrv);
+ dev_set_drvdata(&pdev->dev, pwrcdrv);

would this make everything look fine?
Yes, it would, since we would now know that it is generic driver layer
that has ownership of this data item.

Thanks.

-- 
Dmitry
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help