Re: [PATCH] iio: dac: Fix passing uninitialized vref1_uV for no Vref1 case

From: David Lechner

Date: Tue Apr 14 2026 - 09:21:11 EST


On 4/14/26 7:48 AM, Andy Shevchenko wrote:
> On Tue, Apr 14, 2026 at 03:33:38PM +0300, Ariana Lazar wrote:
>> Initialize vref1_uV variable to 0 before calling
>> mcp47feb02_init_ch_scales() in mcp47feb02_probe() to avoid passing an
>> uninitialized value when have_ext_vref1 is false.
>
> ...
>
>> + vref1_uV = 0;
>> if (chip_features->have_ext_vref1) {
>
> I'm wondering what will happen if we do the below unconditionally?
>
>> ret = devm_regulator_get_enable_read_voltage(dev, "vref1");
>
> If we have no regulator, we get a dummy one, right? What is the voltage will
> be? 0?

It will fail with -EINVAL because dummy regulator doesn't have a
voltage specified anywhere.

>
>> if (ret > 0) {
>> vref1_uV = ret;
>> data->use_vref1 = true;
>> } else {
>> - vref1_uV = 0;
>> dev_dbg(dev, "using internal band gap as voltage reference 1.\n");
>> dev_dbg(dev, "Vref1 is unavailable.\n");
>> }
>