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.
Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
 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/
 
 #
 # 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
 
 source "drivers/hid/surface-hid/Kconfig"
 
-endmenu
+endif # HID_SUPPORT
 
 menu "AMD SFH HID Support"
        depends on X86_64 || COMPILE_TEST
        depends on PCI
-       depends on HID
 
 config AMD_SFH_HID
        tristate "AMD Sensor Fusion Hub"
+       select HID
        help
          If you say yes to this option, support will be included for the
          AMD Sensor Fusion Hub.