Messages in this thread | | | Date | Tue, 3 Oct 2023 13:57:45 +0300 | Subject | Re: [PATCH v2 2/2] iio: adc: ad7173: add AD7173 driver | From | Ceclan Dumitru-Ioan <> |
| |
On 10/3/23 13:45, Andy Shevchenko wrote: > Subject: > Re: [PATCH v2 2/2] iio: adc: ad7173: add AD7173 driver > From: > Andy Shevchenko <andy@kernel.org> > Date: > 10/3/23, 13:45 > > To: > Ceclan Dumitru-Ioan <mitrutzceclan@gmail.com> > CC: > Jonathan Cameron <jic23@kernel.org>, linus.walleij@linaro.org, brgl@bgdev.pl, linux-gpio@vger.kernel.org, Lars-Peter Clausen <lars@metafoo.de>, Rob Herring <robh+dt@kernel.org>, Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>, Conor Dooley <conor+dt@kernel.org>, Michael Walle <michael@walle.cc>, Arnd Bergmann <arnd@arndb.de>, ChiaEn Wu <chiaen_wu@richtek.com>, Niklas Schnelle <schnelle@linux.ibm.com>, Leonard Göhrs <l.goehrs@pengutronix.de>, Mike Looijmans <mike.looijmans@topic.nl>, Haibo Chen <haibo.chen@nxp.com>, Hugo Villeneuve <hvilleneuve@dimonoff.com>, Ceclan Dumitru <dumitru.ceclan@analog.com>, linux-iio@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org > > > On Tue, Oct 03, 2023 at 01:33:36PM +0300, Ceclan Dumitru-Ioan wrote: >> On 9/30/23 17:05, Jonathan Cameron wrote: >>> On Thu, 28 Sep 2023 15:54:43 +0300 >>> Dumitru Ceclan <mitrutzceclan@gmail.com> wrote>> +config AD7173 >>>> + tristate "Analog Devices AD7173 driver" >>>> + depends on SPI_MASTER >>>> + select AD_SIGMA_DELTA >>>> + select GPIO_REGMAP >>> If you are selecting it, why does it have if guards in the driver. >>> I prefer the select here, so drop this if guards. >> From what i checked, selecting GPIO_REGMAP does not select GPIOLIB but only REGMAP. >> >> Also, in the thread from V1 Arnd Bergmann suggested: >> " I think the best way to handle these is to remove both >> the 'select' and the #ifdef in the driver and instead use >> 'if (IS_ENABLED(CONFIG_GPIOLIB))' to handle optional gpio >> providers in the code. " > Why not simply to be dependent on GPIOLIB like other drivers do in this folder?
I followed the suggestion given by Arnd. The full argument:
"From a Kconfig perspective, any user-visible symbol ideally only uses 'depends on', while hidden symbols usually use 'select'.
For the GPIOLIB symbol specifically, we have a mix of both, but the overall usage is that gpio consumers only use 'depends on', while some of the providers use 'select'. This risks causing build breakage from a dependency loop when combined with other symbols that have the same problem (e.g. I2C), but it tends to work out as long as a strong hierarchy is kept. In particular, using 'select' from an arch/*/Kconfig platform option is generally harmless as long as those don't depend on anything else.
The new driver is a gpio provider and at least ad4130 and ad5592r uses 'select' here, but then again ad74115 and ad74113 use 'depends on' and ads7950 uses neither.
I think the best way to handle these is to remove both the 'select' and the #ifdef in the driver and instead use 'if (IS_ENABLED(CONFIG_GPIOLIB))' to handle optional gpio providers in the code."
I do not have a lot of experience with this subject. As such, if you consider the argument invalid, mention it and i will change to 'depends on'.
| |