Patch "mfd: da9052: Fix broken regulator probe" has been added to the 4.0-stable tree
Subsystems (4)
This is a note to let you know that I've just added the patch titled
mfd: da9052: Fix broken regulator probe
to the 4.0-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
mfd-da9052-fix-broken-regulator-probe.patch
and it can be found in the queue-4.0 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
e0c21530fa91f119bfca19640a67380c6b14f12aMon Sep 17 00:00:00 2001
From: Johan Hovold <[email protected]>
Date: Fri, 15 May 2015 16:27:40 +0200
Subject: mfd: da9052: Fix broken regulator probe
From: Johan Hovold <[email protected]>
commit e0c21530fa91f119bfca19640a67380c6b14f12a upstream.
Fix broken probe of da9052 regulators, which since commit b3f6c73db732 ("mfd: da9052-core: Fix platform-device id collision") use a non-deterministic platform-device id to retrieve static regulator information. Fortunately, adequate error handling was in place so probe would simply fail with an error message.
Update the mfd-cell ids to be zero-based and use those to identify the cells when probing the regulator devices.
--- drivers/mfd/da9052-core.c | 8 ++++---- drivers/regulator/da9052-regulator.c | 5 +++-- 2 files changed, 7 insertions(+), 6 deletions(-)
drivers/mfd/da9052-core.c +4 -4
@@ -433,6 +433,10 @@ EXPORT_SYMBOL_GPL(da9052_adc_read_temp);static const struct mfd_cell da9052_subdev_info[] = { { .name ="da9052-regulator" , + .id =0 , + }, + { + .name ="da9052-regulator" , .id =1 , }, {
@@ -484,10 +488,6 @@ static const struct mfd_cell da9052_subd .id = 13, }, { - .name = "da9052-regulator", - .id = 14, - }, - { .name = "da9052-onkey", }, {
drivers/regulator/da9052-regulator.c +3 -2
@@ -394,6 +394,7 @@ static inline struct da9052_regulator_instatic int da9052_regulator_probe (struct platform_device *pdev) { +const struct mfd_cell *cell =mfd_get_cell (pdev);struct regulator_config config = { };struct da9052_regulator *regulator;struct da9052 *da9052;
@@ -409,7 +410,7 @@ static int da9052_regulator_probe(struct regulator->da9052 = da9052; regulator->info =find_regulator_info (regulator->da9052->chip_id, - pdev->id); + cell->id);if (regulator->info ==NULL ) {dev_err (&pdev->dev,"invalid regulator ID specified\n" );return -EINVAL ;
@@ -419,7 +420,7 @@ static int da9052_regulator_probe(struct config.driver_data = regulator; config.regmap = da9052->regmap;if (pdata && pdata->regulators) { - config.init_data = pdata->regulators[pdev->id]; + config.init_data = pdata->regulators[cell->id]; }else {#ifdef CONFIG_OF struct device_node *nproot = da9052->dev->of_node;
Patches currently in stable-queue which might be from [email protected] are
queue-4.0/mfd-da9052-fix-broken-regulator-probe.patch