[PATCH-v6 3/6] mfd: 88pm800: Get pdata from 'device' rather than passing as a parameter

Lee Jones lee.jones at linaro.org
Mon Aug 24 06:54:37 PDT 2015


On Wed, 08 Jul 2015, Vaibhav Hiremath wrote:

> Currently the device_xxx_init() fns take pdata as an input parameter to
> the fn, but the cleaner approach would be to use dev_get_platdata() to
> get the pdata.
> So this patch changes the code accordingly.
> 
> Signed-off-by: Vaibhav Hiremath <vaibhav.hiremath at linaro.org>
> ---
>  drivers/mfd/88pm800.c | 29 ++++++++++++++---------------
>  1 file changed, 14 insertions(+), 15 deletions(-)

Acked-by: Lee Jones <lee.jones at linaro.org>

> diff --git a/drivers/mfd/88pm800.c b/drivers/mfd/88pm800.c
> index 95c418c..af8232f 100644
> --- a/drivers/mfd/88pm800.c
> +++ b/drivers/mfd/88pm800.c
> @@ -254,11 +254,11 @@ static const struct regmap_irq pm800_irqs[] = {
>  	},
>  };
>  
> -static int device_gpadc_init(struct pm80x_chip *chip,
> -				       struct pm80x_platform_data *pdata)
> +static int device_gpadc_init(struct pm80x_chip *chip)
>  {
>  	struct pm80x_subchip *subchip = chip->subchip;
>  	struct regmap *map = subchip->regmap_gpadc;
> +	struct pm80x_platform_data *pdata = dev_get_platdata(chip->dev);
>  	int data = 0, mask = 0, ret = 0;
>  
>  	if (!map) {
> @@ -320,17 +320,17 @@ out:
>  	return ret;
>  }
>  
> -static int device_onkey_init(struct pm80x_chip *chip,
> -				struct pm80x_platform_data *pdata)
> +static int device_onkey_init(struct pm80x_chip *chip)
>  {
>  	return mfd_add_devices(chip->dev, 0, &onkey_devs[0],
>  			      ARRAY_SIZE(onkey_devs), &onkey_resources[0], 0,
>  			      NULL);
>  }
>  
> -static int device_rtc_init(struct pm80x_chip *chip,
> -				struct pm80x_platform_data *pdata)
> +static int device_rtc_init(struct pm80x_chip *chip)
>  {
> +	struct pm80x_platform_data *pdata = dev_get_platdata(chip->dev);
> +
>  	if (pdata) {
>  		rtc_devs[0].platform_data = pdata->rtc;
>  		rtc_devs[0].pdata_size =
> @@ -341,8 +341,7 @@ static int device_rtc_init(struct pm80x_chip *chip,
>  			      ARRAY_SIZE(rtc_devs), NULL, 0, NULL);
>  }
>  
> -static int device_regulator_init(struct pm80x_chip *chip,
> -					   struct pm80x_platform_data *pdata)
> +static int device_regulator_init(struct pm80x_chip *chip)
>  {
>  	return mfd_add_devices(chip->dev, 0, &regulator_devs[0],
>  			      ARRAY_SIZE(regulator_devs), NULL, 0, NULL);
> @@ -463,11 +462,11 @@ static void pm800_pages_exit(struct pm80x_chip *chip)
>  		i2c_unregister_device(subchip->gpadc_page);
>  }
>  
> -static int device_800_init(struct pm80x_chip *chip,
> -				     struct pm80x_platform_data *pdata)
> +static int device_800_init(struct pm80x_chip *chip)
>  {
>  	int ret;
>  	unsigned int val;
> +	struct pm80x_platform_data *pdata = dev_get_platdata(chip->dev);
>  
>  	/*
>  	 * alarm wake up bit will be clear in device_irq_init(),
> @@ -483,7 +482,7 @@ static int device_800_init(struct pm80x_chip *chip,
>  			pdata->rtc->rtc_wakeup = 1;
>  	}
>  
> -	ret = device_gpadc_init(chip, pdata);
> +	ret = device_gpadc_init(chip);
>  	if (ret < 0) {
>  		dev_err(chip->dev, "[%s]Failed to init gpadc\n", __func__);
>  		goto out;
> @@ -497,19 +496,19 @@ static int device_800_init(struct pm80x_chip *chip,
>  		goto out;
>  	}
>  
> -	ret = device_onkey_init(chip, pdata);
> +	ret = device_onkey_init(chip);
>  	if (ret) {
>  		dev_err(chip->dev, "Failed to add onkey subdev\n");
>  		goto out_dev;
>  	}
>  
> -	ret = device_rtc_init(chip, pdata);
> +	ret = device_rtc_init(chip);
>  	if (ret) {
>  		dev_err(chip->dev, "Failed to add rtc subdev\n");
>  		goto out;
>  	}
>  
> -	ret = device_regulator_init(chip, pdata);
> +	ret = device_regulator_init(chip);
>  	if (ret) {
>  		dev_err(chip->dev, "Failed to add regulators subdev\n");
>  		goto out;
> @@ -575,7 +574,7 @@ static int pm800_probe(struct i2c_client *client,
>  		goto err_device_init;
>  	}
>  
> -	ret = device_800_init(chip, pdata);
> +	ret = device_800_init(chip);
>  	if (ret) {
>  		dev_err(chip->dev, "Failed to initialize 88pm800 devices\n");
>  		goto err_device_init;

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



More information about the linux-arm-kernel mailing list