diff options
author | Heiko Stübner <heiko@sntech.de> | 2015-04-10 13:48:41 +0200 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2015-04-10 15:46:32 +0100 |
commit | 23296099e70854a272fc369bab8ddcc57f27f97a (patch) | |
tree | 95e08253259c31d5e75598a9a4eb815cd6b05b07 | |
parent | 7c225ec90c368a474daa9803922f4b7d6fe6d5c8 (diff) | |
download | op-kernel-dev-23296099e70854a272fc369bab8ddcc57f27f97a.zip op-kernel-dev-23296099e70854a272fc369bab8ddcc57f27f97a.tar.gz |
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>
-rw-r--r-- | drivers/regulator/core.c | 24 |
1 files changed, 5 insertions, 19 deletions
diff --git a/drivers/regulator/core.c b/drivers/regulator/core.c index 5aae1bd..0ea0a01 100644 --- a/drivers/regulator/core.c +++ b/drivers/regulator/core.c @@ -3967,23 +3967,13 @@ static void regulator_summary_show_subtree(struct seq_file *s, if (!rdev) return; - mutex_lock(&rdev->mutex); - seq_printf(s, "%*s%-*s %3d %4d %6d ", level * 3 + 1, "", 30 - level * 3, rdev_get_name(rdev), rdev->use_count, rdev->open_count, rdev->bypass_count); - switch (rdev->desc->type) { - case REGULATOR_VOLTAGE: - seq_printf(s, "%5dmV ", - _regulator_get_voltage(rdev) / 1000); - break; - case REGULATOR_CURRENT: - seq_printf(s, "%5dmA ", - _regulator_get_current_limit(rdev) / 1000); - break; - } + seq_printf(s, "%5dmV ", _regulator_get_voltage(rdev) / 1000); + seq_printf(s, "%5dmA ", _regulator_get_current_limit(rdev) / 1000); c = rdev->constraints; if (c) { @@ -4011,21 +4001,17 @@ static void regulator_summary_show_subtree(struct seq_file *s, switch (rdev->desc->type) { case REGULATOR_VOLTAGE: - seq_printf(s, "%29dmV %5dmV", + seq_printf(s, "%37dmV %5dmV", consumer->min_uV / 1000, consumer->max_uV / 1000); break; case REGULATOR_CURRENT: - seq_printf(s, "%37dmA", - regulator_get_current_limit(consumer) / 1000); break; } seq_puts(s, "\n"); } - mutex_unlock(&rdev->mutex); - list_for_each_entry(child, list, list) { /* handle only non-root regulators supplied by current 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 regulator_dev *rdev; - seq_puts(s, " regulator use open bypass value min max\n"); - seq_puts(s, "-----------------------------------------------------------------------\n"); + seq_puts(s, " regulator use open bypass voltage current min max\n"); + seq_puts(s, "-------------------------------------------------------------------------------\n"); mutex_lock(®ulator_list_mutex); |