RE: [PATCH 11/13] power_supply: max8925: use platform_data from cell

From: Haojian Zhuang
Date: Wed Apr 13 2011 - 22:30:43 EST




>-----Original Message-----
>From: Anton Vorontsov [mailto:cbouatmailru@xxxxxxxxx]
>Sent: 2011å4æ13æ 11:03 PM
>To: Haojian Zhuang
>Cc: sameo@xxxxxxxxxxxxxxx; haojian.zhuang@xxxxxxxxx; linux-
>kernel@xxxxxxxxxxxxxxx; David Woodhouse
>Subject: Re: [PATCH 11/13] power_supply: max8925: use platform_data from
>cell
>
>On Wed, Apr 13, 2011 at 10:51:02PM +0800, Haojian Zhuang wrote:
>> Avoid to get platform_data from parent device. Get it from mfd cell
>> device instead.
>>
>> Signed-off-by: Haojian Zhuang <haojian.zhuang@xxxxxxxxxxx>
>> Cc: Anton Vorontsov <cbou@xxxxxxx>
>> Cc: David Woodhouse <dwmw2@xxxxxxxxxxxxx>
>> ---
>
>I don't see the whole series, but I hope the patch doesn't break any
>existing in-tree users of that driver?
>
Excuse me for not include you in the whole series. I checked that it won't
break existing code.

The fix for this patch is already sent. Please help to review.

>> drivers/power/max8925_power.c | 16 +++++-----------
>> 1 files changed, 5 insertions(+), 11 deletions(-)
>>
>> diff --git a/drivers/power/max8925_power.c
>b/drivers/power/max8925_power.c
>> index 8e5aec2..359c53c 100644
>> --- a/drivers/power/max8925_power.c
>> +++ b/drivers/power/max8925_power.c
>> @@ -425,21 +425,16 @@ static __devexit int
>max8925_deinit_charger(struct max8925_power_info *info)
>> static __devinit int max8925_power_probe(struct platform_device *pdev)
>> {
>> struct max8925_chip *chip = dev_get_drvdata(pdev->dev.parent);
>> - struct max8925_platform_data *max8925_pdata;
>> struct max8925_power_pdata *pdata = NULL;
>> struct max8925_power_info *info;
>> - int ret;
>> -
>> - if (pdev->dev.parent->platform_data) {
>> - max8925_pdata = pdev->dev.parent->platform_data;
>> - pdata = max8925_pdata->power;
>> - }
>> + int ret = -EINVAL;
>
>I guess you don't need the initializer.
>
OK

>>
>> - if (!pdata) {
>> + pdata = pdev->dev.platform_data;
>> + if (pdata == NULL) {
>
>I'd prefer to keep '!pdata'.
>
OK

>> dev_err(&pdev->dev, "platform data isn't assigned to "
>> "power supply\n");
>> return -EINVAL;
>> - }
>> + };
>
>No need for the semicolon.
OK

>
>>
>> info = kzalloc(sizeof(struct max8925_power_info), GFP_KERNEL);
>> if (!info)
>> @@ -447,6 +442,7 @@ static __devinit int max8925_power_probe(struct
>platform_device *pdev)
>> info->chip = chip;
>> info->gpm = chip->i2c;
>> info->adc = chip->adc;
>> + dev_set_drvdata(&pdev->dev, info);
>
>As this is a platform driver, you'd better do platform_set_drvdata(pdev,
>info),
>not dev_set_drvdata(). In the end, it's the same thing.
>
Got it.

>>
>> info->ac.name = "max8925-ac";
>> info->ac.type = POWER_SUPPLY_TYPE_MAINS;
>> @@ -482,8 +478,6 @@ static __devinit int max8925_power_probe(struct
>platform_device *pdev)
>> info->topoff_threshold = pdata->topoff_threshold;
>> info->fast_charge = pdata->fast_charge;
>> info->set_charger = pdata->set_charger;
>> - dev_set_drvdata(&pdev->dev, info);
>> - platform_set_drvdata(pdev, info);
>>
>> max8925_init_charger(chip, info);
>> return 0;
>
>Thanks,
>
>--
>Anton Vorontsov
>Email: cbouatmailru@xxxxxxxxx
¢éì®&Þ~º&¶¬–+-±éÝ¥Šw®žË±Êâmébžìdz¹Þ)í…æèw*jg¬±¨¶‰šŽŠÝj/êäz¹ÞŠà2ŠÞ¨è­Ú&¢)ß«a¶Úþø®G«éh®æj:+v‰¨Šwè†Ù>Wš±êÞiÛaxPjØm¶Ÿÿà -»+ƒùdš_