mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Paul Fertser <fercerpav@gmail.com>
To: Samuel Ortiz <sameo@linux.intel.com>
Cc: linux-kernel@vger.kernel.org,
	Nelson Castillo <arhuaco@freaks-unidos.net>,
	Lars-Peter Clausen <lars@metafoo.de>,
	Paul Fertser <fercerpav@gmail.com>
Subject: [PATCH 7/7] mfd: pcf50633: Fix pcf50633-regulator drvdata usage
Date: Wed, 14 Oct 2009 02:12:36 +0400	[thread overview]
Message-ID: <1255471956-29201-7-git-send-email-fercerpav@gmail.com> (raw)
In-Reply-To: <1255471956-29201-6-git-send-email-fercerpav@gmail.com>

From: Lars-Peter Clausen <lars@metafoo.de>

Currently the pcf50633-regulator driver data is set to the pcf50633 core
structure, but the pcf50633-regulator remove handler assumes that it is set to
the regulator device. This patch fixes the issue by accessing the pcf506533
core structure through its parent device and setting the driver data to the
regulator device.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Paul Fertser <fercerpav@gmail.com>
---
 drivers/mfd/pcf50633-core.c            |    1 -
 drivers/regulator/pcf50633-regulator.c |    5 ++++-
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/mfd/pcf50633-core.c b/drivers/mfd/pcf50633-core.c
index 4604ba5..a86b0c6 100644
--- a/drivers/mfd/pcf50633-core.c
+++ b/drivers/mfd/pcf50633-core.c
@@ -632,7 +632,6 @@ static int __devinit pcf50633_probe(struct i2c_client *client,
 		pdev->dev.parent = pcf->dev;
 		platform_device_add_data(pdev, &pdata->reg_init_data[i],
 					sizeof(pdata->reg_init_data[i]));
-		dev_set_drvdata(&pdev->dev, pcf);
 		pcf->regulator_pdev[i] = pdev;
 
 		platform_device_add(pdev);
diff --git a/drivers/regulator/pcf50633-regulator.c b/drivers/regulator/pcf50633-regulator.c
index 0803ffe..c8f41dc 100644
--- a/drivers/regulator/pcf50633-regulator.c
+++ b/drivers/regulator/pcf50633-regulator.c
@@ -314,13 +314,15 @@ static int __devinit pcf50633_regulator_probe(struct platform_device *pdev)
 	struct pcf50633 *pcf;
 
 	/* Already set by core driver */
-	pcf = platform_get_drvdata(pdev);
+	pcf = dev_to_pcf50633(pdev->dev.parent);
 
 	rdev = regulator_register(&regulators[pdev->id], &pdev->dev,
 				  pdev->dev.platform_data, pcf);
 	if (IS_ERR(rdev))
 		return PTR_ERR(rdev);
 
+	platform_set_drvdata(pdev, rdev);
+
 	if (pcf->pdata->regulator_registered)
 		pcf->pdata->regulator_registered(pcf, pdev->id);
 
@@ -331,6 +333,7 @@ static int __devexit pcf50633_regulator_remove(struct platform_device *pdev)
 {
 	struct regulator_dev *rdev = platform_get_drvdata(pdev);
 
+	platform_set_drvdata(pdev, NULL);
 	regulator_unregister(rdev);
 
 	return 0;
-- 
1.6.0.6


  reply	other threads:[~2009-10-13 22:14 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-10-13 22:12 [PATCH 1/7] mfd: pcf50633 disable unnecessary shutdown on lowsys Paul Fertser
2009-10-13 22:12 ` [PATCH 2/7] mfd: pcf50633: make suspend/resume belong to i2c_driver Paul Fertser
2009-10-13 22:12   ` [PATCH 3/7] mfd: pcf50633: move messages to appropriate log levels Paul Fertser
2009-10-13 22:12     ` [PATCH 4/7] mfd: pcf50633: Fix memleak in pcf50633_client_dev_register Paul Fertser
2009-10-13 22:12       ` [PATCH 5/7] mfd: pcf50633: Cleanup pcf50633_probe error handling Paul Fertser
2009-10-13 22:12         ` [PATCH 6/7] mfd: pcf50633: Use platform_device_add_data to set regulator platform data Paul Fertser
2009-10-13 22:12           ` Paul Fertser [this message]
2009-10-19 15:08         ` [PATCH 5/7] mfd: pcf50633: Cleanup pcf50633_probe error handling Samuel Ortiz
2009-10-19 23:09           ` Paul Fertser
2009-10-20  9:23             ` Samuel Ortiz
2009-10-19 15:38 ` [PATCH 1/7] mfd: pcf50633 disable unnecessary shutdown on lowsys Samuel Ortiz

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=1255471956-29201-7-git-send-email-fercerpav@gmail.com \
    --to=fercerpav@gmail.com \
    --cc=arhuaco@freaks-unidos.net \
    --cc=lars@metafoo.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=sameo@linux.intel.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®