From: "Javier Carrasco" <javier.carrasco.cruz@gmail.com>
To: "Andy Shevchenko" <andriy.shevchenko@intel.com>,
"Javier Carrasco" <javier.carrasco.cruz@gmail.com>
Cc: "Jonathan Cameron" <jic23@kernel.org>,
"Lars-Peter Clausen" <lars@metafoo.de>,
"Rob Herring" <robh@kernel.org>,
"Krzysztof Kozlowski" <krzk+dt@kernel.org>,
"Conor Dooley" <conor+dt@kernel.org>,
"David Lechner" <dlechner@baylibre.com>,
"Nuno Sá" <nuno.sa@analog.com>,
"Andy Shevchenko" <andy@kernel.org>,
linux-iio@vger.kernel.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH v6 2/4] iio: light: add support for veml6031x00 ALS series
Date: Thu, 13 Aug 2026 11:46:32 +0200 [thread overview]
Message-ID: <DKNPY12RSCH4.2KQCX98171G2H@gmail.com> (raw)
In-Reply-To: <an1rR07iJd_XLSPr@ashevche-desk.local>
Hello Andy, thank you again for your thorough review.
On Thu Aug 13, 2026 at 8:59 AM CEST, Andy Shevchenko wrote:
> On Wed, Aug 12, 2026 at 10:27:41PM +0200, Javier Carrasco wrote:
>> These sensors provide two light channels (ALS and IR), I2C communication
>> and a multiplexed interrupt line to signal data ready and configurable
>> threshold alarms.
>
>> This first implementation provides basic functionality (measurement
>> configuration, raw reads and ID validation) and defines the different
>> register regions in preparation for extended features in the subsequent
>> patches of the series.
>
> This paragraph needs to be rephrased. In the current form it suits cover letter
> and not the commit message. Here, just list the features supported.
>
> The "the subsequent patches of the series." in the commit message is very
> ambiguous. What patch series? Which patches? Are they landed in the upstream?
> If yes, which commit IDs? If not, when if ever? Et cetera! Usually it can be
> simply said "The other features may be implemented later on."
>
This commit message will be re-worked. Up to v3 the driver was sent as a
single patch, and as I split it, it stayed a bit too dependent of what I
was sending as separate patches. But there is no real need for it.
...
>
>> + data->regmap = devm_regmap_init_i2c(i2c, &veml6031x00_regmap_config);
>> + if (IS_ERR(data->regmap))
>> + return dev_err_probe(dev, PTR_ERR(data->regmap),
>> + "Failed to set regmap\n");
>
> Is debugfs access already enabled for regmap after this call? Perhaps you want
> mutex to be initialised before that?
>
Could you please explain what you are trying to avoid? Even if the
debugfs is already enabled for regmap at this point, what is the
possible race condition? The IIO device is still not registered at this
point, and the registers are set to their right values in _hw_init()
after the mutexes were initialized. Moving the mutex initialization a
couple of lines towards the top is not an issue, but I would like to
understand the reasoning behind.
>> + iio->name = data->chip->name;
>> + iio->channels = veml6031x00_channels;
>> + iio->num_channels = ARRAY_SIZE(veml6031x00_channels);
>> + iio->modes = INDIO_DIRECT_MODE;
>> + iio->info = &veml6031x00_info;
>> +
>> + ret = devm_mutex_init(dev, &data->scale_lock);
>> + if (ret)
>> + return ret;
>> +
>> + ret = veml6031x00_regfield_init(data);
>> + if (ret)
>> + return dev_err_probe(dev, ret, "Failed to init regfield\n");
>> +
>> + ret = devm_regulator_get_enable(dev, "vdd");
>> + if (ret)
>> + return dev_err_probe(dev, ret, "Failed to enable regulator\n");
>> +
>> + /* The device starts in power down mode by default */
>> + ret = veml6031x00_set_power(data, true);
>> + if (ret)
>> + return dev_err_probe(dev, ret, "Failed to power on the device\n");
>> +
>> + ret = devm_add_action_or_reset(dev, veml6031x00_als_shutdown_action, data);
>> + if (ret)
>> + return dev_err_probe(dev, ret, "Failed to add shutdown action\n");
>> +
>> + pm_runtime_set_autosuspend_delay(dev, 2000);
>> + pm_runtime_use_autosuspend(dev);
>> + ret = devm_pm_runtime_set_active_enabled(dev);
>> + if (ret)
>> + return dev_err_probe(dev, ret, "Failed to enable runtime PM\n");
>> +
>> + pm_runtime_get_noresume(dev);
>> +
>> + ret = veml6031x00_validate_part_id(data);
>> + if (ret)
>> + goto err_pm_put;
>> +
>> + ret = veml6031x00_hw_init(iio);
>> + if (ret)
>> + goto err_pm_put;
>> +
>> + pm_runtime_put_autosuspend(dev);
>> +
>> + ret = devm_iio_device_register(dev, iio);
>> + if (ret)
>> + return dev_err_probe(dev, ret, "Failed to register iio device\n");
>> +
>> + return 0;
>
>> +err_pm_put:
>> + pm_runtime_put_noidle(dev);
>
> Hmm... This is usually a red flag to see a goto after devm_*() calls.
>
Could you please elaborate on this? I am aware of the dangers of a goto
after the cleanup attribute, but devm_*() calls work on a different
scope, not local to the function. What could go wrong? This goto is just
a way not to repeat pm_runtime_put_noidle(); return ret; and I am not
strongly against repeating these two lines wherever there is a goto, but
I am not sure what we are avoiding in this case.
>> + return ret;
>> +}
Best regards,
Javier
next prev parent reply other threads:[~2026-08-13 9:46 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-12 20:27 [PATCH v6 0/4] iio: light: add support for veml6031x00 ALS series Javier Carrasco
2026-08-12 20:27 ` [PATCH v6 1/4] dt-bindings: iio: light: veml6030: add " Javier Carrasco
2026-08-12 20:27 ` [PATCH v6 2/4] iio: light: add support for " Javier Carrasco
2026-08-13 1:04 ` Jonathan Cameron
2026-08-13 1:27 ` Jonathan Cameron
2026-08-13 7:30 ` Andy Shevchenko
2026-08-13 6:59 ` Andy Shevchenko
2026-08-13 9:46 ` Javier Carrasco [this message]
2026-08-12 20:27 ` [PATCH v6 3/4] iio: light: veml6031x00: add support for triggered buffers Javier Carrasco
2026-08-13 1:09 ` Jonathan Cameron
2026-08-13 8:34 ` Andy Shevchenko
2026-08-12 20:27 ` [PATCH v6 4/4] iio: light: veml6031x00: add support for events and trigger Javier Carrasco
2026-08-12 20:47 ` sashiko-bot
2026-08-13 1:24 ` Jonathan Cameron
2026-08-13 12:43 ` Javier Carrasco
2026-08-13 8:41 ` Andy Shevchenko
2026-08-13 0:48 ` [PATCH v6 0/4] iio: light: add support for veml6031x00 ALS series Jonathan Cameron
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=DKNPY12RSCH4.2KQCX98171G2H@gmail.com \
--to=javier.carrasco.cruz@gmail.com \
--cc=andriy.shevchenko@intel.com \
--cc=andy@kernel.org \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=dlechner@baylibre.com \
--cc=jic23@kernel.org \
--cc=krzk+dt@kernel.org \
--cc=lars@metafoo.de \
--cc=linux-iio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=nuno.sa@analog.com \
--cc=robh@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.