Re: [PATCH v2 2/2] iio: light: Add support for APDS9306 Light Sensor

From: Andy Shevchenko
Date: Mon Nov 06 2023 - 05:07:38 EST


On Sun, Nov 05, 2023 at 10:22:07PM +0800, kernel test robot wrote:

> >> drivers/iio/light/apds9306.c:598:10: warning: variable 'ret' is uninitialized when used here [-Wuninitialized]
> 598 | return ret;
> | ^~~
> drivers/iio/light/apds9306.c:593:9: note: initialize the variable 'ret' to silence this warning
> 593 | int ret, intg_old, gain_old, gain_new, gain_new_closest;
> | ^
> | = 0
> 1 warning generated.

Bad advice, just use correct error code instead of ret.

> 590 static int apds9306_intg_time_set(struct apds9306_data *data, int val2)
> 591 {
> 592 struct device *dev = data->dev;
> 593 int ret, intg_old, gain_old, gain_new, gain_new_closest;
> 594 bool ok;
> 595
> 596 if (!iio_gts_valid_time(&data->gts, val2)) {
> 597 dev_err(dev, "Unsupported integration time %u\n", val2);
> > 598 return ret;
> 599 }
> 600
> 601 intg_old = iio_gts_find_int_time_by_sel(&data->gts,
> 602 data->intg_time_idx);
> 603 if (ret < 0)
> 604 return ret;
> 605
> 606 if (intg_old == val2)
> 607 return 0;
> 608
> 609 gain_old = iio_gts_find_gain_by_sel(&data->gts, data->gain_idx);
> 610 if (gain_old < 0)
> 611 return gain_old;
> 612
> 613 ret = iio_gts_find_new_gain_by_old_gain_time(&data->gts, gain_old,
> 614 intg_old, val2, &gain_new);
> 615 if (gain_new < 0) {
> 616 dev_err(dev, "Unsupported gain with time\n");
> 617 return gain_new;
> 618 }
> 619
> 620 gain_new_closest = iio_find_closest_gain_low(&data->gts, gain_new, &ok);
> 621 if (gain_new_closest < 0) {
> 622 gain_new_closest = iio_gts_get_min_gain(&data->gts);
> 623 if (gain_new_closest < 0)
> 624 return gain_new_closest < 0;
> 625 }
> 626 if (!ok)
> 627 dev_dbg(dev, "Unable to find optimum gain, setting minimum");
> 628
> 629 ret = iio_gts_find_sel_by_int_time(&data->gts, val2);
> 630 if (ret < 0)
> 631 return ret;
> 632
> 633 ret = apds9306_intg_time_set_hw(data, ret);
> 634 if (ret)
> 635 return ret;
> 636
> 637 ret = iio_gts_find_sel_by_gain(&data->gts, gain_new_closest);
> 638 if (ret < 0)
> 639 return ret;
> 640
> 641 return apds9306_gain_set_hw(data, ret);
> 642 }

--
With Best Regards,
Andy Shevchenko