Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1426281

[PATCH v4 2/7] max8903: store pointer to pdata instead of copying it.

From Chris Lapa <chris@lapa.com.au>
Newsgroups linux.kernel
Subject [PATCH v4 2/7] max8903: store pointer to pdata instead of copying it.
Date 2016-06-20 09:30 +0200
Message-ID <rM1OF-5eM-27@gated-at.bofh.it> (permalink)
References <rFuC5-2sz-13@gated-at.bofh.it> <rM1OF-5eM-3@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


From: Chris Lapa <chris@lapa.com.au>

Stores pointer to pdata because it easily allows pdata to reference
either platform data or in the future device tree data.

Signed-off-by: Chris Lapa <chris@lapa.com.au>
---
 drivers/power/max8903_charger.c | 20 +++++++++++++-------
 1 file changed, 13 insertions(+), 7 deletions(-)

diff --git a/drivers/power/max8903_charger.c b/drivers/power/max8903_charger.c
index 17876ca..0a5b0e1 100644
--- a/drivers/power/max8903_charger.c
+++ b/drivers/power/max8903_charger.c
@@ -29,7 +29,7 @@
 #include <linux/power/max8903_charger.h>
 
 struct max8903_data {
-	struct max8903_pdata pdata;
+	struct max8903_pdata *pdata;
 	struct device *dev;
 	struct power_supply *psy;
 	struct power_supply_desc psy_desc;
@@ -53,8 +53,8 @@ static int max8903_get_property(struct power_supply *psy,
 	switch (psp) {
 	case POWER_SUPPLY_PROP_STATUS:
 		val->intval = POWER_SUPPLY_STATUS_UNKNOWN;
-		if (data->pdata.chg) {
-			if (gpio_get_value(data->pdata.chg) == 0)
+		if (data->pdata->chg) {
+			if (gpio_get_value(data->pdata->chg) == 0)
 				val->intval = POWER_SUPPLY_STATUS_CHARGING;
 			else if (data->usb_in || data->ta_in)
 				val->intval = POWER_SUPPLY_STATUS_NOT_CHARGING;
@@ -81,7 +81,7 @@ static int max8903_get_property(struct power_supply *psy,
 static irqreturn_t max8903_dcin(int irq, void *_data)
 {
 	struct max8903_data *data = _data;
-	struct max8903_pdata *pdata = &data->pdata;
+	struct max8903_pdata *pdata = data->pdata;
 	bool ta_in;
 	enum power_supply_type old_type;
 
@@ -122,7 +122,7 @@ static irqreturn_t max8903_dcin(int irq, void *_data)
 static irqreturn_t max8903_usbin(int irq, void *_data)
 {
 	struct max8903_data *data = _data;
-	struct max8903_pdata *pdata = &data->pdata;
+	struct max8903_pdata *pdata = data->pdata;
 	bool usb_in;
 	enum power_supply_type old_type;
 
@@ -161,7 +161,7 @@ static irqreturn_t max8903_usbin(int irq, void *_data)
 static irqreturn_t max8903_fault(int irq, void *_data)
 {
 	struct max8903_data *data = _data;
-	struct max8903_pdata *pdata = &data->pdata;
+	struct max8903_pdata *pdata = data->pdata;
 	bool fault;
 
 	fault = gpio_get_value(pdata->flt) ? false : true;
@@ -190,12 +190,18 @@ static int max8903_probe(struct platform_device *pdev)
 	int ta_in = 0;
 	int usb_in = 0;
 
+	if (pdata == NULL) {
+		dev_err(dev, "No platform data.\n");
+		return -EINVAL;
+	}
+
 	data = devm_kzalloc(dev, sizeof(struct max8903_data), GFP_KERNEL);
 	if (data == NULL) {
 		dev_err(dev, "Cannot allocate memory.\n");
 		return -ENOMEM;
 	}
-	memcpy(&data->pdata, pdata, sizeof(struct max8903_pdata));
+
+	data->pdata = pdev->dev.platform_data;
 	data->dev = dev;
 	platform_set_drvdata(pdev, data);
 
-- 
1.9.1

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH v4 0/7] max8903: Add device tree support and misc fixes Chris Lapa <chris@lapa.com.au> - 2016-06-20 09:30 +0200
  [PATCH v4 6/7] max8903: remove unnecessary 'out of memory' error message. Chris Lapa <chris@lapa.com.au> - 2016-06-20 09:30 +0200
    Re: [PATCH v4 6/7] max8903: remove unnecessary 'out of memory' error  message. Krzysztof Kozlowski <k.kozlowski@samsung.com> - 2016-06-20 14:30 +0200
  [PATCH v4 4/7] max8903: adds requesting of gpios. Chris Lapa <chris@lapa.com.au> - 2016-06-20 09:30 +0200
    Re: [PATCH v4 4/7] max8903: adds requesting of gpios. Krzysztof Kozlowski <k.kozlowski@samsung.com> - 2016-06-20 14:30 +0200
  [PATCH v4 7/7] max8903: adds support for initiation via device tree Chris Lapa <chris@lapa.com.au> - 2016-06-20 09:30 +0200
    Re: [PATCH v4 7/7] max8903: adds support for initiation via device tree Krzysztof Kozlowski <k.kozlowski@samsung.com> - 2016-06-20 14:30 +0200
  [PATCH v4 2/7] max8903: store pointer to pdata instead of copying it. Chris Lapa <chris@lapa.com.au> - 2016-06-20 09:30 +0200
    Re: [PATCH v4 2/7] max8903: store pointer to pdata instead of copying  it. Krzysztof Kozlowski <k.kozlowski@samsung.com> - 2016-06-20 14:30 +0200
  [PATCH v4 3/7] max8903: cleans up confusing relationship between dc_valid, dok and dcm. Chris Lapa <chris@lapa.com.au> - 2016-06-20 10:10 +0200
    Re: [PATCH v4 3/7] max8903: cleans up confusing relationship between  dc_valid, dok and dcm. Krzysztof Kozlowski <k.kozlowski@samsung.com> - 2016-06-20 14:30 +0200
  [PATCH v4 5/7] max8903: removes non zero validity checks on gpios. Chris Lapa <chris@lapa.com.au> - 2016-06-20 10:10 +0200
    Re: [PATCH v4 5/7] max8903: removes non zero validity checks on gpios. Krzysztof Kozlowski <k.kozlowski@samsung.com> - 2016-06-20 14:30 +0200

csiph-web