Re: [PATCH v2] usb: gadget: legacy gadgets are optional

From: Romain Izard
Date: Fri Mar 10 2017 - 04:42:19 EST


Hello Felipe,

2017-03-10 10:15 GMT+01:00 Felipe Balbi <balbi@xxxxxxxxxx>:
>
> Hi,
>
> Romain Izard <romain.izard.pro@xxxxxxxxx> writes:
>> 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: <stable@xxxxxxxxxxxxxxx> # 4.9+
>
> this is *NOT* a fix since this requirement didn't exist before.

It worked in 4.1, as a non-modular kernel would only have a single entry
from the USB gadget driver choice option, and USB_CONFIGFS was one of
those.

When I moved on to 4.9, this configuration could not be selected anymore.

>
>> Signed-off-by: Romain Izard <romain.izard.pro@xxxxxxxxx>
>> ---
>> 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"
>
> unrelated change
>
>> 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"
>
> unrelated change
>
>> 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.
>
> unrelated change

I'll split this.

Best regards,
--
Romain Izard