linux-i2c.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Lee Jones <lee.jones-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
To: linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org
Cc: arnd-r2nGTMty4D4@public.gmane.org,
	linus.walleij-0IS4wlFg1OjSUeElwK9/Pw@public.gmane.org,
	grant.likely-s3s/WqlpOiPyB63q8FvJNQ@public.gmane.org,
	cjb-2X9k7bc8m7Mdnm+yROfE0A@public.gmane.org,
	ben-linux-elnMNo+KYs3YtjvyW6yDsg@public.gmane.org,
	linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	broonie-yzvPICuk2AATkU/dhu1WVueM+bqZidxxQQ4Iyu8u01E@public.gmane.org,
	sameo-VuQAYsv1563Yd54FQh9/CA@public.gmane.org,
	Lee Jones <lee.jones-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
Subject: [PATCH 07/15] drivers/power: Carry out platform_data error checking on ab8500 devices
Date: Fri,  4 May 2012 19:23:17 +0100	[thread overview]
Message-ID: <1336155805-18554-8-git-send-email-lee.jones@linaro.org> (raw)
In-Reply-To: <1336155805-18554-1-git-send-email-lee.jones-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>

In their current state the ab8500 power devices explode if platform data
isn't provided. This patch prevents this from happening and informs the
user of what has happened.

Signed-off-by: Lee Jones <lee.jones-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
---
 drivers/power/ab8500_btemp.c   |   12 ++++++++----
 drivers/power/ab8500_charger.c |   12 ++++++++----
 drivers/power/ab8500_fg.c      |   12 ++++++++----
 3 files changed, 24 insertions(+), 12 deletions(-)

diff --git a/drivers/power/ab8500_btemp.c b/drivers/power/ab8500_btemp.c
index d8bb993..a2ebcb4 100644
--- a/drivers/power/ab8500_btemp.c
+++ b/drivers/power/ab8500_btemp.c
@@ -964,10 +964,15 @@ static int __devinit ab8500_btemp_probe(struct platform_device *pdev)
 {
 	int irq, i, ret = 0;
 	u8 val;
-	struct abx500_bm_plat_data *plat_data;
+	struct abx500_bm_plat_data *plat_data = pdev->dev.platform_data;
+	struct ab8500_btemp *di;
+
+	if (!plat_data) {
+		dev_err(&pdev->dev, "No platform data\n");
+		return -EINVAL;
+	}
 
-	struct ab8500_btemp *di =
-		kzalloc(sizeof(struct ab8500_btemp), GFP_KERNEL);
+	di = kzalloc(sizeof(struct ab8500_btemp), GFP_KERNEL);
 	if (!di)
 		return -ENOMEM;
 
@@ -977,7 +982,6 @@ static int __devinit ab8500_btemp_probe(struct platform_device *pdev)
 	di->gpadc = ab8500_gpadc_get("ab8500-gpadc.0");
 
 	/* get btemp specific platform data */
-	plat_data = pdev->dev.platform_data;
 	di->pdata = plat_data->btemp;
 	if (!di->pdata) {
 		dev_err(di->dev, "no btemp platform data supplied\n");
diff --git a/drivers/power/ab8500_charger.c b/drivers/power/ab8500_charger.c
index e2b4acc..a4e37a8 100644
--- a/drivers/power/ab8500_charger.c
+++ b/drivers/power/ab8500_charger.c
@@ -2534,10 +2534,15 @@ static int __devexit ab8500_charger_remove(struct platform_device *pdev)
 static int __devinit ab8500_charger_probe(struct platform_device *pdev)
 {
 	int irq, i, charger_status, ret = 0;
-	struct abx500_bm_plat_data *plat_data;
+	struct abx500_bm_plat_data *plat_data = pdev->dev.platform_data;
+	struct ab8500_charger *di;
 
-	struct ab8500_charger *di =
-		kzalloc(sizeof(struct ab8500_charger), GFP_KERNEL);
+	if (!plat_data) {
+		dev_err(&pdev->dev, "No platform data\n");
+		return -EINVAL;
+	}
+
+	di = kzalloc(sizeof(struct ab8500_charger), GFP_KERNEL);
 	if (!di)
 		return -ENOMEM;
 
@@ -2550,7 +2555,6 @@ static int __devinit ab8500_charger_probe(struct platform_device *pdev)
 	spin_lock_init(&di->usb_state.usb_lock);
 
 	/* get charger specific platform data */
-	plat_data = pdev->dev.platform_data;
 	di->pdata = plat_data->charger;
 
 	if (!di->pdata) {
diff --git a/drivers/power/ab8500_fg.c b/drivers/power/ab8500_fg.c
index c22f2f0..d88bc47 100644
--- a/drivers/power/ab8500_fg.c
+++ b/drivers/power/ab8500_fg.c
@@ -2446,10 +2446,15 @@ static int __devinit ab8500_fg_probe(struct platform_device *pdev)
 {
 	int i, irq;
 	int ret = 0;
-	struct abx500_bm_plat_data *plat_data;
+	struct abx500_bm_plat_data *plat_data = pdev->dev.platform_data;
+	struct ab8500_fg *di;
+
+	if (!plat_data) {
+		dev_err(&pdev->dev, "No platform data\n");
+		return -EINVAL;
+	}
 
-	struct ab8500_fg *di =
-		kzalloc(sizeof(struct ab8500_fg), GFP_KERNEL);
+	di = kzalloc(sizeof(struct ab8500_fg), GFP_KERNEL);
 	if (!di)
 		return -ENOMEM;
 
@@ -2461,7 +2466,6 @@ static int __devinit ab8500_fg_probe(struct platform_device *pdev)
 	di->gpadc = ab8500_gpadc_get("ab8500-gpadc.0");
 
 	/* get fg specific platform data */
-	plat_data = pdev->dev.platform_data;
 	di->pdata = plat_data->fg;
 	if (!di->pdata) {
 		dev_err(di->dev, "no fg platform data supplied\n");
-- 
1.7.9.5

  parent reply	other threads:[~2012-05-04 18:23 UTC|newest]

Thread overview: 75+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-05-04 18:23 [PATCH 00/15] DT enablement for Snowball Lee Jones
     [not found] ` <1336155805-18554-1-git-send-email-lee.jones-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2012-05-04 18:23   ` [PATCH 01/15] i2c/busses: Add Device Tree support to the Nomadik I2C driver Lee Jones
     [not found]     ` <1336155805-18554-2-git-send-email-lee.jones-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2012-05-04 20:02       ` Arnd Bergmann
     [not found]         ` <201205042002.20943.arnd-r2nGTMty4D4@public.gmane.org>
2012-05-04 21:27           ` Lee Jones
2012-05-05  6:17           ` Lee Jones
     [not found]             ` <4FA4C5EA.7030006-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2012-05-09  8:42               ` Linus Walleij
2012-05-04 18:23   ` [PATCH 02/15] ARM: ux500: Remove unused i2c platform_data initialisation code Lee Jones
     [not found]     ` <1336155805-18554-3-git-send-email-lee.jones-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2012-05-09  8:46       ` Linus Walleij
     [not found]         ` <CACRpkdZ70FasMuTTgBe68xaePB-4UNZ0W44BCxDve7fqXYT+vg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-05-09 10:22           ` Lee Jones
     [not found]             ` <4FAA4576.1020106-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2012-05-10 11:24               ` Linus Walleij
2012-05-04 18:23   ` [PATCH 03/15] ARM: ux500: Provide auxdata to be used as name base clock search for nmk-i2c Lee Jones
     [not found]     ` <1336155805-18554-4-git-send-email-lee.jones-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2012-05-09  8:48       ` Linus Walleij
2012-05-04 18:23   ` [PATCH 04/15] ARM: ux500: CONFIG: Compile in support for leds-gpio Lee Jones
     [not found]     ` <1336155805-18554-5-git-send-email-lee.jones-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2012-05-09  8:49       ` Linus Walleij
     [not found]         ` <CACRpkdbv780oUaDL1-m4kj5iRr5=1U6QhE975Z4gNADoTNk8YA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-05-09 10:23           ` Lee Jones
     [not found]             ` <4FAA45B5.2030000-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2012-05-10 11:25               ` Linus Walleij
2012-05-04 18:23   ` [PATCH 05/15] ARM: ux500: Enable the user LED on Snowball via Device Tree Lee Jones
     [not found]     ` <1336155805-18554-6-git-send-email-lee.jones-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2012-05-09  8:50       ` Linus Walleij
2012-05-04 18:23   ` [PATCH 06/15] mfd/ab8500: Remove confusing ab8500-i2c file and merge into ab8500-core Lee Jones
     [not found]     ` <1336155805-18554-7-git-send-email-lee.jones-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2012-05-04 20:25       ` Arnd Bergmann
     [not found]         ` <201205042025.15421.arnd-r2nGTMty4D4@public.gmane.org>
2012-05-04 21:24           ` Lee Jones
2012-05-05  6:30             ` Lee Jones
2012-05-07 16:54       ` Mark Brown
2012-05-09 12:20       ` Linus Walleij
     [not found]         ` <CACRpkdanG7KgYuZw29KwZe7wRp-AVZJ9n_hwBEZzf5gDAbGneg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-05-14  8:41           ` Lee Jones
     [not found]             ` <4FB0C52E.9030109-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2012-05-14  9:11               ` Linus Walleij
2012-05-04 18:23   ` Lee Jones [this message]
     [not found]     ` <1336155805-18554-8-git-send-email-lee.jones-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2012-05-09  8:51       ` [PATCH 07/15] drivers/power: Carry out platform_data error checking on ab8500 devices Linus Walleij
     [not found]         ` <CACRpkdYkqj6Zr=05Byk+tPc1ohjfDoZKCkTmu9zcZpgKxV8wpg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-05-09 10:24           ` Lee Jones
2012-05-04 18:23   ` [PATCH 08/15] ARM: ux500: PRCMU related configuration and layout corrections for Device Tree Lee Jones
     [not found]     ` <1336155805-18554-9-git-send-email-lee.jones-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2012-05-09  8:53       ` Linus Walleij
     [not found]         ` <CACRpkdanU4eWhRobxzBV1mcU5T6QLCrWfBAczRFtn6gguhRNng-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-05-09 10:27           ` Lee Jones
     [not found]             ` <4FAA469B.2030200-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2012-05-10 11:27               ` Linus Walleij
2012-05-04 18:23   ` [PATCH 09/15] drivers/mfd: Enable Device Tree support for the db8500-prcmu Lee Jones
     [not found]     ` <1336155805-18554-10-git-send-email-lee.jones-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2012-05-09  8:56       ` Linus Walleij
2012-05-09 14:30       ` Samuel Ortiz
2012-05-04 18:23   ` [PATCH 10/15] drivers/mfd: db8500-prcmu: Add support for regulator supply for nmk-i2c.4 Lee Jones
     [not found]     ` <1336155805-18554-11-git-send-email-lee.jones-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2012-05-09  8:56       ` Linus Walleij
2012-05-09 14:31       ` Samuel Ortiz
2012-05-04 18:23   ` [PATCH 11/15] drivers/mfd: Enable Device Tree for ab8500-core driver Lee Jones
     [not found]     ` <1336155805-18554-12-git-send-email-lee.jones-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2012-05-09  9:02       ` Linus Walleij
     [not found]         ` <CACRpkdaju5y6pduWrkH97LujzqJu5hAaGozyHY3Rsvvn7ZyKhA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-05-09 10:28           ` Lee Jones
     [not found]             ` <4FAA46E1.4050708-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2012-05-09 11:18               ` Mark Brown
2012-05-09 11:56           ` Arnd Bergmann
2012-05-10 10:26           ` Russell King - ARM Linux
     [not found]             ` <20120510102657.GD3190-l+eeeJia6m9vn6HldHNs0ANdhmdF6hFW@public.gmane.org>
2012-05-10 12:27               ` Linus Walleij
2012-05-11 10:12       ` Samuel Ortiz
2012-05-14  8:45         ` Lee Jones
2012-05-04 18:23   ` [PATCH 12/15] drivers/regulator: ab8500: Split up probe() into manageable pieces Lee Jones
     [not found]     ` <1336155805-18554-13-git-send-email-lee.jones-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2012-05-07 16:58       ` Mark Brown
     [not found]         ` <CAF2Aj3h7pgh=Kbt+M5Xd_RDRbJN7K+WbaH1+8nM2Eakb1QNpsg@mail.gmail.com>
     [not found]           ` <CAF2Aj3h7pgh=Kbt+M5Xd_RDRbJN7K+WbaH1+8nM2Eakb1QNpsg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-05-07 18:44             ` Mark Brown
     [not found]               ` <20120507184453.GQ17002-yzvPICuk2AATkU/dhu1WVueM+bqZidxxQQ4Iyu8u01E@public.gmane.org>
2012-05-08 11:08                 ` Lee Jones
2012-05-04 18:23   ` [PATCH 13/15] ARM: ux500: Add support for ab8500 regulators into the Device Tree Lee Jones
     [not found]     ` <1336155805-18554-14-git-send-email-lee.jones-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2012-05-09  9:04       ` Linus Walleij
2012-05-04 18:23   ` [PATCH 14/15] drivers/regulators: Enable the ab8500 for " Lee Jones
     [not found]     ` <1336155805-18554-15-git-send-email-lee.jones-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2012-05-07 17:08       ` Mark Brown
     [not found]         ` <20120507170832.GO17002-yzvPICuk2AATkU/dhu1WVueM+bqZidxxQQ4Iyu8u01E@public.gmane.org>
2012-05-08 12:04           ` Lee Jones
     [not found]             ` <4FA90BE1.3050304-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2012-05-08 12:19               ` Mark Brown
     [not found]                 ` <20120508121940.GL15893-yzvPICuk2AATkU/dhu1WVueM+bqZidxxQQ4Iyu8u01E@public.gmane.org>
2012-05-08 12:38                   ` Lee Jones
     [not found]                     ` <4FA913BA.30908-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2012-05-08 13:34                       ` Mark Brown
     [not found]                         ` <20120508133411.GP15893-yzvPICuk2AATkU/dhu1WVueM+bqZidxxQQ4Iyu8u01E@public.gmane.org>
2012-05-08 14:54                           ` Lee Jones
     [not found]                             ` <4FA93391.8040905-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2012-05-08 14:57                               ` Mark Brown
     [not found]                                 ` <20120508145758.GV15893-yzvPICuk2AATkU/dhu1WVueM+bqZidxxQQ4Iyu8u01E@public.gmane.org>
2012-05-08 17:00                                   ` Lee Jones
2012-05-08 13:48                       ` Arnd Bergmann
     [not found]                         ` <201205081348.14269.arnd-r2nGTMty4D4@public.gmane.org>
2012-05-08 14:29                           ` Mark Brown
     [not found]                             ` <20120508142926.GT15893-yzvPICuk2AATkU/dhu1WVueM+bqZidxxQQ4Iyu8u01E@public.gmane.org>
2012-05-08 14:36                               ` Arnd Bergmann
     [not found]                                 ` <201205081436.46471.arnd-r2nGTMty4D4@public.gmane.org>
2012-05-08 14:44                                   ` Mark Brown
2012-05-14 15:49           ` Lee Jones
     [not found]             ` <4FB12981.8050603-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2012-05-14 16:18               ` Arnd Bergmann
2012-05-14 17:01               ` Mark Brown
2012-05-14 15:57           ` Lee Jones
     [not found]             ` <4FB12B73.50302-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2012-05-14 16:39               ` Mark Brown
2012-05-04 18:23   ` [PATCH 15/15] ARM: ux500: Disable platform setup of the ab8500 when DT is enabled Lee Jones
     [not found]     ` <1336155805-18554-16-git-send-email-lee.jones-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2012-05-09  9:05       ` Linus Walleij
2012-05-04 20:26   ` [PATCH 00/15] DT enablement for Snowball Arnd Bergmann

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=1336155805-18554-8-git-send-email-lee.jones@linaro.org \
    --to=lee.jones-qsej5fyqhm4dnm+yrofe0a@public.gmane.org \
    --cc=arnd-r2nGTMty4D4@public.gmane.org \
    --cc=ben-linux-elnMNo+KYs3YtjvyW6yDsg@public.gmane.org \
    --cc=broonie-yzvPICuk2AATkU/dhu1WVueM+bqZidxxQQ4Iyu8u01E@public.gmane.org \
    --cc=cjb-2X9k7bc8m7Mdnm+yROfE0A@public.gmane.org \
    --cc=grant.likely-s3s/WqlpOiPyB63q8FvJNQ@public.gmane.org \
    --cc=linus.walleij-0IS4wlFg1OjSUeElwK9/Pw@public.gmane.org \
    --cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
    --cc=linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=sameo-VuQAYsv1563Yd54FQh9/CA@public.gmane.org \
    /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;
as well as URLs for NNTP newsgroup(s).