aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/regulator/axp20x-regulator.c6
-rw-r--r--drivers/regulator/cpcap-regulator.c8
-rw-r--r--drivers/regulator/of_regulator.c2
3 files changed, 12 insertions, 4 deletions
diff --git a/drivers/regulator/axp20x-regulator.c b/drivers/regulator/axp20x-regulator.c
index e2608fe770b9..f18b36dd57dd 100644
--- a/drivers/regulator/axp20x-regulator.c
+++ b/drivers/regulator/axp20x-regulator.c
@@ -691,6 +691,9 @@ static int axp20x_regulator_probe(struct platform_device *pdev)
691 (regulators == axp809_regulators && i == AXP809_DC1SW)) { 691 (regulators == axp809_regulators && i == AXP809_DC1SW)) {
692 new_desc = devm_kzalloc(&pdev->dev, sizeof(*desc), 692 new_desc = devm_kzalloc(&pdev->dev, sizeof(*desc),
693 GFP_KERNEL); 693 GFP_KERNEL);
694 if (!new_desc)
695 return -ENOMEM;
696
694 *new_desc = regulators[i]; 697 *new_desc = regulators[i];
695 new_desc->supply_name = dcdc1_name; 698 new_desc->supply_name = dcdc1_name;
696 desc = new_desc; 699 desc = new_desc;
@@ -700,6 +703,9 @@ static int axp20x_regulator_probe(struct platform_device *pdev)
700 (regulators == axp809_regulators && i == AXP809_DC5LDO)) { 703 (regulators == axp809_regulators && i == AXP809_DC5LDO)) {
701 new_desc = devm_kzalloc(&pdev->dev, sizeof(*desc), 704 new_desc = devm_kzalloc(&pdev->dev, sizeof(*desc),
702 GFP_KERNEL); 705 GFP_KERNEL);
706 if (!new_desc)
707 return -ENOMEM;
708
703 *new_desc = regulators[i]; 709 *new_desc = regulators[i];
704 new_desc->supply_name = dcdc5_name; 710 new_desc->supply_name = dcdc5_name;
705 desc = new_desc; 711 desc = new_desc;
diff --git a/drivers/regulator/cpcap-regulator.c b/drivers/regulator/cpcap-regulator.c
index cc98aceed1c1..ce1cab320f6f 100644
--- a/drivers/regulator/cpcap-regulator.c
+++ b/drivers/regulator/cpcap-regulator.c
@@ -77,6 +77,8 @@
77#define CPCAP_BIT_VAUDIO_MODE0 BIT(1) 77#define CPCAP_BIT_VAUDIO_MODE0 BIT(1)
78#define CPCAP_BIT_V_AUDIO_EN BIT(0) 78#define CPCAP_BIT_V_AUDIO_EN BIT(0)
79 79
80#define CPCAP_BIT_AUDIO_NORMAL_MODE 0x00
81
80/* 82/*
81 * Off mode configuration bit. Used currently only by SW5 on omap4. There's 83 * Off mode configuration bit. Used currently only by SW5 on omap4. There's
82 * the following comment in Motorola Linux kernel tree for it: 84 * the following comment in Motorola Linux kernel tree for it:
@@ -217,7 +219,7 @@ static unsigned int cpcap_regulator_get_mode(struct regulator_dev *rdev)
217 219
218 regmap_read(rdev->regmap, rdev->desc->enable_reg, &value); 220 regmap_read(rdev->regmap, rdev->desc->enable_reg, &value);
219 221
220 if (!(value & CPCAP_BIT_AUDIO_LOW_PWR)) 222 if (value & CPCAP_BIT_AUDIO_LOW_PWR)
221 return REGULATOR_MODE_STANDBY; 223 return REGULATOR_MODE_STANDBY;
222 224
223 return REGULATOR_MODE_NORMAL; 225 return REGULATOR_MODE_NORMAL;
@@ -230,10 +232,10 @@ static int cpcap_regulator_set_mode(struct regulator_dev *rdev,
230 232
231 switch (mode) { 233 switch (mode) {
232 case REGULATOR_MODE_NORMAL: 234 case REGULATOR_MODE_NORMAL:
233 value = CPCAP_BIT_AUDIO_LOW_PWR; 235 value = CPCAP_BIT_AUDIO_NORMAL_MODE;
234 break; 236 break;
235 case REGULATOR_MODE_STANDBY: 237 case REGULATOR_MODE_STANDBY:
236 value = 0; 238 value = CPCAP_BIT_AUDIO_LOW_PWR;
237 break; 239 break;
238 default: 240 default:
239 return -EINVAL; 241 return -EINVAL;
diff --git a/drivers/regulator/of_regulator.c b/drivers/regulator/of_regulator.c
index 96bf75458da5..9dd44dd4cdf6 100644
--- a/drivers/regulator/of_regulator.c
+++ b/drivers/regulator/of_regulator.c
@@ -333,7 +333,7 @@ struct regulator_init_data *regulator_of_get_init_data(struct device *dev,
333 search = of_get_child_by_name(dev->of_node, 333 search = of_get_child_by_name(dev->of_node,
334 desc->regulators_node); 334 desc->regulators_node);
335 else 335 else
336 search = dev->of_node; 336 search = of_node_get(dev->of_node);
337 337
338 if (!search) { 338 if (!search) {
339 dev_dbg(dev, "Failed to find regulator container node '%s'\n", 339 dev_dbg(dev, "Failed to find regulator container node '%s'\n",