diff options
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/mach-omap2/smartreflex-class1p5.c | 26 |
1 files changed, 11 insertions, 15 deletions
diff --git a/arch/arm/mach-omap2/smartreflex-class1p5.c b/arch/arm/mach-omap2/smartreflex-class1p5.c index 42a76a2..2090884 100644 --- a/arch/arm/mach-omap2/smartreflex-class1p5.c +++ b/arch/arm/mach-omap2/smartreflex-class1p5.c @@ -138,7 +138,7 @@ static void sr_class1p5_calib_work(struct work_struct *work) { struct sr_class1p5_work_data *work_data = container_of(work, struct sr_class1p5_work_data, work.work); - unsigned long u_volt_safe = 0, u_volt_current = 0, u_volt_margin; + unsigned long u_volt_safe = 0, u_volt_current = 0, u_volt_margin = 0; struct omap_volt_data *volt_data; struct voltagedomain *voltdm; int idx = 0; @@ -260,10 +260,6 @@ stop_sampling: if (work_data->u_volt_samples[idx] > u_volt_safe) u_volt_safe = work_data->u_volt_samples[idx]; } - /* Use the nominal voltage as the safe voltage to recover bad osc */ - if (u_volt_safe > volt_data->volt_nominal) - u_volt_safe = volt_data->volt_nominal; - /* Fall through to close up common stuff */ done_calib: @@ -289,16 +285,16 @@ done_calib: } else { u_volt_margin = volt_data->volt_margin; } - /* Add margin IF we are lower than nominal */ - if ((u_volt_safe + u_volt_margin) < volt_data->volt_nominal) { - u_volt_safe += u_volt_margin; - } else { - pr_err("%s: %s could not add %ld[%d] margin" - "to vnom %d curr_v=%ld\n", - __func__, voltdm->name, u_volt_margin, - volt_data->volt_margin, volt_data->volt_nominal, - u_volt_current); - } + + u_volt_safe += u_volt_margin; + } + + if (u_volt_safe > volt_data->volt_nominal) { + pr_warning("%s: %s Vsafe %ld > Vnom %d. %ld[%d] margin on" + "vnom %d curr_v=%ld\n", __func__, voltdm->name, + u_volt_safe, volt_data->volt_nominal, u_volt_margin, + volt_data->volt_margin, volt_data->volt_nominal, + u_volt_current); } volt_data->volt_calibrated = u_volt_safe; |