Although technically checking for ADC values below 0 is correct,
because they are outside of the calibration values, there is usually
noise which spuriously fills the console log with error messages if
calculated input voltage gets close to 0V.
Ignore small negative calculated values, but clamp them to 0.
Signed-off-by: H. Nikolaus Schaller <[email protected]>
---
drivers/iio/adc/palmas_gpadc.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/iio/adc/palmas_gpadc.c b/drivers/iio/adc/palmas_gpadc.c
index f9c8385c72d3..bcfa6a7f6cb2 100644
--- a/drivers/iio/adc/palmas_gpadc.c
+++ b/drivers/iio/adc/palmas_gpadc.c
@@ -376,7 +376,8 @@ static int palmas_gpadc_get_calibrated_code(struct palmas_gpadc *adc,
adc->adc_info[adc_chan].gain_error;
if (val < 0) {
- dev_err(adc->dev, "Mismatch with calibration\n");
+ if (val < -10)
+ dev_err(adc->dev, "Mismatch with calibration var = %d\n", val);
return 0;
}
--
2.33.0
On Tue, 8 Mar 2022 13:53:03 +0100
"H. Nikolaus Schaller" <[email protected]> wrote:
> Although technically checking for ADC values below 0 is correct,
> because they are outside of the calibration values, there is usually
> noise which spuriously fills the console log with error messages if
> calculated input voltage gets close to 0V.
>
> Ignore small negative calculated values, but clamp them to 0.
>
> Signed-off-by: H. Nikolaus Schaller <[email protected]>
Hi.
Should we treat this as a fix or a cleanup?
I don't mind either way.
Jonathan
> ---
> drivers/iio/adc/palmas_gpadc.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/iio/adc/palmas_gpadc.c b/drivers/iio/adc/palmas_gpadc.c
> index f9c8385c72d3..bcfa6a7f6cb2 100644
> --- a/drivers/iio/adc/palmas_gpadc.c
> +++ b/drivers/iio/adc/palmas_gpadc.c
> @@ -376,7 +376,8 @@ static int palmas_gpadc_get_calibrated_code(struct palmas_gpadc *adc,
> adc->adc_info[adc_chan].gain_error;
>
> if (val < 0) {
> - dev_err(adc->dev, "Mismatch with calibration\n");
> + if (val < -10)
> + dev_err(adc->dev, "Mismatch with calibration var = %d\n", val);
> return 0;
> }
>
Hi Jonathan,
> Am 20.03.2022 um 16:52 schrieb Jonathan Cameron <[email protected]>:
>
> On Tue, 8 Mar 2022 13:53:03 +0100
> "H. Nikolaus Schaller" <[email protected]> wrote:
>
>> Although technically checking for ADC values below 0 is correct,
>> because they are outside of the calibration values, there is usually
>> noise which spuriously fills the console log with error messages if
>> calculated input voltage gets close to 0V.
>>
>> Ignore small negative calculated values, but clamp them to 0.
>>
>> Signed-off-by: H. Nikolaus Schaller <[email protected]>
> Hi.
>
> Should we treat this as a fix or a cleanup?
>
> I don't mind either way.
I don't mind either since we have it for long time in our distribution kernel.
BR and thanks,
Nikolaus
>
> Jonathan
>
>
>> ---
>> drivers/iio/adc/palmas_gpadc.c | 3 ++-
>> 1 file changed, 2 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/iio/adc/palmas_gpadc.c b/drivers/iio/adc/palmas_gpadc.c
>> index f9c8385c72d3..bcfa6a7f6cb2 100644
>> --- a/drivers/iio/adc/palmas_gpadc.c
>> +++ b/drivers/iio/adc/palmas_gpadc.c
>> @@ -376,7 +376,8 @@ static int palmas_gpadc_get_calibrated_code(struct palmas_gpadc *adc,
>> adc->adc_info[adc_chan].gain_error;
>>
>> if (val < 0) {
>> - dev_err(adc->dev, "Mismatch with calibration\n");
>> + if (val < -10)
>> + dev_err(adc->dev, "Mismatch with calibration var = %d\n", val);
>> return 0;
>> }
>>
>
On Sun, 20 Mar 2022 17:28:21 +0100
"H. Nikolaus Schaller" <[email protected]> wrote:
> Hi Jonathan,
>
> > Am 20.03.2022 um 16:52 schrieb Jonathan Cameron <[email protected]>:
> >
> > On Tue, 8 Mar 2022 13:53:03 +0100
> > "H. Nikolaus Schaller" <[email protected]> wrote:
> >
> >> Although technically checking for ADC values below 0 is correct,
> >> because they are outside of the calibration values, there is usually
> >> noise which spuriously fills the console log with error messages if
> >> calculated input voltage gets close to 0V.
> >>
> >> Ignore small negative calculated values, but clamp them to 0.
> >>
> >> Signed-off-by: H. Nikolaus Schaller <[email protected]>
> > Hi.
> >
> > Should we treat this as a fix or a cleanup?
> >
> > I don't mind either way.
>
> I don't mind either since we have it for long time in our distribution kernel.
>
> BR and thanks,
> Nikolaus
Treated as cleanup so applied to the togreg branch of iio.git, but for now
only pushed out as testing because I'll be rebasing on rc1 next week.
Thanks,
Jonathan
>
> >
> > Jonathan
> >
> >
> >> ---
> >> drivers/iio/adc/palmas_gpadc.c | 3 ++-
> >> 1 file changed, 2 insertions(+), 1 deletion(-)
> >>
> >> diff --git a/drivers/iio/adc/palmas_gpadc.c b/drivers/iio/adc/palmas_gpadc.c
> >> index f9c8385c72d3..bcfa6a7f6cb2 100644
> >> --- a/drivers/iio/adc/palmas_gpadc.c
> >> +++ b/drivers/iio/adc/palmas_gpadc.c
> >> @@ -376,7 +376,8 @@ static int palmas_gpadc_get_calibrated_code(struct palmas_gpadc *adc,
> >> adc->adc_info[adc_chan].gain_error;
> >>
> >> if (val < 0) {
> >> - dev_err(adc->dev, "Mismatch with calibration\n");
> >> + if (val < -10)
> >> + dev_err(adc->dev, "Mismatch with calibration var = %d\n", val);
> >> return 0;
> >> }
> >>
> >
>