With commit "usb: gadget: don't couple configfs to legacy gadgets"
it is possible to build a modular kernel with both built-in configfs
support and modular legacy gadget drivers.

But when building a kernel without modules, it is also necessary to be
able to build with configfs but without any legacy gadget driver.

Mark the choice for legacy gadget drivers as optional.

Fixes: bc49d1d17dcf ("usb: gadget: don't couple configfs to legacy gadgets")
Cc: <[email protected]> # 4.9+
Signed-off-by: Romain Izard <[email protected]>
---
changes in v2:
 - Reword description

 drivers/usb/gadget/Kconfig | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/drivers/usb/gadget/Kconfig b/drivers/usb/gadget/Kconfig
index 8ad203296079..e157e9aa4f3d 100644
--- a/drivers/usb/gadget/Kconfig
+++ b/drivers/usb/gadget/Kconfig
@@ -212,7 +212,7 @@ config USB_F_TCM
 # this first set of drivers all depend on bulk-capable hardware.
 
 config USB_CONFIGFS
-       tristate "USB functions configurable through configfs"
+       tristate "USB Gadget functions configurable through configfs"
        select USB_LIBCOMPOSITE
        help
          A Linux USB "gadget" can be set up through configfs.
@@ -458,8 +458,9 @@ config USB_CONFIGFS_F_TCM
          UAS utilizes the USB 3.0 feature called streams support.
 
 choice
-       tristate "USB Gadget Drivers"
+       tristate "USB Gadget precomposed configurations"
        default USB_ETH
+       optional
        help
          A Linux "Gadget Driver" talks to the USB Peripheral Controller
          driver through the abstract "gadget" API.  Some other operating
@@ -476,6 +477,12 @@ choice
          not be able work with that controller, or might need to implement
          a less common variant of a device class protocol.
 
+         The available choices each represent a single precomposed USB
+         gadget configuration. In the device model, each option contains
+         both the device instanciation as a child for a USB gadget
+         controller, and the relevant drivers for each function declared
+         by the device.
+
 source "drivers/usb/gadget/legacy/Kconfig"
 
 endchoice
-- 
2.9.3

Reply via email to