RE: [PATCH 13/14] regulator: check name in initialization of max8925

From: Haojian Zhuang
Date: Mon Apr 18 2011 - 22:47:18 EST




>-----Original Message-----
>From: Mark Brown [mailto:broonie@xxxxxxxxxxxxxxxxxxxxxxxxxxx]
>Sent: 2011年4月19日 12:04 AM
>To: Haojian Zhuang
>Cc: Haojian Zhuang; sameo@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx;
>dmitry.torokhov@xxxxxxxxx; a.zummo@xxxxxxxxxxxx; johnpol@xxxxxxxxxxx;
>cbou@xxxxxxx; dwmw2@xxxxxxxxxxxxx; lrg@xxxxxxxxxxxxxxx
>Subject: Re: [PATCH 13/14] regulator: check name in initialization of
>max8925
>
>On Mon, Apr 18, 2011 at 11:33:34PM +0800, Haojian Zhuang wrote:
>
>> So I want to avoid to use the index and check regulator[] one by one.
>> I use a pointer to link
>> all regulator data together. I just need to check whether the
>> regulator pointer is valid or not.
>
>Why? I don't understand what the goal of this change is.

Original implementation:
Max8925_core.c:
If ((pdata == NULL) || (pdata->regulator[0] == NULL))
Return -EINVAL;
Machine driver:
Platform data:
.regulator[0] = xxx
.regulator[1] = xxx

The index of regulator array is id of buck and ldo.
There's issue in max8925_core.c since we can't assume regulator[0] always declared in machine driver.

Current implementation:
Max8925_core.c:
If ((pdata == NULL) || (pdata->regulator == NULL))
Return -EINVAL;
Machine driver:
Platform data:
Use two parameters: num_regulators and regulator pointer. The index of new regulator array isn't id of buck and ldo any more.
韬{.n?????%?lzwm?b?Р骒r?zXЩ??{ay????j?f"?????ア?⒎?:+v???????赙zZ+????"?!?O???v??m?鹈 n?帼Y&—