Commit 1083c39346d482b9001944d05c09191027892226

Authored by Mark Brown
Committed by Liam Girdwood
1 parent 8f031b48cd

regulator: Factor out regulator name pretty printing

Some of the regulator API functions have code to allow the machine
constraints to override the device supplied name for the regulator
in the constraints in order to help tie logging to supplies on the
board and disambiguate when there is more than one regulator chip
in the system. Factor this code out into a new rdev_get_name()
function and use it throughout the regulator API so that we always
use the same name.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>

Showing 1 changed file with 38 additions and 45 deletions Side-by-side Diff

drivers/regulator/core.c
... ... @@ -66,6 +66,16 @@
66 66 static void _notifier_call_chain(struct regulator_dev *rdev,
67 67 unsigned long event, void *data);
68 68  
  69 +static const char *rdev_get_name(struct regulator_dev *rdev)
  70 +{
  71 + if (rdev->constraints && rdev->constraints->name)
  72 + return rdev->constraints->name;
  73 + else if (rdev->desc->name)
  74 + return rdev->desc->name;
  75 + else
  76 + return "";
  77 +}
  78 +
69 79 /* gets the regulator for a given consumer device */
70 80 static struct regulator *get_device_regulator(struct device *dev)
71 81 {
72 82  
... ... @@ -96,12 +106,12 @@
96 106  
97 107 if (!rdev->constraints) {
98 108 printk(KERN_ERR "%s: no constraints for %s\n", __func__,
99   - rdev->desc->name);
  109 + rdev_get_name(rdev));
100 110 return -ENODEV;
101 111 }
102 112 if (!(rdev->constraints->valid_ops_mask & REGULATOR_CHANGE_VOLTAGE)) {
103 113 printk(KERN_ERR "%s: operation not allowed for %s\n",
104   - __func__, rdev->desc->name);
  114 + __func__, rdev_get_name(rdev));
105 115 return -EPERM;
106 116 }
107 117  
108 118  
... ... @@ -124,12 +134,12 @@
124 134  
125 135 if (!rdev->constraints) {
126 136 printk(KERN_ERR "%s: no constraints for %s\n", __func__,
127   - rdev->desc->name);
  137 + rdev_get_name(rdev));
128 138 return -ENODEV;
129 139 }
130 140 if (!(rdev->constraints->valid_ops_mask & REGULATOR_CHANGE_CURRENT)) {
131 141 printk(KERN_ERR "%s: operation not allowed for %s\n",
132   - __func__, rdev->desc->name);
  142 + __func__, rdev_get_name(rdev));
133 143 return -EPERM;
134 144 }
135 145  
136 146  
137 147  
... ... @@ -159,17 +169,17 @@
159 169  
160 170 if (!rdev->constraints) {
161 171 printk(KERN_ERR "%s: no constraints for %s\n", __func__,
162   - rdev->desc->name);
  172 + rdev_get_name(rdev));
163 173 return -ENODEV;
164 174 }
165 175 if (!(rdev->constraints->valid_ops_mask & REGULATOR_CHANGE_MODE)) {
166 176 printk(KERN_ERR "%s: operation not allowed for %s\n",
167   - __func__, rdev->desc->name);
  177 + __func__, rdev_get_name(rdev));
168 178 return -EPERM;
169 179 }
170 180 if (!(rdev->constraints->valid_modes_mask & mode)) {
171 181 printk(KERN_ERR "%s: invalid mode %x for %s\n",
172   - __func__, mode, rdev->desc->name);
  182 + __func__, mode, rdev_get_name(rdev));
173 183 return -EINVAL;
174 184 }
175 185 return 0;
176 186  
... ... @@ -180,12 +190,12 @@
180 190 {
181 191 if (!rdev->constraints) {
182 192 printk(KERN_ERR "%s: no constraints for %s\n", __func__,
183   - rdev->desc->name);
  193 + rdev_get_name(rdev));
184 194 return -ENODEV;
185 195 }
186 196 if (!(rdev->constraints->valid_ops_mask & REGULATOR_CHANGE_DRMS)) {
187 197 printk(KERN_ERR "%s: operation not allowed for %s\n",
188   - __func__, rdev->desc->name);
  198 + __func__, rdev_get_name(rdev));
189 199 return -EPERM;
190 200 }
191 201 return 0;
192 202  
... ... @@ -230,16 +240,8 @@
230 240 struct device_attribute *attr, char *buf)
231 241 {
232 242 struct regulator_dev *rdev = dev_get_drvdata(dev);
233   - const char *name;
234 243  
235   - if (rdev->constraints && rdev->constraints->name)
236   - name = rdev->constraints->name;
237   - else if (rdev->desc->name)
238   - name = rdev->desc->name;
239   - else
240   - name = "";
241   -
242   - return sprintf(buf, "%s\n", name);
  244 + return sprintf(buf, "%s\n", rdev_get_name(rdev));
243 245 }
244 246  
245 247 static ssize_t regulator_print_opmode(char *buf, int mode)
246 248  
247 249  
... ... @@ -687,13 +689,14 @@
687 689 if (constraints->valid_modes_mask & REGULATOR_MODE_STANDBY)
688 690 count += sprintf(buf + count, "standby");
689 691  
690   - printk(KERN_INFO "regulator: %s: %s\n", rdev->desc->name, buf);
  692 + printk(KERN_INFO "regulator: %s: %s\n", rdev_get_name(rdev), buf);
691 693 }
692 694  
693 695 static int machine_constraints_voltage(struct regulator_dev *rdev,
694   - const char *name, struct regulation_constraints *constraints)
  696 + struct regulation_constraints *constraints)
695 697 {
696 698 struct regulator_ops *ops = rdev->desc->ops;
  699 + const char *name = rdev_get_name(rdev);
697 700 int ret;
698 701  
699 702 /* do we need to apply the constraint voltage */
700 703  
... ... @@ -800,16 +803,11 @@
800 803 const char *name;
801 804 struct regulator_ops *ops = rdev->desc->ops;
802 805  
803   - if (constraints->name)
804   - name = constraints->name;
805   - else if (rdev->desc->name)
806   - name = rdev->desc->name;
807   - else
808   - name = "regulator";
809   -
810 806 rdev->constraints = constraints;
811 807  
812   - ret = machine_constraints_voltage(rdev, name, constraints);
  808 + name = rdev_get_name(rdev);
  809 +
  810 + ret = machine_constraints_voltage(rdev, constraints);
813 811 if (ret != 0)
814 812 goto out;
815 813  
... ... @@ -932,7 +930,7 @@
932 930 dev_name(&node->regulator->dev),
933 931 node->regulator->desc->name,
934 932 supply,
935   - dev_name(&rdev->dev), rdev->desc->name);
  933 + dev_name(&rdev->dev), rdev_get_name(rdev));
936 934 return -EBUSY;
937 935 }
938 936  
... ... @@ -1241,7 +1239,7 @@
1241 1239 ret = _regulator_enable(rdev->supply);
1242 1240 if (ret < 0) {
1243 1241 printk(KERN_ERR "%s: failed to enable %s: %d\n",
1244   - __func__, rdev->desc->name, ret);
  1242 + __func__, rdev_get_name(rdev), ret);
1245 1243 return ret;
1246 1244 }
1247 1245 }
... ... @@ -1267,7 +1265,7 @@
1267 1265 }
1268 1266 } else if (ret < 0) {
1269 1267 printk(KERN_ERR "%s: is_enabled() failed for %s: %d\n",
1270   - __func__, rdev->desc->name, ret);
  1268 + __func__, rdev_get_name(rdev), ret);
1271 1269 return ret;
1272 1270 }
1273 1271 /* Fallthrough on positive return values - already enabled */
... ... @@ -1308,7 +1306,7 @@
1308 1306  
1309 1307 if (WARN(rdev->use_count <= 0,
1310 1308 "unbalanced disables for %s\n",
1311   - rdev->desc->name))
  1309 + rdev_get_name(rdev)))
1312 1310 return -EIO;
1313 1311  
1314 1312 /* are we the last user and permitted to disable ? */
... ... @@ -1321,7 +1319,7 @@
1321 1319 ret = rdev->desc->ops->disable(rdev);
1322 1320 if (ret < 0) {
1323 1321 printk(KERN_ERR "%s: failed to disable %s\n",
1324   - __func__, rdev->desc->name);
  1322 + __func__, rdev_get_name(rdev));
1325 1323 return ret;
1326 1324 }
1327 1325 }
... ... @@ -1378,7 +1376,7 @@
1378 1376 ret = rdev->desc->ops->disable(rdev);
1379 1377 if (ret < 0) {
1380 1378 printk(KERN_ERR "%s: failed to force disable %s\n",
1381   - __func__, rdev->desc->name);
  1379 + __func__, rdev_get_name(rdev));
1382 1380 return ret;
1383 1381 }
1384 1382 /* notify other consumers that power has been forced off */
... ... @@ -1795,7 +1793,7 @@
1795 1793 output_uV = rdev->desc->ops->get_voltage(rdev);
1796 1794 if (output_uV <= 0) {
1797 1795 printk(KERN_ERR "%s: invalid output voltage found for %s\n",
1798   - __func__, rdev->desc->name);
  1796 + __func__, rdev_get_name(rdev));
1799 1797 goto out;
1800 1798 }
1801 1799  
... ... @@ -1806,7 +1804,7 @@
1806 1804 input_uV = rdev->constraints->input_uV;
1807 1805 if (input_uV <= 0) {
1808 1806 printk(KERN_ERR "%s: invalid input voltage found for %s\n",
1809   - __func__, rdev->desc->name);
  1807 + __func__, rdev_get_name(rdev));
1810 1808 goto out;
1811 1809 }
1812 1810  
... ... @@ -1820,7 +1818,7 @@
1820 1818 ret = regulator_check_mode(rdev, mode);
1821 1819 if (ret < 0) {
1822 1820 printk(KERN_ERR "%s: failed to get optimum mode for %s @"
1823   - " %d uA %d -> %d uV\n", __func__, rdev->desc->name,
  1821 + " %d uA %d -> %d uV\n", __func__, rdev_get_name(rdev),
1824 1822 total_uA_load, input_uV, output_uV);
1825 1823 goto out;
1826 1824 }
... ... @@ -1828,7 +1826,7 @@
1828 1826 ret = rdev->desc->ops->set_mode(rdev, mode);
1829 1827 if (ret < 0) {
1830 1828 printk(KERN_ERR "%s: failed to set optimum mode %x for %s\n",
1831   - __func__, mode, rdev->desc->name);
  1829 + __func__, mode, rdev_get_name(rdev));
1832 1830 goto out;
1833 1831 }
1834 1832 ret = mode;
... ... @@ -2346,7 +2344,7 @@
2346 2344  
2347 2345 if (ret < 0) {
2348 2346 printk(KERN_ERR "%s: failed to prepare %s\n",
2349   - __func__, rdev->desc->name);
  2347 + __func__, rdev_get_name(rdev));
2350 2348 goto out;
2351 2349 }
2352 2350 }
... ... @@ -2459,12 +2457,7 @@
2459 2457 ops = rdev->desc->ops;
2460 2458 c = rdev->constraints;
2461 2459  
2462   - if (c && c->name)
2463   - name = c->name;
2464   - else if (rdev->desc->name)
2465   - name = rdev->desc->name;
2466   - else
2467   - name = "regulator";
  2460 + name = rdev_get_name(rdev);
2468 2461  
2469 2462 if (!ops->disable || (c && c->always_on))
2470 2463 continue;