Re: [PATCH 1/2] fbdev: don't select I2C directly

From: Geert Uytterhoeven
Date: Tue Feb 06 2018 - 06:07:51 EST


On Fri, Feb 2, 2018 at 12:59 PM, Arnd Bergmann <arnd@xxxxxxxx> wrote:
> On Fri, Feb 2, 2018 at 1:21 AM, Randy Dunlap <rdunlap@xxxxxxxxxxxxx> wrote:
>> b. DRM configuration is a mess. You shouldn't want to follow their model. :)
>
> Right, that should also be fixed, so DRM no longer includes I2C ;-)
>
> At the moment, DRM is the most common cause for circular dependencies
> because it has a number of 'select' statements for symbols that otherwise
> are used with 'depends on'. We should probably address the 'select I2C'
> portion in there, but also some of the others like:
>
> drivers/gpu/drm/Kconfig: select POWER_SUPPLY
> drivers/gpu/drm/Kconfig: select HWMON
> drivers/gpu/drm/Kconfig: select FB
> drivers/gpu/drm/udl/Kconfig: select USB

USB? Seriously?

> drivers/gpu/drm/sti/Kconfig: select OF
> drivers/gpu/drm/sti/Kconfig: select RESET_CONTROLLER
> drivers/gpu/drm/etnaviv/Kconfig: select CMA if HAVE_DMA_CONTIGUOUS
> drivers/gpu/drm/etnaviv/Kconfig: select TMPFS
> drivers/gpu/drm/i915/Kconfig.debug: select DEBUG_FS
> drivers/gpu/drm/i915/Kconfig.debug: select PREEMPT_COUNT
> drivers/gpu/drm/i915/Kconfig.debug: select TRACING
> drivers/gpu/drm/i915/Kconfig.debug: select FAULT_INJECTION
> drivers/gpu/drm/mediatek/Kconfig: select MEMORY
> drivers/gpu/drm/mediatek/Kconfig: select GENERIC_PHY
> drivers/gpu/drm/msm/Kconfig: select REGULATOR
>
>> c. If I2C is not enabled in the FB menu, someone could just add something like this:
>>
>> comment "Enable I2C to see more driver choices"
>> depends on !I2C
>
> I don't think that would address the issue of 'defconfig' builds losing
> I2C support when it's no longer automatically selection. On x86, this
> is not an issue, as X86 always enables I2C. For the rest, we could
> do a hack like this:
>
> --- a/drivers/i2c/Kconfig
> +++ b/drivers/i2c/Kconfig
> @@ -8,6 +8,7 @@ config I2C
> tristate "I2C support"
> select RT_MUTEXES
> select IRQ_DOMAIN
> + default DRM || FB
> ---help---
> I2C (pronounce: I-squared-C) is a slow serial bus protocol used in
> many micro controller applications and developed by Philips. SMBus,
>
> which would let all 'defconfig' versions keep working. It's a bit ugly, but
> at least wouldn't cause other circular dependencies.

And then we'll have to refresh all defconfigs for machines with FB and
without I2C?

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds