regulator: output current-limit for all regulators in summary
Voltage regulators can have (unregulated) current limits too, so we should probably output both voltage and current for all regulators. Holding the rdev->mutex actually conflicts with _regulator_get_current_limit but also is not really necessary, as the global regulator_list_mutex already protects us from the regulator vanishing while we go through the list. On the rk3288-firefly the summary now looks like: regulator use open bypass voltage current min max ------------------------------------------------------------------------------- vcc_sys 0 12 0 5000mV 0mA 5000mV 5000mV vcc_lan 1 1 0 3300mV 0mA 3300mV 3300mV ff290000.ethernet 0mV 0mV vcca_33 0 0 0 3300mV 0mA 3300mV 3300mV vcca_18 0 0 0 1800mV 0mA 1800mV 1800mV vdd10_lcd 0 0 0 1000mV 0mA 1000mV 1000mV [...] Suggested-by: Mark Brown <broonie@kernel.org> Signed-off-by: Heiko Stuebner <heiko@sntech.de> Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
7c225ec90c
commit
23296099e7
1 changed files with 5 additions and 19 deletions
|
@ -3967,23 +3967,13 @@ static void regulator_summary_show_subtree(struct seq_file *s,
|
||||||
if (!rdev)
|
if (!rdev)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
mutex_lock(&rdev->mutex);
|
|
||||||
|
|
||||||
seq_printf(s, "%*s%-*s %3d %4d %6d ",
|
seq_printf(s, "%*s%-*s %3d %4d %6d ",
|
||||||
level * 3 + 1, "",
|
level * 3 + 1, "",
|
||||||
30 - level * 3, rdev_get_name(rdev),
|
30 - level * 3, rdev_get_name(rdev),
|
||||||
rdev->use_count, rdev->open_count, rdev->bypass_count);
|
rdev->use_count, rdev->open_count, rdev->bypass_count);
|
||||||
|
|
||||||
switch (rdev->desc->type) {
|
seq_printf(s, "%5dmV ", _regulator_get_voltage(rdev) / 1000);
|
||||||
case REGULATOR_VOLTAGE:
|
seq_printf(s, "%5dmA ", _regulator_get_current_limit(rdev) / 1000);
|
||||||
seq_printf(s, "%5dmV ",
|
|
||||||
_regulator_get_voltage(rdev) / 1000);
|
|
||||||
break;
|
|
||||||
case REGULATOR_CURRENT:
|
|
||||||
seq_printf(s, "%5dmA ",
|
|
||||||
_regulator_get_current_limit(rdev) / 1000);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
c = rdev->constraints;
|
c = rdev->constraints;
|
||||||
if (c) {
|
if (c) {
|
||||||
|
@ -4011,21 +4001,17 @@ static void regulator_summary_show_subtree(struct seq_file *s,
|
||||||
|
|
||||||
switch (rdev->desc->type) {
|
switch (rdev->desc->type) {
|
||||||
case REGULATOR_VOLTAGE:
|
case REGULATOR_VOLTAGE:
|
||||||
seq_printf(s, "%29dmV %5dmV",
|
seq_printf(s, "%37dmV %5dmV",
|
||||||
consumer->min_uV / 1000,
|
consumer->min_uV / 1000,
|
||||||
consumer->max_uV / 1000);
|
consumer->max_uV / 1000);
|
||||||
break;
|
break;
|
||||||
case REGULATOR_CURRENT:
|
case REGULATOR_CURRENT:
|
||||||
seq_printf(s, "%37dmA",
|
|
||||||
regulator_get_current_limit(consumer) / 1000);
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
seq_puts(s, "\n");
|
seq_puts(s, "\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
mutex_unlock(&rdev->mutex);
|
|
||||||
|
|
||||||
list_for_each_entry(child, list, list) {
|
list_for_each_entry(child, list, list) {
|
||||||
/* handle only non-root regulators supplied by current rdev */
|
/* handle only non-root regulators supplied by current rdev */
|
||||||
if (!child->supply || child->supply->rdev != rdev)
|
if (!child->supply || child->supply->rdev != rdev)
|
||||||
|
@ -4040,8 +4026,8 @@ static int regulator_summary_show(struct seq_file *s, void *data)
|
||||||
struct list_head *list = s->private;
|
struct list_head *list = s->private;
|
||||||
struct regulator_dev *rdev;
|
struct regulator_dev *rdev;
|
||||||
|
|
||||||
seq_puts(s, " regulator use open bypass value min max\n");
|
seq_puts(s, " regulator use open bypass voltage current min max\n");
|
||||||
seq_puts(s, "-----------------------------------------------------------------------\n");
|
seq_puts(s, "-------------------------------------------------------------------------------\n");
|
||||||
|
|
||||||
mutex_lock(®ulator_list_mutex);
|
mutex_lock(®ulator_list_mutex);
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue