linux/drivers/usb/gadget/legacy
Masahiro Yamada df8df5e4bc usb: get rid of 'choice' for legacy gadget drivers
drivers/usb/gadget/legacy/Kconfig creates a 'choice' inside another
'choice'.

The outer choice: line 17 "USB Gadget precomposed configurations"
The inner choice: line 484 "EHCI Debug Device mode"

I wondered why the whole legacy gadget drivers reside in such a big
choice block.

This dates back to 2003, "[PATCH] USB: fix for multiple definition of
`usb_gadget_get_string'". [1]

At that time, the global function, usb_gadget_get_string(), was linked
into multiple drivers. That was why only one driver was able to become
built-in at the same time.

Later, commit a84d9e5361 ("usb: gadget: start with libcomposite")
moved usb_gadget_get_string() to a separate module, libcomposite.ko
instead of including usbstring.c from multiple modules.

More and more refactoring was done, and after commit 1bcce93947
("usb: gadget: multi: convert to new interface of f_mass_storage"),
you can link multiple gadget drivers into vmlinux without causing
multiple definition error.

This is the only user of the nested choice structure ever. Removing
this mess will make some Kconfig cleanups possible.

[1]: https://git.kernel.org/pub/scm/linux/kernel/git/history/history.git/commit/?id=fee4cf49a81381e072c063571d1aadbb29207408

Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
Acked-by: Felipe Balbi <balbi@kernel.org>
Link: https://lore.kernel.org/r/20200315154948.26569-1-masahiroy@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2020-03-16 08:36:35 +01:00
..
acm_ms.c usb: gadget: Remove set but not used variable 'opts' in acm_ms_do_config 2019-10-22 10:39:01 +03:00
audio.c usb: Remove Blackfin references in USB support 2018-03-26 15:57:16 +02:00
cdc2.c usb: gadget: legacy: set max_speed to super-speed 2020-01-15 10:39:21 +01:00
dbgp.c USB: add SPDX identifiers to all remaining files in drivers/usb/ 2017-11-04 11:48:02 +01:00
ether.c USB: gadget: legacy: Remove redundant license text 2017-11-07 15:45:02 +01:00
g_ffs.c usb: gadget: legacy: set max_speed to super-speed 2020-01-15 10:39:21 +01:00
gmidi.c usb: gadget: legacy: gmidi: remove useless cast for driver.name 2020-02-19 11:10:24 +01:00
hid.c USB: gadget: legacy: Remove redundant license text 2017-11-07 15:45:02 +01:00
inode.c usb: gadget: legacy: inode: remove useless cast for driver.name 2020-02-19 11:10:24 +01:00
Kconfig usb: get rid of 'choice' for legacy gadget drivers 2020-03-16 08:36:35 +01:00
Makefile usb: gadget: add raw-gadget interface 2020-03-15 11:34:48 +02:00
mass_storage.c usb: gadget: Remove set but not used variable 'opts' in msg_do_config 2019-10-22 10:39:04 +03:00
multi.c usb: gadget: legacy: set max_speed to super-speed 2020-01-15 10:39:21 +01:00
ncm.c usb: gadget: legacy: set max_speed to super-speed 2020-01-15 10:39:21 +01:00
nokia.c USB: gadget: legacy: Remove redundant license text 2017-11-07 15:45:02 +01:00
printer.c USB: gadget: legacy: Remove redundant license text 2017-11-07 15:45:02 +01:00
raw_gadget.c usb: gadget: add raw-gadget interface 2020-03-15 11:34:48 +02:00
serial.c usb: gadget: legacy/serial: allow dynamic removal 2019-10-22 10:27:15 +03:00
tcm_usb_gadget.c usb: gadget: tcm: fix spelling mistake: "Manufactor" -> "Manufacturer" 2018-07-26 13:35:29 +03:00
webcam.c usb: gadget: uvc: Move trace parameter to function module 2018-07-26 13:33:48 +03:00
zero.c USB: gadget: legacy: Remove redundant license text 2017-11-07 15:45:02 +01:00