2017-03-10 13:11:57

by Romain Izard

[permalink] [raw]
Subject: [PATCH v3 0/2] Various cleanups for USB Gadget Kconfig

Fix some issues left when the configuration was updated to support
a built-in USB gadget configfs together with modular legacy gadget
drivers.

Changes in v2:
- Reword description
Changes in v3:
- Split functional and comment changes

Romain Izard (2):
usb: gadget: legacy gadgets are optional
usb: gadget: reword configuration choices

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

--
2.9.3


2017-03-10 13:12:04

by Romain Izard

[permalink] [raw]
Subject: [PATCH v3 1/2] usb: gadget: legacy gadgets are optional

With commit bc49d1d17dcf ("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. This
was a possible configuration when the USB_CONFIGFS was a part of the
choice options, but not anymore.

Mark the choice for legacy gadget drivers as optional restores this.

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
Changes in v3:
- Remove comment changes

drivers/usb/gadget/Kconfig | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/usb/gadget/Kconfig b/drivers/usb/gadget/Kconfig
index 8ad203296079..f3ee80ece682 100644
--- a/drivers/usb/gadget/Kconfig
+++ b/drivers/usb/gadget/Kconfig
@@ -460,6 +460,7 @@ config USB_CONFIGFS_F_TCM
choice
tristate "USB Gadget Drivers"
default USB_ETH
+ optional
help
A Linux "Gadget Driver" talks to the USB Peripheral Controller
driver through the abstract "gadget" API. Some other operating
--
2.9.3

2017-03-10 13:12:37

by Romain Izard

[permalink] [raw]
Subject: [PATCH v3 2/2] usb: gadget: reword configuration choices

As USB_CONFIGFS is not a part of the "USB Gadget Drivers" choice
anymore, the name for the option and its attached description needs to
be more descriptive. It appears one level higher in the configuration
menu, and without the context provided by the comments for the choice
entry, it needs to make sense on its own.

Conversely, the "USB Gadget Drivers" entry now only introduces the
legacy drivers, where one or more functions are combined in a single
driver. As the configfs option can be used as a full-fledged
alternative, rename the choice entry to show that it is not the only
way to provice service as an USB gadget.

Signed-off-by: Romain Izard <[email protected]>
---
Changes in v3:
- split from the functional patch

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

diff --git a/drivers/usb/gadget/Kconfig b/drivers/usb/gadget/Kconfig
index f3ee80ece682..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,7 +458,7 @@ 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
@@ -477,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

2017-03-10 17:59:38

by Randy Dunlap

[permalink] [raw]
Subject: Re: [PATCH v3 2/2] usb: gadget: reword configuration choices

On 03/10/17 05:11, Romain Izard wrote:
> As USB_CONFIGFS is not a part of the "USB Gadget Drivers" choice
> anymore, the name for the option and its attached description needs to
> be more descriptive. It appears one level higher in the configuration
> menu, and without the context provided by the comments for the choice
> entry, it needs to make sense on its own.
>
> Conversely, the "USB Gadget Drivers" entry now only introduces the
> legacy drivers, where one or more functions are combined in a single
> driver. As the configfs option can be used as a full-fledged
> alternative, rename the choice entry to show that it is not the only
> way to provice service as an USB gadget.
>
> Signed-off-by: Romain Izard <[email protected]>
> ---
> Changes in v3:
> - split from the functional patch
>
> drivers/usb/gadget/Kconfig | 10 ++++++++--
> 1 file changed, 8 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/usb/gadget/Kconfig b/drivers/usb/gadget/Kconfig
> index f3ee80ece682..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,7 +458,7 @@ 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
> @@ -477,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

instantiation

> + controller, and the relevant drivers for each function declared
> + by the device.
> +
> source "drivers/usb/gadget/legacy/Kconfig"
>
> endchoice
>


--
~Randy

2017-03-28 13:48:19

by Felipe Balbi

[permalink] [raw]
Subject: Re: [PATCH v3 2/2] usb: gadget: reword configuration choices


Hi,

Randy Dunlap <[email protected]> writes:
>> @@ -477,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
>
> instantiation

fixed locally, thanks

--
balbi