Re: [1/3] drm/tinydrm/Kconfig: Remove menuconfig DRM_TINYDRM

From: Noralf TrÃnnes
Date: Tue Oct 01 2019 - 09:28:58 EST




Den 01.10.2019 14.36, skrev Jason Gunthorpe:
> On Thu, Jul 25, 2019 at 12:51:30PM +0200, Noralf TrÃnnes wrote:
>> This makes the tiny drivers visible by default without having to enable a
>> knob.
>>
>> Signed-off-by: Noralf TrÃnnes <noralf@xxxxxxxxxxx>
>> Reviewed-by: Hans de Goede <hdegoede@xxxxxxxxxx> to it once
>> ---
>> drivers/gpu/drm/Makefile | 2 +-
>> drivers/gpu/drm/tinydrm/Kconfig | 37 +++++++++++++++++++--------------
>> 2 files changed, 22 insertions(+), 17 deletions(-)
>
> Bisection says this patch (28c47e16ea2a19adb47fe2c182cbd61cb854237c)
> breaks kconfig stuff in v5.4-rc by creating circular
> dependencies. Could someone send a -rc patch to fix this please?
>
> THINKPAD_ACPI (defined at drivers/platform/x86/Kconfig:484), with definition...
> ...depends on FB_SSD1307 (defined at drivers/video/fbdev/Kconfig:2259), with definition...
> ...depends on FB (defined at drivers/video/fbdev/Kconfig:12), with definition...
> ...depends on DRM_KMS_FB_HELPER (defined at drivers/gpu/drm/Kconfig:79), with definition...
> ...depends on DRM_KMS_HELPER (defined at drivers/gpu/drm/Kconfig:73), with definition...
> ...depends on TINYDRM_REPAPER (defined at drivers/gpu/drm/tinydrm/Kconfig:51), with definition...
> ...depends on THERMAL (defined at drivers/thermal/Kconfig:6), with definition...
> ...depends on SENSORS_NPCM7XX (defined at drivers/hwmon/Kconfig:1285), with definition...
> ...depends on HWMON (defined at drivers/hwmon/Kconfig:6), with definition...
> ...depends on THINKPAD_ACPI (defined at drivers/platform/x86/Kconfig:484), with definition...
> ...depends on ACPI_VIDEO (defined at drivers/acpi/Kconfig:193), with definition...
> ...depends on ACER_WMI (defined at drivers/platform/x86/Kconfig:19), with definition...
> ...depends on BACKLIGHT_CLASS_DEVICE (defined at drivers/video/backlight/Kconfig:144), with definition...
> ...depends again on THINKPAD_ACPI (defined at drivers/platform/x86/Kconfig:484)
>

Would this commit fix this by any chance:

drm/tiny: Kconfig: Remove always-y THERMAL dep. from TINYDRM_REPAPER
https://cgit.freedesktop.org/drm/drm-misc/commit/?id=dfef959803c728c616ad29b008cd91b3446a993a

Noralf.

> Full output:
>
> kconfiglib.KconfigError:
> Dependency loop
> ===============
>
> THINKPAD_ACPI (defined at drivers/platform/x86/Kconfig:484), with definition...
>
> config THINKPAD_ACPI
> tristate "ThinkPad ACPI Laptop Extras"
> select HWMON
> select NVRAM
> select NEW_LEDS
> select LEDS_CLASS
> select LEDS_TRIGGERS
> select LEDS_TRIGGER_AUDIO
> depends on ACPI && ACPI_BATTERY && INPUT && (RFKILL || RFKILL = n) && (ACPI_VIDEO || ACPI_VIDEO = n) && BACKLIGHT_CLASS_DEVICE && X86_PLATFORM_DEVICES && X86
> help
> This is a driver for the IBM and Lenovo ThinkPad laptops. It adds
> support for Fn-Fx key combinations, Bluetooth control, video
> output switching, ThinkLight control, UltraBay eject and more.
> For more information about this driver see
> <file:Documentation/admin-guide/laptops/thinkpad-acpi.rst> and
> <http://ibm-acpi.sf.net/> .
>
> This driver was formerly known as ibm-acpi.
>
> Extra functionality will be available if the rfkill (CONFIG_RFKILL)
> and/or ALSA (CONFIG_SND) subsystems are available in the kernel.
> Note that if you want ThinkPad-ACPI to be built-in instead of
> modular, ALSA and rfkill will also have to be built-in.
>
> If you have an IBM or Lenovo ThinkPad laptop, say Y or M here.
>
> ...depends on ACPI_VIDEO (defined at drivers/acpi/Kconfig:193), with definition...
>
> config ACPI_VIDEO
> tristate "Video"
> select THERMAL
> depends on X86 && BACKLIGHT_CLASS_DEVICE && INPUT && ACPI
> help
> This driver implements the ACPI Extensions For Display Adapters
> for integrated graphics devices on motherboard, as specified in
> ACPI 2.0 Specification, Appendix B. This supports basic operations
> such as defining the video POST device, retrieving EDID information,
> and setting up a video output.
>
> To compile this driver as a module, choose M here:
> the module will be called video.
>
> (select-related dependencies: (DRM_NOUVEAU && ACPI && X86 && BACKLIGHT_CLASS_DEVICE && INPUT && DRM && PCI && MMU && HAS_IOMEM) || (DRM_NOUVEAU && ACPI && X86 && DRM && PCI && MMU && HAS_IOMEM) || (DRM_I915 && ACPI && DRM && X86 && PCI && HAS_IOMEM) || (DRM_GMA500 && ACPI && DRM && PCI && X86 && MMU && HAS_IOMEM) || (ACER_WMI && ACPI && ACPI && BACKLIGHT_CLASS_DEVICE && SERIO_I8042 && INPUT && (RFKILL || RFKILL = n) && ACPI_WMI && X86_PLATFORM_DEVICES && X86))
>
> ...depends on ACER_WMI (defined at drivers/platform/x86/Kconfig:19), with definition...
>
> config ACER_WMI
> tristate "Acer WMI Laptop Extras"
> select LEDS_CLASS
> select NEW_LEDS
> select INPUT_SPARSEKMAP
> select ACPI_VIDEO if ACPI
> depends on ACPI && BACKLIGHT_CLASS_DEVICE && SERIO_I8042 && INPUT && (RFKILL || RFKILL = n) && ACPI_WMI && X86_PLATFORM_DEVICES && X86
> help
> This is a driver for newer Acer (and Wistron) laptops. It adds
> wireless radio and bluetooth control, and on some laptops,
> exposes the mail LED and LCD backlight.
>
> If you have an ACPI-WMI compatible Acer/ Wistron laptop, say Y or M
> here.
>
> ...depends on SERIO_I8042 (defined at drivers/input/serio/Kconfig:29), with definition...
>
> config SERIO_I8042
> tristate "i8042 PC Keyboard controller"
> default y
> depends on ARCH_MIGHT_HAVE_PC_SERIO && SERIO && !UML
> help
> i8042 is the chip over which the standard AT keyboard and PS/2
> mouse are connected to the computer. If you use these devices,
> you'll need to say Y here.
>
> If unsure, say Y.
>
> To compile this driver as a module, choose M here: the
> module will be called i8042.
>
> (select-related dependencies: (KEYBOARD_ATKBD && ARCH_MIGHT_HAVE_PC_SERIO && INPUT_KEYBOARD && INPUT && !UML) || (MOUSE_PS2 && ARCH_MIGHT_HAVE_PC_SERIO && INPUT_MOUSE && INPUT && !UML))
>
> ...depends on SERIO (defined at drivers/input/serio/Kconfig:5), with definition...
>
> config SERIO
> tristate "Serial I/O support"
> default y
> depends on !UML
> help
> Say Yes here if you have any input device that uses serial I/O to
> communicate with the system. This includes the
> * standard AT keyboard and PS/2 mouse *
> as well as serial mice, Sun keyboards, some joysticks and 6dof
> devices and more.
>
> If unsure, say Y.
>
> To compile this driver as a module, choose M here: the
> module will be called serio.
>
> (select-related dependencies: (KEYBOARD_ATKBD && INPUT_KEYBOARD && INPUT && !UML) || (KEYBOARD_LKKBD && INPUT_KEYBOARD && INPUT && !UML) || (KEYBOARD_HIL && (GSC || HP300) && INPUT_KEYBOARD && INPUT && !UML) || (KEYBOARD_NEWTON && INPUT_KEYBOARD && INPUT && !UML) || (KEYBOARD_STOWAWAY && INPUT_KEYBOARD && INPUT && !UML) || (KEYBOARD_SUNKBD && INPUT_KEYBOARD && INPUT && !UML) || (KEYBOARD_XTKBD && INPUT_KEYBOARD && INPUT && !UML) || (MOUSE_PS2 && INPUT_MOUSE && INPUT && !UML) || (MOUSE_SERIAL && INPUT_MOUSE && INPUT && !UML) || (MOUSE_VSXXXAA && INPUT_MOUSE && INPUT && !UML) || (JOYSTICK_WARRIOR && INPUT_JOYSTICK && INPUT && !UML) || (JOYSTICK_MAGELLAN && INPUT_JOYSTICK && INPUT && !UML) || (JOYSTICK_SPACEORB && INPUT_JOYSTICK && INPUT && !UML) || (JOYSTICK_SPACEBALL && INPUT_JOYSTICK && INPUT && !UML) || (JOYSTICK_STINGER && INPUT_JOYSTICK && INPUT && !UML) || (JOYSTICK_TWIDJOY && INPUT_JOYSTICK && INPUT && !UML) || (JOYSTICK_ZHENHUA && INPUT_JOYSTICK && INPUT && !UML) || (TABLET_SERIAL_WACOM4 && INPUT_TABLET && INPUT && !UML) || (TOUCHSCREEN_DYNAPRO && INPUT_TOUCHSCREEN && INPUT && !UML) || (TOUCHSCREEN_HAMPSHIRE && INPUT_TOUCHSCREEN && INPUT && !UML) || (TOUCHSCREEN_EGALAX_SERIAL && INPUT_TOUCHSCREEN && INPUT && !UML) || (TOUCHSCREEN_FUJITSU && INPUT_TOUCHSCREEN && INPUT && !UML) || (TOUCHSCREEN_GUNZE && INPUT_TOUCHSCREEN && INPUT && !UML) || (TOUCHSCREEN_ELO && INPUT_TOUCHSCREEN && INPUT && !UML) || (TOUCHSCREEN_WACOM_W8001 && INPUT_TOUCHSCREEN && INPUT && !UML) || (TOUCHSCREEN_MTOUCH && INPUT_TOUCHSCREEN && INPUT && !UML) || (TOUCHSCREEN_INEXIO && INPUT_TOUCHSCREEN && INPUT && !UML) || (TOUCHSCREEN_PENMOUNT && INPUT_TOUCHSCREEN && INPUT && !UML) || (TOUCHSCREEN_TOUCHRIGHT && INPUT_TOUCHSCREEN && INPUT && !UML) || (TOUCHSCREEN_TOUCHWIN && INPUT_TOUCHSCREEN && INPUT && !UML) || (TOUCHSCREEN_TOUCHIT213 && INPUT_TOUCHSCREEN && INPUT && !UML) || (TOUCHSCREEN_TSC_SERIO && INPUT_TOUCHSCREEN && INPUT && !UML) || (RMI4_F03_SERIO && RMI4_CORE && RMI4_F03 && RMI4_CORE && INPUT && !UML) || (I2C_TAOS_EVM && TTY && HAS_IOMEM && I2C) || (USB_PULSE8_CEC && USB_ACM && MEDIA_CEC_SUPPORT && MEDIA_USB_SUPPORT && USB && MEDIA_SUPPORT && MEDIA_SUPPORT) || (USB_RAINSHADOW_CEC && USB_ACM && MEDIA_CEC_SUPPORT && MEDIA_USB_SUPPORT && USB && MEDIA_SUPPORT && MEDIA_SUPPORT))
>
> ...depends on RMI4_F03 (defined at drivers/input/rmi4/Kconfig:46), with definition...
>
> config RMI4_F03
> bool "RMI4 Function 03 (PS2 Guest)"
> depends on RMI4_CORE && RMI4_CORE && INPUT && !UML
> help
> Say Y here if you want to add support for RMI4 function 03.
>
> Function 03 provides PS2 guest support for RMI4 devices. This
> includes support for TrackPoints on TouchPads.
>
> (select-related dependencies: HID_RMI && HID && HID && HID && INPUT)
>
> ...depends on HID_RMI (defined at drivers/hid/Kconfig:919), with definition...
>
> config HID_RMI
> tristate "Synaptics RMI4 device support"
> select RMI4_CORE
> select RMI4_F03
> select RMI4_F11
> select RMI4_F12
> select RMI4_F30
> depends on HID && HID && HID && INPUT
> help
> Support for Synaptics RMI4 touchpads.
> Say Y here if you have a Synaptics RMI4 touchpads over i2c-hid or usbhid
> and want support for its special functionalities.
>
> ...depends on HID (defined at drivers/hid/Kconfig:8), with definition...
>
> config HID
> tristate "HID bus support"
> default y
> depends on INPUT && INPUT
> help
> A human interface device (HID) is a type of computer device that
> interacts directly with and takes input from humans. The term "HID"
> most commonly used to refer to the USB-HID specification, but other
> devices (such as, but not strictly limited to, Bluetooth) are
> designed using HID specification (this involves certain keyboards,
> mice, tablets, etc). This option adds the HID bus to the kernel,
> together with generic HID layer code. The HID devices are added and
> removed from the HID bus by the transport-layer drivers, such as
> usbhid (USB_HID) and hidp (BT_HIDP).
>
> For docs and specs, see http://www.usb.org/developers/hidpage/
>
> If unsure, say Y.
>
> (select-related dependencies: (BT_HIDP && BT_BREDR && INPUT && NET) || (USB_HID && USB && INPUT && USB && INPUT) || (I2C_HID && I2C && INPUT && I2C && INPUT) || (INTEL_ISH_HID && (X86_64 || COMPILE_TEST) && PCI && INPUT))
>
> ...depends on I2C_HID (defined at drivers/hid/i2c-hid/Kconfig:5), with definition...
>
> config I2C_HID
> tristate "HID over I2C transport layer"
> default n
> select HID
> depends on I2C && INPUT && I2C && INPUT
> help
> Say Y here if you use a keyboard, a touchpad, a touchscreen, or any
> other HID based devices which is connected to your computer via I2C.
>
> If unsure, say N.
>
> This support is also available as a module. If so, the module
> will be called i2c-hid.
>
> ...depends on I2C (defined at drivers/i2c/Kconfig:8), with definition...
>
> config I2C
> tristate "I2C support"
> select RT_MUTEXES
> select IRQ_DOMAIN
> help
> I2C (pronounce: I-squared-C) is a slow serial bus protocol used in
> many micro controller applications and developed by Philips. SMBus,
> or System Management Bus is a subset of the I2C protocol. More
> information is contained in the directory <file:Documentation/i2c/>,
> especially in the file called "summary" there.
>
> Both I2C and SMBus are supported here. You will need this for
> hardware sensors support, and also for Video For Linux support.
>
> If you want I2C support, you should say Y here and also to the
> specific driver for your bus adapter(s) below.
>
> This I2C support can also be built as a module. If so, the module
> will be called i2c-core.
>
> (select-related dependencies: (X86_INTEL_MID && X86_EXTENDED_PLATFORM && X86_PLATFORM_DEVICES && PCI && (X86_64 || (PCI_GOANY && X86_32)) && X86_IO_APIC) || (CAN_PEAK_PCIEC && CAN_PEAK_PCI && CAN_SJA1000 && CAN_DEV && CAN && NET) || (IGB && PCI && NET_VENDOR_INTEL && ETHERNET && NETDEVICES) || (SFC && PCI && NET_VENDOR_SOLARFLARE && ETHERNET && NETDEVICES) || (SFC_FALCON && PCI && NET_VENDOR_SOLARFLARE && ETHERNET && NETDEVICES) || (IPMI_SSIF && IPMI_HANDLER) || I3C || (MEDIA_SUBDRV_AUTOSELECT && (MEDIA_ANALOG_TV_SUPPORT || MEDIA_DIGITAL_TV_SUPPORT || MEDIA_CAMERA_SUPPORT || MEDIA_SDR_SUPPORT) && HAS_IOMEM && MEDIA_SUPPORT) || (DRM && (AGP || AGP = n) && !EMULATED_CMPXCHG && HAS_DMA && HAS_IOMEM) || (FB_DDC && FB && HAS_IOMEM) || (SND_AOA_ONYX && SND_AOA && SND && !UML && SOUND) || (SND_AOA_TAS && SND_AOA && SND && !UML && SOUND) || (ARCH_R8A7790 && ARM && ARCH_RENESAS && SOC_RENESAS) || (ARCH_R8A7791 && ARM && ARCH_RENESAS && SOC_RENESAS) || (ARCH_R8A7793 && ARM && ARCH_RENESAS && SOC_RENESAS) || (PHY_EXYNOS5250_SATA && SOC_EXYNOS5250 && HAS_IOMEM && OF))
>
> ...depends on FB_DDC (defined at drivers/video/fbdev/Kconfig:63), with definition...
>
> config FB_DDC
> tristate
> select I2C_ALGOBIT
> select I2C
> depends on FB && HAS_IOMEM
>
> (select-related dependencies: (FB_CYBER2000_DDC && FB_CYBER2000 && HAS_IOMEM) || (FB_NVIDIA_I2C && FB_NVIDIA && HAS_IOMEM) || (FB_RIVA_I2C && FB_RIVA && HAS_IOMEM) || (FB_I740 && FB && PCI && HAS_IOMEM) || (FB_I810_I2C && FB_I810 && FB_I810_GTF && HAS_IOMEM) || (FB_INTEL_I2C && FB_INTEL && HAS_IOMEM) || (FB_MATROX_I2C && FB_MATROX && HAS_IOMEM) || (FB_RADEON_I2C && FB_RADEON && HAS_IOMEM) || (FB_S3_DDC && FB_S3 && HAS_IOMEM) || (FB_SAVAGE_I2C && FB_SAVAGE && HAS_IOMEM) || (FB_3DFX_I2C && FB_3DFX && HAS_IOMEM) || (FB_TRIDENT && FB && PCI && HAS_IOMEM))
>
> ...depends on FB_S3 (defined at drivers/video/fbdev/Kconfig:1314), with definition...
>
> config FB_S3
> tristate "S3 Trio/Virge support"
> select FB_CFB_FILLRECT
> select FB_CFB_COPYAREA
> select FB_CFB_IMAGEBLIT
> select FB_TILEBLITTING
> select FB_SVGALIB
> select VGASTATE
> select FONT_8x16 if FRAMEBUFFER_CONSOLE
> depends on FB && PCI && HAS_IOMEM
> help
> Driver for graphics boards with S3 Trio / S3 Virge chip.
>
> ...depends on FB (defined at drivers/video/fbdev/Kconfig:12), with definition...
>
> menuconfig FB
> tristate "Support for frame buffer devices"
> select FB_CMDLINE
> select FB_NOTIFY
> depends on HAS_IOMEM
> help
> The frame buffer device provides an abstraction for the graphics
> hardware. It represents the frame buffer of some video hardware and
> allows application software to access the graphics hardware through
> a well-defined interface, so the software doesn't need to know
> anything about the low-level (hardware register) stuff.
>
> Frame buffer devices work identically across the different
> architectures supported by Linux and make the implementation of
> application programs easier and more portable; at this point, an X
> server exists which uses the frame buffer device exclusively.
> On several non-X86 architectures, the frame buffer device is the
> only way to use the graphics hardware.
>
> The device is accessed through special device nodes, usually located
> in the /dev directory, i.e. /dev/fb*.
>
> You need an utility program called fbset to make full use of frame
> buffer devices. Please read <file:Documentation/fb/framebuffer.rst>
> and the Framebuffer-HOWTO at
> <http://www.munted.org.uk/programming/Framebuffer-HOWTO-1.3.html> for more
> information.
>
> Say Y here and to the driver for your graphics board below if you
> are compiling a kernel for a non-x86 architecture.
>
> If you are compiling for the x86 architecture, you can say Y if you
> want to play with it, but it is not essential. Please note that
> running graphical applications that directly touch the hardware
> (e.g. an accelerated X server) and that are not frame buffer
> device-aware may cause unexpected results. If unsure, say N.
>
> (select-related dependencies: (DRM_KMS_FB_HELPER && DRM_KMS_HELPER && HAS_IOMEM) || (DRM_VMWGFX && DRM && PCI && X86 && MMU && HAS_IOMEM))
>
> ...depends on DRM_KMS_HELPER (defined at drivers/gpu/drm/Kconfig:73), with definition...
>
> config DRM_KMS_HELPER
> tristate
> depends on DRM && HAS_IOMEM
> help
> CRTC helpers for KMS drivers.
>
> (select-related dependencies: (DRM_DEBUG_SELFTEST && DRM && DEBUG_KERNEL && HAS_IOMEM) || (DRM_FBDEV_EMULATION && DRM && HAS_IOMEM) || (DRM_HDLCD && DRM && OF && (ARM || ARM64) && COMMON_CLK && HAS_IOMEM) || (DRM_MALI_DISPLAY && DRM && OF && (ARM || ARM64) && COMMON_CLK && HAS_IOMEM) || (DRM_KOMEDA && DRM && OF && COMMON_CLK && HAS_IOMEM) || (DRM_RADEON && DRM && PCI && MMU && HAS_IOMEM) || (DRM_AMDGPU && DRM && PCI && MMU && HAS_IOMEM) || (DRM_NOUVEAU && DRM && PCI && MMU && HAS_IOMEM) || (DRM_I915 && DRM && X86 && PCI && HAS_IOMEM) || (DRM_VKMS && DRM && HAS_IOMEM) || (DRM_EXYNOS && OF && DRM && (ARCH_S3C64XX || ARCH_S5PV210 || ARCH_EXYNOS || ARCH_MULTIPLATFORM || COMPILE_TEST) && HAS_IOMEM) || (DRM_ROCKCHIP && DRM && ROCKCHIP_IOMMU && HAS_IOMEM) || (DRM_VMWGFX && DRM && PCI && X86 && MMU && HAS_IOMEM) || (DRM_GMA500 && DRM && PCI && X86 && MMU && HAS_IOMEM) || (DRM_UDL && DRM && USB_SUPPORT && USB_ARCH_HAS_HCD && HAS_IOMEM) || (DRM_AST && DRM && PCI && MMU && HAS_IOMEM) || (DRM_MGAG200 && DRM && PCI && MMU && HAS_IOMEM) || (DRM_CIRRUS_QEMU && DRM && PCI && MMU && HAS_IOMEM) || (DRM_ARMADA && DRM && HAVE_CLK && ARM && MMU && HAS_IOMEM) || (DRM_ATMEL_HLCDC && DRM && OF && COMMON_CLK && MFD_ATMEL_HLCDC && ARM && HAS_IOMEM) || (DRM_RCAR_DU && DRM && OF && (ARM || ARM64) && (ARCH_RENESAS || COMPILE_TEST) && HAS_IOMEM) || (DRM_SHMOBILE && DRM && ARM && (ARCH_SHMOBILE || COMPILE_TEST) && HAS_IOMEM) || (DRM_SUN4I && DRM && (ARM || ARM64) && COMMON_CLK && (ARCH_SUNXI || COMPILE_TEST) && HAS_IOMEM) || (DRM_OMAP && DRM && (ARCH_OMAP2PLUS || ARCH_MULTIPLATFORM) && HAS_IOMEM) || (DRM_TILCDC && DRM && OF && ARM && HAS_IOMEM) || (DRM_QXL && DRM && PCI && MMU && HAS_IOMEM) || (DRM_BOCHS && DRM && PCI && MMU && HAS_IOMEM) || (DRM_VIRTIO_GPU && DRM && VIRTIO && MMU && HAS_IOMEM) || (DRM_MSM && DRM && (ARCH_QCOM || SOC_IMX5 || (ARM && COMPILE_TEST)) && OF && COMMON_CLK && MMU && (INTERCONNECT || !INTERCONNECT) && HAS_IOMEM) || (DRM_FSL_DCU && DRM && OF && ARM && COMMON_CLK && HAS_IOMEM) || (DRM_TEGRA && (ARCH_TEGRA || (ARM && COMPILE_TEST)) && COMMON_CLK && DRM && OF && HAS_IOMEM) || (DRM_STM && DRM && (ARCH_STM32 || ARCH_MULTIPLATFORM) && HAS_IOMEM) || (DRM_ANALOGIX_ANX78XX && DRM && DRM_BRIDGE && HAS_IOMEM) || (DRM_CDNS_DSI && OF && DRM && DRM_BRIDGE && HAS_IOMEM) || (DRM_DUMB_VGA_DAC && OF && DRM && DRM_BRIDGE && HAS_IOMEM) || (DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW && OF && DRM && DRM_BRIDGE && HAS_IOMEM) || (DRM_NXP_PTN3460 && OF && DRM && DRM_BRIDGE && HAS_IOMEM) || (DRM_PARADE_PS8622 && OF && DRM && DRM_BRIDGE && HAS_IOMEM) || (DRM_SIL_SII8620 && OF && DRM && DRM_BRIDGE && HAS_IOMEM) || (DRM_SII902X && OF && DRM && DRM_BRIDGE && HAS_IOMEM) || (DRM_TOSHIBA_TC358767 && OF && DRM && DRM_BRIDGE && HAS_IOMEM) || (DRM_TI_TFP410 && OF && DRM && DRM_BRIDGE && HAS_IOMEM) || (DRM_TI_SN65DSI86 && OF && DRM && DRM_BRIDGE && HAS_IOMEM) || (DRM_I2C_ADV7511 && OF && DRM && DRM_BRIDGE && HAS_IOMEM) || (DRM_DW_HDMI && DRM && DRM_BRIDGE && HAS_IOMEM) || (DRM_DW_MIPI_DSI && DRM && DRM_BRIDGE && HAS_IOMEM) || (DRM_STI && OF && DRM && (ARCH_STI || ARCH_MULTIPLATFORM) && HAS_IOMEM) || (DRM_IMX && DRM && (ARCH_MXC || ARCH_MULTIPLATFORM || COMPILE_TEST) && IMX_IPUV3_CORE && HAS_IOMEM) || (DRM_INGENIC && (MIPS || COMPILE_TEST) && DRM && CMA && OF && HAS_IOMEM) || (DRM_VC4 && (ARCH_BCM || ARCH_BCM2835 || COMPILE_TEST) && DRM && SND && SND_SOC && COMMON_CLK && HAS_IOMEM) || (DRM_ARCPGU && DRM && OF && HAS_IOMEM) || (DRM_HISI_HIBMC && DRM && PCI && MMU && HAS_IOMEM) || (DRM_HISI_KIRIN && DRM && OF && ARM64 && HAS_IOMEM) || (DRM_MEDIATEK && DRM && (ARCH_MEDIATEK || (ARM && COMPILE_TEST)) && COMMON_CLK && HAVE_ARM_SMCCC && OF && HAS_IOMEM) || (DRM_ZTE && DRM && ARCH_ZX && HAS_IOMEM) || (DRM_MXSFB && DRM && OF && COMMON_CLK && HAS_IOMEM) || (DRM_MESON && DRM && OF && (ARM || ARM64) && (ARCH_MESON || COMPILE_TEST) && HAS_IOMEM) || (TINYDRM_HX8357D && DRM && SPI && HAS_IOMEM) || (TINYDRM_ILI9225 && DRM && SPI && HAS_IOMEM) || (TINYDRM_ILI9341 && DRM && SPI && HAS_IOMEM) || (TINYDRM_MI0283QT && DRM && SPI && HAS_IOMEM) || (TINYDRM_REPAPER && DRM && SPI && (THERMAL || !THERMAL) && HAS_IOMEM) || (TINYDRM_ST7586 && DRM && SPI && HAS_IOMEM) || (TINYDRM_ST7735R && DRM && SPI && HAS_IOMEM) || (DRM_PL111 && DRM && (ARM || ARM64 || COMPILE_TEST) && COMMON_CLK && HAS_IOMEM) || (DRM_TVE200 && DRM && CMA && (ARM || COMPILE_TEST) && OF && HAS_IOMEM) || (DRM_XEN_FRONTEND && DRM_XEN && DRM && HAS_IOMEM) || (DRM_VBOXVIDEO && DRM && X86 && PCI && HAS_IOMEM) || (DRM_ASPEED_GFX && DRM && OF && (COMPILE_TEST || ARCH_ASPEED) && HAS_IOMEM) || (DRM_MCDE && DRM && CMA && (ARM || COMPILE_TEST) && OF && HAS_IOMEM) || (DRM_GM12U320 && DRM && USB && HAS_IOMEM))
>
> ...depends on THERMAL (defined at drivers/thermal/Kconfig:6), with definition...
>
> menuconfig THERMAL
> bool "Generic Thermal sysfs driver"
> help
> Generic Thermal Sysfs driver offers a generic mechanism for
> thermal management. Usually it's made up of one or more thermal
> zone and cooling device.
> Each thermal zone contains its own temperature, trip points,
> cooling devices.
> All platforms with ACPI thermal support can use this driver.
> If you want this support, you should say Y here.
>
> (select-related dependencies: (ACPI_VIDEO && X86 && BACKLIGHT_CLASS_DEVICE && INPUT && ACPI) || (ACPI_CPU_FREQ_PSS && ACPI) || (ACPI_THERMAL && ACPI_PROCESSOR && ACPI) || (DRM_NOUVEAU && ACPI && X86 && DRM && PCI && MMU && HAS_IOMEM) || (DRM_ETNAVIV && DRM_ETNAVIV_THERMAL && DRM && MMU && HAS_IOMEM) || (MMC_SDHCI_OMAP && MMC_SDHCI_PLTFM && OF && MMC) || (INTEL_MENLOW && ACPI_THERMAL && X86_PLATFORM_DEVICES && X86))
>
> (imply-related dependencies: (ACPI_VIDEO && X86 && BACKLIGHT_CLASS_DEVICE && INPUT && ACPI) || (ACPI_CPU_FREQ_PSS && ACPI) || (ACPI_THERMAL && ACPI_PROCESSOR && ACPI) || (DRM_NOUVEAU && ACPI && X86 && DRM && PCI && MMU && HAS_IOMEM) || (DRM_ETNAVIV && DRM_ETNAVIV_THERMAL && DRM && MMU && HAS_IOMEM) || (MMC_SDHCI_OMAP && MMC_SDHCI_PLTFM && OF && MMC) || (INTEL_MENLOW && ACPI_THERMAL && X86_PLATFORM_DEVICES && X86))
>
> ...depends on SENSORS_MLXREG_FAN (defined at drivers/hwmon/Kconfig:952), with definition...
>
> config SENSORS_MLXREG_FAN
> tristate "Mellanox Mellanox FAN driver"
> select REGMAP
> imply THERMAL
> depends on MELLANOX_PLATFORM && HWMON
> help
> This option enables support for the FAN control on the Mellanox
> Ethernet and InfiniBand switches. The driver can be activated by the
> platform device add call. Say Y to enable these. To compile this
> driver as a module, choose 'M' here: the module will be called
> mlxreg-fan.
>
> ...depends on HWMON (defined at drivers/hwmon/Kconfig:6), with definition...
>
> menuconfig HWMON
> tristate "Hardware Monitoring support"
> default y
> depends on HAS_IOMEM
> help
> Hardware monitoring devices let you monitor the hardware health
> of a system. Most modern motherboards include such a device. It
> can include temperature sensors, voltage sensors, fan speed
> sensors and various additional features such as the ability to
> control the speed of the fans. If you want this support you
> should say Y here and also to the specific driver(s) for your
> sensors chip(s) below.
>
> To find out which specific driver(s) you need, use the
> sensors-detect script from the lm_sensors package. Read
> <file:Documentation/hwmon/userspace-tools.rst> for details.
>
> This support can also be built as a module. If so, the module
> will be called hwmon.
>
> (select-related dependencies: I8K || (HABANA_AI && PCI && HAS_IOMEM) || (DRM_RADEON && DRM && PCI && MMU && HAS_IOMEM) || (DRM_AMDGPU && DRM && PCI && MMU && HAS_IOMEM) || (THINKPAD_ACPI && ACPI && ACPI_BATTERY && INPUT && (RFKILL || RFKILL = n) && (ACPI_VIDEO || ACPI_VIDEO = n) && BACKLIGHT_CLASS_DEVICE && X86_PLATFORM_DEVICES && X86) || (EEEPC_LAPTOP && ACPI && INPUT && (RFKILL || RFKILL = n) && (ACPI_VIDEO || ACPI_VIDEO = n) && HOTPLUG_PCI && BACKLIGHT_CLASS_DEVICE && X86_PLATFORM_DEVICES && X86) || (CPU_HWMON && LOONGSON_MACH3X && MIPS_PLATFORM_DEVICES && MIPS) || (NTB_IDT && PCI && NTB))
>
> (imply-related dependencies: I8K || (HABANA_AI && PCI && HAS_IOMEM) || (DRM_RADEON && DRM && PCI && MMU && HAS_IOMEM) || (DRM_AMDGPU && DRM && PCI && MMU && HAS_IOMEM) || (THINKPAD_ACPI && ACPI && ACPI_BATTERY && INPUT && (RFKILL || RFKILL = n) && (ACPI_VIDEO || ACPI_VIDEO = n) && BACKLIGHT_CLASS_DEVICE && X86_PLATFORM_DEVICES && X86) || (EEEPC_LAPTOP && ACPI && INPUT && (RFKILL || RFKILL = n) && (ACPI_VIDEO || ACPI_VIDEO = n) && HOTPLUG_PCI && BACKLIGHT_CLASS_DEVICE && X86_PLATFORM_DEVICES && X86) || (CPU_HWMON && LOONGSON_MACH3X && MIPS_PLATFORM_DEVICES && MIPS) || (NTB_IDT && PCI && NTB))
>
> ...depends again on THINKPAD_ACPI (defined at drivers/platform/x86/Kconfig:484)
>