[PATCH 1/3] fbdev: rework FB_DDC dependencies

From: Arnd Bergmann
Date: Wed Oct 27 2021 - 09:27:42 EST


From: Arnd Bergmann <arnd@xxxxxxxx>

Selecting FB_DDC currently turns on CONFIG_I2C implicitly,
which is often not desired and can lead to circular dependencies.

Change this to a 'depends on' and change all drivers that
rely on FB_DDC to have an appropriate I2C dependency as well.

Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx>
---
drivers/video/fbdev/Kconfig | 17 +++++++++++++----
1 file changed, 13 insertions(+), 4 deletions(-)

diff --git a/drivers/video/fbdev/Kconfig b/drivers/video/fbdev/Kconfig
index 6ed5e608dd04..c187a93c9a16 100644
--- a/drivers/video/fbdev/Kconfig
+++ b/drivers/video/fbdev/Kconfig
@@ -62,9 +62,8 @@ config FIRMWARE_EDID

config FB_DDC
tristate
- depends on FB
+ depends on FB && I2C
select I2C_ALGOBIT
- select I2C

config FB_BOOT_VESA_SUPPORT
bool
@@ -356,6 +355,7 @@ config FB_CYBER2000
config FB_CYBER2000_DDC
bool "DDC for CyberPro support"
depends on FB_CYBER2000
+ depends on I2C=y || I2C=FB_CYBER2000
select FB_DDC
default y
help
@@ -894,6 +894,7 @@ config FB_NVIDIA
config FB_NVIDIA_I2C
bool "Enable DDC Support"
depends on FB_NVIDIA
+ depends on I2C=y || I2C=FB_NVIDIA
select FB_DDC
help
This enables I2C support for nVidia Chipsets. This is used
@@ -940,6 +941,7 @@ config FB_RIVA
config FB_RIVA_I2C
bool "Enable DDC Support"
depends on FB_RIVA
+ depends on I2C=y || I2C=FB_RIVA
select FB_DDC
help
This enables I2C support for nVidia Chipsets. This is used
@@ -967,7 +969,7 @@ config FB_RIVA_BACKLIGHT

config FB_I740
tristate "Intel740 support"
- depends on FB && PCI
+ depends on FB && PCI && I2C
select FB_MODE_HELPERS
select FB_CFB_FILLRECT
select FB_CFB_COPYAREA
@@ -1021,6 +1023,7 @@ config FB_I810_GTF
config FB_I810_I2C
bool "Enable DDC Support"
depends on FB_I810 && FB_I810_GTF
+ depends on I2C=y || I2C=FB_I810
select FB_DDC
help
Add DDC/I2C support for i810fb. This will allow the driver to get
@@ -1076,6 +1079,7 @@ config FB_INTEL_DEBUG
config FB_INTEL_I2C
bool "DDC/I2C for Intel framebuffer support"
depends on FB_INTEL
+ depends on I2C=y || I2C=FB_INTEL
select FB_DDC
default y
help
@@ -1155,6 +1159,7 @@ config FB_MATROX_G
config FB_MATROX_I2C
tristate "Matrox I2C support"
depends on FB_MATROX
+ depends on I2C=y || I2C=FB_MATROX
select FB_DDC
help
This drivers creates I2C buses which are needed for accessing the
@@ -1220,6 +1225,7 @@ config FB_RADEON
config FB_RADEON_I2C
bool "DDC/I2C for ATI Radeon support"
depends on FB_RADEON
+ depends on I2C=y || I2C=FB_RADEON
select FB_DDC
default y
help
@@ -1329,6 +1335,7 @@ config FB_S3
config FB_S3_DDC
bool "DDC for S3 support"
depends on FB_S3
+ depends on I2C=y || I2C=FB_S3
select FB_DDC
default y
help
@@ -1354,6 +1361,7 @@ config FB_SAVAGE
config FB_SAVAGE_I2C
bool "Enable DDC2 Support"
depends on FB_SAVAGE
+ depends on I2C=y || I2C=FB_SAVAGE
select FB_DDC
help
This enables I2C support for S3 Savage Chipsets. This is used
@@ -1493,6 +1501,7 @@ config FB_3DFX_ACCEL
config FB_3DFX_I2C
bool "Enable DDC/I2C support"
depends on FB_3DFX
+ depends on I2C=y || I2C=FB_3DFX
select FB_DDC
default y
help
@@ -1532,7 +1541,7 @@ config FB_VT8623

config FB_TRIDENT
tristate "Trident/CyberXXX/CyberBlade support"
- depends on FB && PCI
+ depends on FB && PCI && I2C
select FB_CFB_FILLRECT
select FB_CFB_COPYAREA
select FB_CFB_IMAGEBLIT
--
2.29.2