2014-06-17 16:37:43

by Lee Jones

[permalink] [raw]
Subject: Re: [PATCH 7/9] regulator: palmas: Add palmas_pmic_driver_data structure

On Wed, 28 May 2014, Keerthy wrote:

> Add palmas_pmic_driver_data structure.
>
> Signed-off-by: Keerthy <[email protected]>
> ---
> include/linux/mfd/palmas.h | 25 +++++++++++++++++++++++++
> 1 file changed, 25 insertions(+)
>
> diff --git a/include/linux/mfd/palmas.h b/include/linux/mfd/palmas.h
> index 8d68452..70f0695 100644
> --- a/include/linux/mfd/palmas.h
> +++ b/include/linux/mfd/palmas.h
> @@ -53,6 +53,8 @@ struct palmas_pmic;
> struct palmas_gpadc;
> struct palmas_resource;
> struct palmas_usb;
> +struct palmas_pmic_driver_data;
> +struct palmas_pmic_platform_data;
>
> enum palmas_usb_state {
> PALMAS_USB_STATE_DISCONNECT,
> @@ -76,6 +78,8 @@ struct palmas {
> struct mutex irq_lock;
> struct regmap_irq_chip_data *irq_data;
>
> + struct palmas_pmic_driver_data *pmic_ddata;
> +
> /* Child Devices */
> struct palmas_pmic *pmic;
> struct palmas_gpadc *gpadc;
> @@ -107,6 +111,27 @@ struct regs_info {
> int sleep_id;
> };
>
> +struct palmas_pmic_driver_data {
> + int smps_start;
> + int smps_end;
> + int ldo_begin;
> + int ldo_end;
> + int max_reg;
> + struct regs_info *palmas_regs_info;
> + struct of_regulator_match *palmas_matches;
> + struct palmas_sleep_requestor_info *sleep_req_info;
> + int (*smps_register)(struct palmas_pmic *pmic,
> + struct palmas_pmic_driver_data *ddata,
> + struct palmas_pmic_platform_data *pdata,
> + const char *pdev_name,
> + struct regulator_config config);
> + int (*ldo_register)(struct palmas_pmic *pmic,
> + struct palmas_pmic_driver_data *ddata,
> + struct palmas_pmic_platform_data *pdata,
> + const char *pdev_name,
> + struct regulator_config config);

Are you sure you need to store all of this stuff?

Particularly the match pointer. Do you really re-use it?

> +};
> +
> struct palmas_gpadc_platform_data {
> /* Channel 3 current source is only enabled during conversion */
> int ch3_current;

--
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog


2014-06-18 05:03:19

by Keerthy

[permalink] [raw]
Subject: Re: [PATCH 7/9] regulator: palmas: Add palmas_pmic_driver_data structure

On Tuesday 17 June 2014 10:07 PM, Lee Jones wrote:
> On Wed, 28 May 2014, Keerthy wrote:
>
>> Add palmas_pmic_driver_data structure.
>>
>> Signed-off-by: Keerthy <[email protected]>
>> ---
>> include/linux/mfd/palmas.h | 25 +++++++++++++++++++++++++
>> 1 file changed, 25 insertions(+)
>>
>> diff --git a/include/linux/mfd/palmas.h b/include/linux/mfd/palmas.h
>> index 8d68452..70f0695 100644
>> --- a/include/linux/mfd/palmas.h
>> +++ b/include/linux/mfd/palmas.h
>> @@ -53,6 +53,8 @@ struct palmas_pmic;
>> struct palmas_gpadc;
>> struct palmas_resource;
>> struct palmas_usb;
>> +struct palmas_pmic_driver_data;
>> +struct palmas_pmic_platform_data;
>>
>> enum palmas_usb_state {
>> PALMAS_USB_STATE_DISCONNECT,
>> @@ -76,6 +78,8 @@ struct palmas {
>> struct mutex irq_lock;
>> struct regmap_irq_chip_data *irq_data;
>>
>> + struct palmas_pmic_driver_data *pmic_ddata;
>> +
>> /* Child Devices */
>> struct palmas_pmic *pmic;
>> struct palmas_gpadc *gpadc;
>> @@ -107,6 +111,27 @@ struct regs_info {
>> int sleep_id;
>> };
>>
>> +struct palmas_pmic_driver_data {
>> + int smps_start;
>> + int smps_end;
>> + int ldo_begin;
>> + int ldo_end;
>> + int max_reg;
>> + struct regs_info *palmas_regs_info;
>> + struct of_regulator_match *palmas_matches;
>> + struct palmas_sleep_requestor_info *sleep_req_info;
>> + int (*smps_register)(struct palmas_pmic *pmic,
>> + struct palmas_pmic_driver_data *ddata,
>> + struct palmas_pmic_platform_data *pdata,
>> + const char *pdev_name,
>> + struct regulator_config config);
>> + int (*ldo_register)(struct palmas_pmic *pmic,
>> + struct palmas_pmic_driver_data *ddata,
>> + struct palmas_pmic_platform_data *pdata,
>> + const char *pdev_name,
>> + struct regulator_config config);
> Are you sure you need to store all of this stuff?
>
> Particularly the match pointer. Do you really re-use it?

Match pointer is used extensively in the palmas_regulator.c.
This structure is very much used by regulator driver.

>
>> +};
>> +
>> struct palmas_gpadc_platform_data {
>> /* Channel 3 current source is only enabled during conversion */
>> int ch3_current;

2014-06-18 07:24:44

by Lee Jones

[permalink] [raw]
Subject: Re: [PATCH 7/9] regulator: palmas: Add palmas_pmic_driver_data structure

> >>Add palmas_pmic_driver_data structure.
> >>
> >>Signed-off-by: Keerthy <[email protected]>
> >>---
> >> include/linux/mfd/palmas.h | 25 +++++++++++++++++++++++++
> >> 1 file changed, 25 insertions(+)
> >>
> >>diff --git a/include/linux/mfd/palmas.h b/include/linux/mfd/palmas.h
> >>index 8d68452..70f0695 100644
> >>--- a/include/linux/mfd/palmas.h
> >>+++ b/include/linux/mfd/palmas.h
[...]

> >>+struct palmas_pmic_driver_data {
> >>+ int smps_start;
> >>+ int smps_end;
> >>+ int ldo_begin;
> >>+ int ldo_end;
> >>+ int max_reg;
> >>+ struct regs_info *palmas_regs_info;
> >>+ struct of_regulator_match *palmas_matches;
> >>+ struct palmas_sleep_requestor_info *sleep_req_info;
> >>+ int (*smps_register)(struct palmas_pmic *pmic,
> >>+ struct palmas_pmic_driver_data *ddata,
> >>+ struct palmas_pmic_platform_data *pdata,
> >>+ const char *pdev_name,
> >>+ struct regulator_config config);
> >>+ int (*ldo_register)(struct palmas_pmic *pmic,
> >>+ struct palmas_pmic_driver_data *ddata,
> >>+ struct palmas_pmic_platform_data *pdata,
> >>+ const char *pdev_name,
> >>+ struct regulator_config config);
> >Are you sure you need to store all of this stuff?
> >
> >Particularly the match pointer. Do you really re-use it?
>
> Match pointer is used extensively in the palmas_regulator.c.
> This structure is very much used by regulator driver.

On closer inspection, I now see that it's a 'of_regulator_match',
rather than an 'of_match' pointer, which were my initial thoughts. I
think it would have been weird to carry the 'of_match', but the
reality sounds sane.

--
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog