Le 06/07/2023 à 08:14, Benjamin Gray a écrit : > On Thu, 2023-07-06 at 05:13 +0000, Christophe Leroy wrote: >> >> >> Le 05/07/2023 à 02:30, Benjamin Gray a écrit : >>> The drivers/rtc/rtc-ds1307.c driver has a direct dependency on >>> struct regmap_config, which is guarded behind CONFIG_REGMAP. >>> >>> Commit 70a640c0efa7 ("regmap: REGMAP_KUNIT should not select >>> REGMAP") >>> exposed this by disabling the default pick unless KUNIT_ALL_TESTS >>> is >>> set, causing the ppc64be allnoconfig build to fail. >>> >>> Signed-off-by: Benjamin Gray <bgray@xxxxxxxxxxxxx> >>> --- >>> drivers/rtc/Kconfig | 1 + >>> 1 file changed, 1 insertion(+) >>> >>> diff --git a/drivers/rtc/Kconfig b/drivers/rtc/Kconfig >>> index ffca9a8bb878..7455ebd189fe 100644 >>> --- a/drivers/rtc/Kconfig >>> +++ b/drivers/rtc/Kconfig >>> @@ -246,6 +246,7 @@ config RTC_DRV_AS3722 >>> >>> config RTC_DRV_DS1307 >>> tristate "Dallas/Maxim DS1307/37/38/39/40/41, ST M41T00, >>> EPSON RX-8025, ISL12057" >>> + select REGMAP >> >> As far as I can see, REGMAP defaults to Y when REGMAP_I2C is >> selected. >> Can you explain more in details why you have to select it explicitely >> ? >> If there is something wrong with the logic, then the logic should be >> fixed instead of just adding a selection of REGMAP for that >> particular >> RTC_DRV_DS1307. Because others like RTC_DRV_ABB5ZES3 or >> RTC_DRV_ABEOZ9 >> might have the exact same problem. > > Right, yeah, I don't want to assert this patch is the correct solution, > sending it was more to offer a fix and allow discussion if it should be > resolved some other way (so thanks for replying, I appreciate it). > > In terms of why I made this patch, the way I see it, if a config option > requires another config option be set, then "selects" is the natural > way of phrasing this dependency. "default" on the REGMAP side seems > weird. If it's a default, does that mean it can be overridden? But > RTC_DRV_DS1307 *requires* REGMAP; it's not just a "would be nice". The > build breaks without it. I mean't "why doesn't it work as is", and/or "why didn't you fix what doesn't work". Well, until commit 70a640c0efa7 ("regmap: REGMAP_KUNIT should not select REGMAP") it was not user-selectable so I couldn't be overridden. After commit 70a640c0efa7 ("regmap: REGMAP_KUNIT should not select REGMAP") it is overridable so we have an additional problem. Does RTC_DRV_DS1307 require REGMAP or does RTC_DRV_DS1307 require REGMAP_I2C and then REGMAP_I2C requires REGMAP ? I think that huge default like for REGMAP should be replaced by individual selection of REGMAP from each of those config items. For exemple REGMAP_I2C should select REGMAP then I guess it would also solve your issue wouldn't it ? > > But maybe KConfig works differently to my assumptions. Maybe the > referenced patch that causes the build failure is actually incorrect > (CC Geert). I spoke with Joel Stanley (CC) and he indicated you're not > supposed to depend on REGMAP like KUnit does? > > As for other drivers having the same problem, quite possibly, yes. But > the PPC configs don't seem to build those drivers, so I'd prefer to > leave it to anyone who does build them to report the error. I wasn't > planning to audit all the drivers, I was just trying to fix the PPC > configs I build and test. Well ok but that's probably the indication of a deeper problem which deserves a more generic fix.