On Fri, May 05, 2023 at 04:56:47AM +0000, Vaittinen, Matti wrote:
On 5/4/23 17:33, Andy Shevchenko wrote:
On Wed, May 03, 2023 at 12:50:14PM +0300, Matti Vaittinen wrote:
...
+config ROHM_BU27008
+ tristate "ROHM BU27008 color (RGB+C/IR) sensor"
+ depends on I2C
+ select REGMAP_I2C
+ select IIO_GTS_HELPER
+ help
+ Enable support for the ROHM BU27008 color sensor.
+ The ROHM BU27008 is a sensor with 5 photodiodes (red, green,
+ blue, clear and IR) with four configurable channels. Red and
+ green being always available and two out of the rest three
+ (blue, clear, IR) can be selected to be simultaneously measured.
+ Typical application is adjusting LCD backlight of TVs,
+ mobile phones and tablet PCs.
Module name?
We have discussed this several times already.
https://lore.kernel.org/all/10c4663b-dd65-a545-786d-10aed6e6e5e9@xxxxxxxxxxxxxxxxx/
Module name is completely irrelevant when selecting a kernel configuration.
This option is also selectable by user.
...
Do you need regmap lock? If so, why (since you have mutex)?
I believe you know that regmap uses a default lock when no external lock
is given. So, I assume you mean that maybe we could set
'disable_locking' for the regmap here.
Correct.
It's nice to be occasionally pushed to think "out of the box". And yes,
disabling regmap lock is really out of my "normal box" :)
I didn't go through all of the code yet, but I think pretty much all of
the sequences which end up to register writes are indeed protected by
the mutex. (Well, probe is not but it is expected to only update one bit
while rest of the register should stay fixed).
It may be we could live without regmap_lock when driver is in it's
current state, but I am not convinced the performance improvement is
worth the risk. Having regmap unprotected is not common, and it is also
not easy to spot when making changes to the driver. In my opinion it is
a bit like asking for a nose-bleed unless there is really heavy reasons
to drop the lock... In this case, having the regmap_lock (which is
pretty much never locked because we have the mutex as you said) is
probably not a penalty that matters.
Basically you try to justify a hidden mine field in case somebody will think
"oh, we are protected by regmap lock, so why to bother call mutex_lock()" and
at the end it become a subtle bugs in the code. With disable_locking = true
I can see that code author _carefully thought through_ the locking schema and
understands the hardware and the code.
P.S. I'm wondering why your lines of text have a single trailing whitespace
but the last line.