Currently, we step into drivers/hid/ based on the value of
CONFIG_HID.
However, that value is a tristate, meaning that it can be a module.
As per the documentation, if we jump into the subdirectory by
following an obj-m, we can not compile anything inside that
subdirectory in vmlinux. It is considered as a bug.
To make things more friendly to HID-BPF, split HID (the HID core
parameter) from HID_SUPPORT (do we want any kind of HID support in the
system?), and make this new config a boolean.
Signed-off-by: Benjamin Tissoires <[email protected]>
---
new in v7
---
drivers/Makefile | 2 +-
drivers/hid/Kconfig | 20 +++++++++++---------
2 files changed, 12 insertions(+), 10 deletions(-)
diff --git a/drivers/Makefile b/drivers/Makefile
index 9a30842b22c5..7832431aa173 100644
--- a/drivers/Makefile
+++ b/drivers/Makefile
@@ -137,7 +137,7 @@ obj-$(CONFIG_CRYPTO) += crypto/
obj-$(CONFIG_SUPERH) += sh/
obj-y += clocksource/
obj-$(CONFIG_DCA) += dca/
-obj-$(CONFIG_HID) += hid/
+obj-$(CONFIG_HID_SUPPORT) += hid/
obj-$(CONFIG_PPC_PS3) += ps3/
obj-$(CONFIG_OF) += of/
obj-$(CONFIG_SSB) += ssb/
diff --git a/drivers/hid/Kconfig b/drivers/hid/Kconfig
index 70da5931082f..9fa21583c709 100644
--- a/drivers/hid/Kconfig
+++ b/drivers/hid/Kconfig
@@ -2,12 +2,18 @@
#
# HID driver configuration
#
-menu "HID support"
- depends on INPUT
+menuconfig HID_SUPPORT
+ bool "HID bus support"
+ default y
+ depends on INPUT
+ help
+ This option adds core support for human interface device (HID).
+ You will also need drivers from the following menu to make use of it.
+
+if HID_SUPPORT
config HID
- tristate "HID bus support"
- depends on INPUT
+ tristate "HID bus core support"
default y
help
A human interface device (HID) is a type of computer device that
@@ -24,8 +30,6 @@ config HID
If unsure, say Y.
-if HID
-
config HID_BATTERY_STRENGTH
bool "Battery level reporting for HID devices"
depends on HID
@@ -1308,8 +1312,6 @@ config HID_MCP2221
endmenu
-endif # HID
-
source "drivers/hid/usbhid/Kconfig"
source "drivers/hid/i2c-hid/Kconfig"
@@ -1320,4 +1322,4 @@ source "drivers/hid/amd-sfh-hid/Kconfig"
source "drivers/hid/surface-hid/Kconfig"
-endmenu
+endif # HID_SUPPORT
--
2.36.1
On Thu, Jul 21, 2022 at 05:36:13PM +0200, Benjamin Tissoires wrote:
> Currently, we step into drivers/hid/ based on the value of
> CONFIG_HID.
>
> However, that value is a tristate, meaning that it can be a module.
>
> As per the documentation, if we jump into the subdirectory by
> following an obj-m, we can not compile anything inside that
> subdirectory in vmlinux. It is considered as a bug.
>
> To make things more friendly to HID-BPF, split HID (the HID core
> parameter) from HID_SUPPORT (do we want any kind of HID support in the
> system?), and make this new config a boolean.
>
> Signed-off-by: Benjamin Tissoires <[email protected]>
>
> ---
Reviewed-by: Greg Kroah-Hartman <[email protected]>