regulator: output current-limit for all regulators in summary
PATCH 1/1 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[...]
--- drivers/regulator/core.c | 24 +++++------------------- 1 file changed, 5 insertions(+), 19 deletions(-)
drivers/regulator/core.c +5 -19
@@ -3949,23 +3949,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) {
@@ -3993,21 +3983,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)
@@ -4022,8 +4008,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);
Signature · 1 line
2.1.4
Quoted 2 lines · Heiko Stübner
Voltage regulators can have (unregulated) current limits too, so we should probably output both voltage and current for all regulators.
Applied, thanks.