---- On Tue, 01 Oct 2019 16:02:10 -0700 Guenter Roeck <li...@roeck-us.net> 
wrote ----
 
 > > -    val = clamp_val(val, 500, 1600); 
 > > +    switch (data->info->vrm_version) { 
 > > +    case vr11: 
 > > +        val = clamp_val(val, 500, 1600); 
 > > +        return 2 + DIV_ROUND_CLOSEST((1600 - val) * 100, 625); 
 > > +    case vr12: 
 > > +        val = clamp_val(val, 0, 1520); 
 > > +        return ((val - 250) / 5) + 1; 
 > > +    case vr13: 
 > > +        val = clamp_val(val, 0, 2500); 
 > > +        return ((val - 500) / 10) + 1; 
 >  
 > Both vr12 and vr13 converts low values into negative values, 
 > which are then converted into more or less random register 
 > values. That can not be correct. The resulting register values 
 > must always be valid. 
 >  
 > Guenter 

Thanks for catching this.  It may be as simple as me adjusting the lower
bound on the clamp_val.  I’ll check with one of the device specs and
confirm the appropriate behavior on the lower bounds.

Reply via email to