-----Original Message----- From: Ying-Chun Liu (PaulLiu) [mailto:paul.liu@linaro.org] Sent: Friday, October 07, 2011 2:54 PM To: Ashish Jangam Cc: Mark Brown; Dajun; linaro-dev@lists.linaro.org; linux- kernel@vger.kernel.org; lrg@slimlogic.co.uk Subject: Re: [Patch 5/11] Regulator: DA9052 regulator support v3
(2011年07月06日 18:36), ashishj3 wrote:
+static int __devinit da9052_regulator_probe(struct platform_device *pdev) +{
- struct da9052_regulator *regulator;
- struct da9052 *da9052;
- struct da9052_pdata *pdata;
- int ret;
- regulator = kzalloc(sizeof(struct da9052_regulator), GFP_KERNEL);
- if (!regulator)
return -ENOMEM;
- da9052 = dev_get_drvdata(pdev->dev.parent);
- pdata = da9052->dev->platform_data;
- regulator->info = find_regulator_info(pdev->id);
- if (regulator->info == NULL) {
dev_err(&pdev->dev, "invalid regulator ID specified\n");
ret = -EINVAL;
goto err;
- }
- regulator->rdev = regulator_register(®ulator->info->reg_desc,
&pdev->dev,
pdata->regulators[pdev->id],
regulator);
- if (IS_ERR(regulator->rdev)) {
dev_err(&pdev->dev, "failed to register regulator %s\n",
regulator->info->reg_desc.name);
ret = PTR_ERR(regulator->rdev);
goto err;
- }
- platform_set_drvdata(pdev, regulator);
- return 0;
+err:
- kfree(regulator);
- return ret;
+}
Hi Ashish,
It seems to me that in this function, regulator->da9052 isn't initialized.
Today I'm going to post regulator patch for DA9052 and DA9053 that has got fixes for this and few more bugs. This patch is thoroughly tested for DA9052 and DA9053.
Regards, Paul