Commit bf7660da authored by Arnd Bergmann's avatar Arnd Bergmann Committed by Jiri Kosina

HID: stop drivers from selecting CONFIG_HID

There is a mix of drivers using either 'depends on HID' or 'select HID',
which causes both circular dependencies and missed dependencies for
a 'select':

WARNING: unment direct dependencies for HID
  Depends on [m]: HID_SUPPORT [=y] && INPUT [=m]
  Selected by [y]:
  - AMD_SFH_HID [=y] && HID_SUPPORT [=y] && (X86_64 || COMPILE_TEST [=y]) && PCI [=y]
  Selected by [m]:
  - I2C_HID_CORE [=m] && HID_SUPPORT [=y]

WARNING: unmet direct dependencies detected for INPUT_FF_MEMLESS
  Depends on [m]: INPUT [=m]
  Selected by [y]:
  - DRAGONRISE_FF [=y] && HID_SUPPORT [=y] && HID [=y] && HID_DRAGONRISE [=y]
  - HID_MICROSOFT [=y] && HID_SUPPORT [=y] && HID [=y]
  - GREENASIA_FF [=y] && HID_SUPPORT [=y] && HID [=y] && HID_GREENASIA [=y]
  Selected by [m]:
  - INPUT_ARIZONA_HAPTICS [=m] && INPUT [=m] && INPUT_MISC [=y] && MFD_ARIZONA [=y] && SND_SOC [=m]
  - INPUT_PM8XXX_VIBRATOR [=m] && INPUT [=m] && INPUT_MISC [=y] && (MFD_PM8XXX [=m] || MFD_SPMI_PMIC [=n])
  - INPUT_MAX8997_HAPTIC [=m] && INPUT [=m] && INPUT_MISC [=y] && PWM [=y] && MFD_MAX8997 [=y]
  - INPUT_GPIO_VIBRA [=m] && INPUT [=m] && INPUT_MISC [=y] && (GPIOLIB [=y] || COMPILE_TEST [=y])
  - INPUT_REGULATOR_HAPTIC [=m] && INPUT [=m] && INPUT_MISC [=y] && REGULATOR [=y]
  - INPUT_TWL6040_VIBRA [=m] && INPUT [=m] && INPUT_MISC [=y] && TWL6040_CORE [=y]
  - INPUT_PWM_VIBRA [=m] && INPUT [=m] && INPUT_MISC [=y] && PWM [=y]
  - INPUT_DRV260X_HAPTICS [=m] && INPUT_MISC [=y] && INPUT [=m] && I2C [=y] && (GPIOLIB [=y] || COMPILE_TEST [=y])
  - INPUT_DRV2665_HAPTICS [=m] && INPUT_MISC [=y] && INPUT [=m] && I2C [=y]
  - INPUT_DRV2667_HAPTICS [=m] && INPUT_MISC [=y] && INPUT [=m] && I2C [=y]
  - INPUT_SC27XX_VIBRA [=m] && INPUT [=m] && INPUT_MISC [=y] && (MFD_SC27XX_PMIC [=y] || COMPILE_TEST [=y])
  - HID_MAYFLASH [=m] && HID_SUPPORT [=y] && HID [=y]

Avoid this by changing all HID client drivers to use 'depends on HID'.
For I2C_HID, this requires a larger rework of the Kconfig description,
but it hopefully becomes easier to understand without the complex
I2C_HID_CORE definition.

Fixes: 25621bcc ("HID: Kconfig: split HID support and hid-core compilation")
Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
Acked-by: default avatarRandy Dunlap <rdunlap@infradead.org>
Reviewed-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
parent e9d48abb
...@@ -5,7 +5,7 @@ menu "AMD SFH HID Support" ...@@ -5,7 +5,7 @@ menu "AMD SFH HID Support"
config AMD_SFH_HID config AMD_SFH_HID
tristate "AMD Sensor Fusion Hub" tristate "AMD Sensor Fusion Hub"
select HID depends on HID
help help
If you say yes to this option, support will be included for the If you say yes to this option, support will be included for the
AMD Sensor Fusion Hub. AMD Sensor Fusion Hub.
......
# SPDX-License-Identifier: GPL-2.0-only # SPDX-License-Identifier: GPL-2.0-only
menu "I2C HID support" menuconfig I2C_HID
depends on I2C tristate "I2C HID support"
default y
depends on I2C && INPUT && HID
if I2C_HID
config I2C_HID_ACPI config I2C_HID_ACPI
tristate "HID over I2C transport layer ACPI driver" tristate "HID over I2C transport layer ACPI driver"
default n depends on ACPI
depends on I2C && INPUT && ACPI select I2C_HID_CORE
help help
Say Y here if you use a keyboard, a touchpad, a touchscreen, or any 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. other HID based devices which is connected to your computer via I2C.
...@@ -19,8 +23,8 @@ config I2C_HID_ACPI ...@@ -19,8 +23,8 @@ config I2C_HID_ACPI
config I2C_HID_OF config I2C_HID_OF
tristate "HID over I2C transport layer Open Firmware driver" tristate "HID over I2C transport layer Open Firmware driver"
default n depends on OF
depends on I2C && INPUT && OF select I2C_HID_CORE
help help
Say Y here if you use a keyboard, a touchpad, a touchscreen, or any 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. other HID based devices which is connected to your computer via I2C.
...@@ -34,8 +38,8 @@ config I2C_HID_OF ...@@ -34,8 +38,8 @@ config I2C_HID_OF
config I2C_HID_OF_ELAN config I2C_HID_OF_ELAN
tristate "Driver for Elan hid-i2c based devices on OF systems" tristate "Driver for Elan hid-i2c based devices on OF systems"
default n depends on OF
depends on I2C && INPUT && OF select I2C_HID_CORE
help help
Say Y here if you want support for Elan i2c devices that use Say Y here if you want support for Elan i2c devices that use
the i2c-hid protocol on Open Firmware (Device Tree)-based the i2c-hid protocol on Open Firmware (Device Tree)-based
...@@ -49,8 +53,8 @@ config I2C_HID_OF_ELAN ...@@ -49,8 +53,8 @@ config I2C_HID_OF_ELAN
config I2C_HID_OF_GOODIX config I2C_HID_OF_GOODIX
tristate "Driver for Goodix hid-i2c based devices on OF systems" tristate "Driver for Goodix hid-i2c based devices on OF systems"
default n depends on OF
depends on I2C && INPUT && OF select I2C_HID_CORE
help help
Say Y here if you want support for Goodix i2c devices that use Say Y here if you want support for Goodix i2c devices that use
the i2c-hid protocol on Open Firmware (Device Tree)-based the i2c-hid protocol on Open Firmware (Device Tree)-based
...@@ -62,10 +66,7 @@ config I2C_HID_OF_GOODIX ...@@ -62,10 +66,7 @@ config I2C_HID_OF_GOODIX
will be called i2c-hid-of-goodix. It will also build/depend on will be called i2c-hid-of-goodix. It will also build/depend on
the module i2c-hid. the module i2c-hid.
endmenu
config I2C_HID_CORE config I2C_HID_CORE
tristate tristate
default y if I2C_HID_ACPI=y || I2C_HID_OF=y || I2C_HID_OF_GOODIX=y endif
default m if I2C_HID_ACPI=m || I2C_HID_OF=m || I2C_HID_OF_GOODIX=m
select HID
...@@ -6,7 +6,7 @@ config INTEL_ISH_HID ...@@ -6,7 +6,7 @@ config INTEL_ISH_HID
tristate "Intel Integrated Sensor Hub" tristate "Intel Integrated Sensor Hub"
default n default n
depends on X86 depends on X86
select HID depends on HID
help help
The Integrated Sensor Hub (ISH) enables the ability to offload The Integrated Sensor Hub (ISH) enables the ability to offload
sensor polling and algorithm processing to a dedicated low power sensor polling and algorithm processing to a dedicated low power
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment