regulator: Fixes for v5.3

A few small driver specific fixes here plus one core fix for a
 refcounting problem with DT which will have little practical impact
 unless overlays are used.
 -----BEGIN PGP SIGNATURE-----
 
 iQFHBAABCgAxFiEEreZoqmdXGLWf4p/qJNaLcl1Uh9AFAl1IPZ8THGJyb29uaWVA
 a2VybmVsLm9yZwAKCRAk1otyXVSH0OkUB/0TjP0C+6MJm8gmHpryuEorWCEUzL03
 F7nWZxfUjKhpl3rduts9L+uVQY9aKGpcxt8Qtv3U6Gqq5RSQsjLoYMuco9fbxoWb
 ttMWwRfyVwRqgP5K3/rvimFO2deyJp507kMVj1GzEipdVxFbw+vN0dbOdcfKFLcT
 drQ143Qz13qxo+ktUV+1KiRGZa0VMEaamhHRASbEYC5CDZspI2hPpeE9Nu6LgxyW
 cewuZGtLEpgTOp5xpGBzdkMrAYsNH5TQ1xrNsYpGJP4LKLyB5rzRWdA7oaE+zGxR
 aOgZH30eshRmPJjOLIdP59mnRB5Hkk2mjhTCdHAqzzn8kmFuZoekd9Lk
 =64jL
 -----END PGP SIGNATURE-----

Merge tag 'regulator-fix-v5.3-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator

Pull regulator fixes from Mark Brown:
 "A few small driver specific fixes here plus one core fix for a
  refcounting problem with DT which will have little practical impact
  unless overlays are used"

* tag 'regulator-fix-v5.3-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator:
  regulator: of: Add of_node_put() before return in function
  regulator: lp87565: Fix probe failure for "ti,lp87565"
  regulator: axp20x: fix DCDC5 and DCDC6 for AXP803
  regulator: axp20x: fix DCDCA and DCDCD for AXP806
This commit is contained in:
Linus Torvalds 2019-08-05 11:47:02 -07:00
commit df9edcba0b
3 changed files with 12 additions and 10 deletions

View file

@ -174,14 +174,14 @@
#define AXP803_DCDC5_1140mV_STEPS 35 #define AXP803_DCDC5_1140mV_STEPS 35
#define AXP803_DCDC5_1140mV_END \ #define AXP803_DCDC5_1140mV_END \
(AXP803_DCDC5_1140mV_START + AXP803_DCDC5_1140mV_STEPS) (AXP803_DCDC5_1140mV_START + AXP803_DCDC5_1140mV_STEPS)
#define AXP803_DCDC5_NUM_VOLTAGES 68 #define AXP803_DCDC5_NUM_VOLTAGES 69
#define AXP803_DCDC6_600mV_START 0x00 #define AXP803_DCDC6_600mV_START 0x00
#define AXP803_DCDC6_600mV_STEPS 50 #define AXP803_DCDC6_600mV_STEPS 50
#define AXP803_DCDC6_600mV_END \ #define AXP803_DCDC6_600mV_END \
(AXP803_DCDC6_600mV_START + AXP803_DCDC6_600mV_STEPS) (AXP803_DCDC6_600mV_START + AXP803_DCDC6_600mV_STEPS)
#define AXP803_DCDC6_1120mV_START 0x33 #define AXP803_DCDC6_1120mV_START 0x33
#define AXP803_DCDC6_1120mV_STEPS 14 #define AXP803_DCDC6_1120mV_STEPS 20
#define AXP803_DCDC6_1120mV_END \ #define AXP803_DCDC6_1120mV_END \
(AXP803_DCDC6_1120mV_START + AXP803_DCDC6_1120mV_STEPS) (AXP803_DCDC6_1120mV_START + AXP803_DCDC6_1120mV_STEPS)
#define AXP803_DCDC6_NUM_VOLTAGES 72 #define AXP803_DCDC6_NUM_VOLTAGES 72
@ -240,7 +240,7 @@
#define AXP806_DCDCA_600mV_END \ #define AXP806_DCDCA_600mV_END \
(AXP806_DCDCA_600mV_START + AXP806_DCDCA_600mV_STEPS) (AXP806_DCDCA_600mV_START + AXP806_DCDCA_600mV_STEPS)
#define AXP806_DCDCA_1120mV_START 0x33 #define AXP806_DCDCA_1120mV_START 0x33
#define AXP806_DCDCA_1120mV_STEPS 14 #define AXP806_DCDCA_1120mV_STEPS 20
#define AXP806_DCDCA_1120mV_END \ #define AXP806_DCDCA_1120mV_END \
(AXP806_DCDCA_1120mV_START + AXP806_DCDCA_1120mV_STEPS) (AXP806_DCDCA_1120mV_START + AXP806_DCDCA_1120mV_STEPS)
#define AXP806_DCDCA_NUM_VOLTAGES 72 #define AXP806_DCDCA_NUM_VOLTAGES 72
@ -774,8 +774,8 @@ static const struct regulator_linear_range axp806_dcdcd_ranges[] = {
AXP806_DCDCD_600mV_END, AXP806_DCDCD_600mV_END,
20000), 20000),
REGULATOR_LINEAR_RANGE(1600000, REGULATOR_LINEAR_RANGE(1600000,
AXP806_DCDCD_600mV_START, AXP806_DCDCD_1600mV_START,
AXP806_DCDCD_600mV_END, AXP806_DCDCD_1600mV_END,
100000), 100000),
}; };

View file

@ -163,7 +163,7 @@ static int lp87565_regulator_probe(struct platform_device *pdev)
struct lp87565 *lp87565 = dev_get_drvdata(pdev->dev.parent); struct lp87565 *lp87565 = dev_get_drvdata(pdev->dev.parent);
struct regulator_config config = { }; struct regulator_config config = { };
struct regulator_dev *rdev; struct regulator_dev *rdev;
int i, min_idx = LP87565_BUCK_0, max_idx = LP87565_BUCK_3; int i, min_idx, max_idx;
platform_set_drvdata(pdev, lp87565); platform_set_drvdata(pdev, lp87565);
@ -182,9 +182,9 @@ static int lp87565_regulator_probe(struct platform_device *pdev)
max_idx = LP87565_BUCK_3210; max_idx = LP87565_BUCK_3210;
break; break;
default: default:
dev_err(lp87565->dev, "Invalid lp config %d\n", min_idx = LP87565_BUCK_0;
lp87565->dev_type); max_idx = LP87565_BUCK_3;
return -EINVAL; break;
} }
for (i = min_idx; i <= max_idx; i++) { for (i = min_idx; i <= max_idx; i++) {

View file

@ -416,8 +416,10 @@ device_node *regulator_of_get_init_node(struct device *dev,
if (!name) if (!name)
name = child->name; name = child->name;
if (!strcmp(desc->of_match, name)) if (!strcmp(desc->of_match, name)) {
of_node_put(search);
return of_node_get(child); return of_node_get(child);
}
} }
of_node_put(search); of_node_put(search);