regulator: catch some registration errors
Prevent registration of duplicate "struct regulator" names. They'd be unavailable, and clearly indicate something wrong. [Edited to remove check for NULL consumer device until we have a solution for things like cpufreq -- broonie] Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
This commit is contained in:
Родитель
9fe5817f19
Коммит
6001e13c5f
|
@ -776,6 +776,20 @@ static int set_consumer_device_supply(struct regulator_dev *rdev,
|
|||
if (supply == NULL)
|
||||
return -EINVAL;
|
||||
|
||||
list_for_each_entry(node, ®ulator_map_list, list) {
|
||||
if (consumer_dev != node->dev)
|
||||
continue;
|
||||
if (strcmp(node->supply, supply) != 0)
|
||||
continue;
|
||||
|
||||
dev_dbg(consumer_dev, "%s/%s is '%s' supply; fail %s/%s\n",
|
||||
dev_name(&node->regulator->dev),
|
||||
node->regulator->desc->name,
|
||||
supply,
|
||||
dev_name(&rdev->dev), rdev->desc->name);
|
||||
return -EBUSY;
|
||||
}
|
||||
|
||||
node = kmalloc(sizeof(struct regulator_map), GFP_KERNEL);
|
||||
if (node == NULL)
|
||||
return -ENOMEM;
|
||||
|
|
Загрузка…
Ссылка в новой задаче