It's generally useful. On other architectures the UDC capable hardware might not be very common, but the dummy HCD makes it possible to use such hardware for development and emulation of USB gadget driver code. --- Changes since v2: * Rebased on v3.14-rc4-45-gd2a0476 (fedora package git: 2323b0271) * Do not move the modules to modules-extra
According to Peter & Adam, even certain Intel hardware has device mode capability, so this certainly is useful.
config-armv7-generic | 58 ------------------------------------------------- config-debug | 5 +++++ config-generic | 61 ++++++++++++++++++++++++++++++++++++++++++++++++---- config-nodebug | 3 +++ 4 files changed, 65 insertions(+), 62 deletions(-)
diff --git a/config-armv7-generic b/config-armv7-generic index a81ca01..d71e105 100644 --- a/config-armv7-generic +++ b/config-armv7-generic @@ -194,64 +194,6 @@ CONFIG_AX88796_93CX6=y CONFIG_USB_ISP1760_HCD=m # CONFIG_USB_EHCI_HCD_ORION is not set
-# usb gadget -CONFIG_USB_GADGET=m -CONFIG_USB_GADGET_MUSB_HDRC=m -CONFIG_USB_GADGET_VBUS_DRAW=100 -CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2 -CONFIG_USB_MUSB_HDRC=m -CONFIG_USB_MUSB_DUAL_ROLE=y -CONFIG_USB_MUSB_DSPS=m -CONFIG_USB_GPIO_VBUS=m -CONFIG_USB_G_ACM_MS=m -CONFIG_USB_G_DBGP=m -CONFIG_USB_G_DBGP_PRINTK=y -CONFIG_USB_G_DBGP_SERIAL=y -CONFIG_USB_G_MULTI=m -CONFIG_USB_G_MULTI_CDC=y -# CONFIG_USB_G_MULTI_RNDIS is not set -CONFIG_USB_G_NCM=m -CONFIG_USB_G_SERIAL=m -CONFIG_USB_ETH_EEM=y -# CONFIG_USB_ETH_RNDIS is not set -CONFIG_USB_CDC_COMPOSITE=m -CONFIG_USB_GADGET_TARGET=m -CONFIG_USB_MASS_STORAGE=m -CONFIG_USB_CONFIGFS=m -CONFIG_USB_CONFIGFS_ACM=y -CONFIG_USB_CONFIGFS_ECM=y -CONFIG_USB_CONFIGFS_ECM_SUBSET=y -CONFIG_USB_CONFIGFS_EEM=y -CONFIG_USB_CONFIGFS_MASS_STORAGE=y -CONFIG_USB_CONFIGFS_NCM=y -CONFIG_USB_CONFIGFS_OBEX=y -# CONFIG_USB_CONFIGFS_RNDIS is not set -CONFIG_USB_CONFIGFS_SERIAL=y -CONFIG_USB_CONFIGFS_STORAGE=y -# CONFIG_USB_CONFIGFS_F_LB_SS is not set -# CONFIG_USB_CONFIGFS_F_FS is not set - -# CONFIG_MUSB_PIO_ONLY is not set -# CONFIG_USB_MUSB_DEBUG is not set -# CONFIG_USB_GADGET_DEBUG is not set -# CONFIG_USB_GADGET_DEBUG_FILES is not set -# CONFIG_USB_GADGET_DEBUG_FS is not set -# CONFIG_USB_FUSB300 is not set -# CONFIG_USB_RENESAS_USBHS is not set -# CONFIG_USB_FOTG210_UDC is not set -# CONFIG_USB_R8A66597 is not set -# CONFIG_USB_PXA27X is not set -# CONFIG_USB_MV_UDC is not set -# CONFIG_USB_MV_U3D is not set -# CONFIG_USB_M66592 is not set -# CONFIG_USB_AMD5536UDC is not set -# CONFIG_USB_NET2272 is not set -# CONFIG_USB_NET2280 is not set -# CONFIG_USB_GOKU is not set -# CONFIG_USB_EG20T is not set -# CONFIG_USB_DUMMY_HCD is not set -# CONFIG_USB_ZERO_HNPTEST is not set - # Multifunction Devices CONFIG_MFD_TPS65090=y CONFIG_MFD_TPS65217=y diff --git a/config-debug b/config-debug index e225326..dfaacdb 100644 --- a/config-debug +++ b/config-debug @@ -124,3 +124,8 @@ CONFIG_EDAC_DEBUG=y CONFIG_X86_DEBUG_STATIC_CPU_HAS=y CONFIG_LATENCYTOP=y CONFIG_SCHEDSTATS=y + +CONFIG_USB_GADGET_DEBUG=y +CONFIG_USB_GADGET_DEBUG_FILES=y +CONFIG_USB_GADGET_DEBUG_FS=y +CONFIG_USB_GADGET_VERBOSE=y diff --git a/config-generic b/config-generic index fd1351d..cce441f 100644 --- a/config-generic +++ b/config-generic @@ -3714,7 +3714,6 @@ CONFIG_USB_ARMLINUX=y CONFIG_USB_EPSON2888=y CONFIG_USB_KC2190=y
-# CONFIG_USB_MUSB_HDRC is not set # CONFIG_USB_CHIPIDEA is not set
# @@ -3806,7 +3805,6 @@ CONFIG_USB_EZUSB=y CONFIG_USB_EMI62=m CONFIG_USB_LED=m # CONFIG_USB_CYPRESS_CY7C63 is not set -CONFIG_USB_G_SERIAL=m
# # USB Miscellaneous drivers @@ -3842,9 +3840,64 @@ CONFIG_USB_ETH=m CONFIG_USB_FTDI_ELAN=m CONFIG_USB_FILE_STORAGE=m # CONFIG_USB_FILE_STORAGE_TEST is not set -# CONFIG_USB_GADGET is not set + +# usb gadget +CONFIG_USB_GADGET=m +CONFIG_USB_GADGET_MUSB_HDRC=m +CONFIG_USB_GADGET_VBUS_DRAW=100 +CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2 +CONFIG_USB_MUSB_HDRC=m +CONFIG_USB_MUSB_DUAL_ROLE=y +CONFIG_USB_MUSB_DSPS=m +CONFIG_USB_G_ACM_MS=m +CONFIG_USB_G_DBGP=m +CONFIG_USB_G_DBGP_SERIAL=y +CONFIG_USB_G_MULTI=m +CONFIG_USB_G_MULTI_CDC=y +# CONFIG_USB_G_MULTI_RNDIS is not set +CONFIG_USB_G_NCM=m +CONFIG_USB_G_SERIAL=m +CONFIG_USB_ETH_EEM=y +# CONFIG_USB_ETH_RNDIS is not set +CONFIG_USB_CDC_COMPOSITE=m +CONFIG_USB_GADGET_TARGET=m +CONFIG_USB_MASS_STORAGE=m +CONFIG_USB_CONFIGFS=m +CONFIG_USB_CONFIGFS_ACM=y +CONFIG_USB_CONFIGFS_ECM=y +CONFIG_USB_CONFIGFS_ECM_SUBSET=y +CONFIG_USB_CONFIGFS_EEM=y +CONFIG_USB_CONFIGFS_MASS_STORAGE=y +CONFIG_USB_CONFIGFS_NCM=y +CONFIG_USB_CONFIGFS_OBEX=y +# CONFIG_USB_CONFIGFS_RNDIS is not set +CONFIG_USB_CONFIGFS_SERIAL=y +CONFIG_USB_CONFIGFS_STORAGE=y +# CONFIG_USB_CONFIGFS_F_LB_SS is not set +# CONFIG_USB_CONFIGFS_F_FS is not set + +# CONFIG_USB_RENESAS_USBHS is not set +# CONFIG_USB_FOTG210_UDC is not set +# CONFIG_USB_R8A66597 is not set +# CONFIG_USB_PXA27X is not set +# CONFIG_USB_MV_UDC is not set +# CONFIG_USB_MV_U3D is not set +# CONFIG_USB_M66592 is not set +# CONFIG_USB_NET2272 is not set +# CONFIG_USB_ZERO_HNPTEST is not set +# CONFIG_USB_FUSB300 is not set +# CONFIG_USB_AMD5536UDC is not set +# CONFIG_USB_NET2280 is not set +# CONFIG_USB_GOKU is not set +# CONFIG_USB_EG20T is not set +CONFIG_USB_DUMMY_HCD=m + # CONFIG_USB_DWC3 is not set -# CONFIG_USB_GADGETFS is not set +CONFIG_USB_GADGETFS=m +CONFIG_USB_FUNCTIONFS=m +CONFIG_USB_FUNCTIONFS_ETH=y +# CONFIG_USB_FUNCTIONFS_RNDIS is not set +CONFIG_USB_FUNCTIONFS_GENERIC=y # CONFIG_USB_OXU210HP_HCD is not set CONFIG_USB_IOWARRIOR=m CONFIG_USB_ISIGHTFW=m diff --git a/config-nodebug b/config-nodebug index 9d4b2e9..dd9af68 100644 --- a/config-nodebug +++ b/config-nodebug @@ -128,3 +128,6 @@ CONFIG_X86_DEBUG_STATIC_CPU_HAS=y # CONFIG_SCHEDSTATS is not set # CONFIG_LATENCYTOP is not set
+# CONFIG_USB_GADGET_DEBUG is not set +# CONFIG_USB_GADGET_DEBUG_FILES is not set +# CONFIG_USB_GADGET_DEBUG_FS is not set
On Wed, Mar 5, 2014 at 9:37 AM, Lubomir Rintel lkundrak@v3.sk wrote:
It's generally useful. On other architectures the UDC capable hardware might not be very common, but the dummy HCD makes it possible to use such hardware for development and emulation of USB gadget driver code.
ACK from me
Changes since v2:
- Rebased on v3.14-rc4-45-gd2a0476 (fedora package git: 2323b0271)
- Do not move the modules to modules-extra
According to Peter & Adam, even certain Intel hardware has device mode capability, so this certainly is useful.
config-armv7-generic | 58 ------------------------------------------------- config-debug | 5 +++++ config-generic | 61 ++++++++++++++++++++++++++++++++++++++++++++++++---- config-nodebug | 3 +++ 4 files changed, 65 insertions(+), 62 deletions(-)
diff --git a/config-armv7-generic b/config-armv7-generic index a81ca01..d71e105 100644 --- a/config-armv7-generic +++ b/config-armv7-generic @@ -194,64 +194,6 @@ CONFIG_AX88796_93CX6=y CONFIG_USB_ISP1760_HCD=m # CONFIG_USB_EHCI_HCD_ORION is not set
-# usb gadget -CONFIG_USB_GADGET=m -CONFIG_USB_GADGET_MUSB_HDRC=m -CONFIG_USB_GADGET_VBUS_DRAW=100 -CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2 -CONFIG_USB_MUSB_HDRC=m -CONFIG_USB_MUSB_DUAL_ROLE=y -CONFIG_USB_MUSB_DSPS=m -CONFIG_USB_GPIO_VBUS=m -CONFIG_USB_G_ACM_MS=m -CONFIG_USB_G_DBGP=m -CONFIG_USB_G_DBGP_PRINTK=y -CONFIG_USB_G_DBGP_SERIAL=y -CONFIG_USB_G_MULTI=m -CONFIG_USB_G_MULTI_CDC=y -# CONFIG_USB_G_MULTI_RNDIS is not set -CONFIG_USB_G_NCM=m -CONFIG_USB_G_SERIAL=m -CONFIG_USB_ETH_EEM=y -# CONFIG_USB_ETH_RNDIS is not set -CONFIG_USB_CDC_COMPOSITE=m -CONFIG_USB_GADGET_TARGET=m -CONFIG_USB_MASS_STORAGE=m -CONFIG_USB_CONFIGFS=m -CONFIG_USB_CONFIGFS_ACM=y -CONFIG_USB_CONFIGFS_ECM=y -CONFIG_USB_CONFIGFS_ECM_SUBSET=y -CONFIG_USB_CONFIGFS_EEM=y -CONFIG_USB_CONFIGFS_MASS_STORAGE=y -CONFIG_USB_CONFIGFS_NCM=y -CONFIG_USB_CONFIGFS_OBEX=y -# CONFIG_USB_CONFIGFS_RNDIS is not set -CONFIG_USB_CONFIGFS_SERIAL=y -CONFIG_USB_CONFIGFS_STORAGE=y -# CONFIG_USB_CONFIGFS_F_LB_SS is not set -# CONFIG_USB_CONFIGFS_F_FS is not set
-# CONFIG_MUSB_PIO_ONLY is not set -# CONFIG_USB_MUSB_DEBUG is not set -# CONFIG_USB_GADGET_DEBUG is not set -# CONFIG_USB_GADGET_DEBUG_FILES is not set -# CONFIG_USB_GADGET_DEBUG_FS is not set -# CONFIG_USB_FUSB300 is not set -# CONFIG_USB_RENESAS_USBHS is not set -# CONFIG_USB_FOTG210_UDC is not set -# CONFIG_USB_R8A66597 is not set -# CONFIG_USB_PXA27X is not set -# CONFIG_USB_MV_UDC is not set -# CONFIG_USB_MV_U3D is not set -# CONFIG_USB_M66592 is not set -# CONFIG_USB_AMD5536UDC is not set -# CONFIG_USB_NET2272 is not set -# CONFIG_USB_NET2280 is not set -# CONFIG_USB_GOKU is not set -# CONFIG_USB_EG20T is not set -# CONFIG_USB_DUMMY_HCD is not set -# CONFIG_USB_ZERO_HNPTEST is not set
# Multifunction Devices CONFIG_MFD_TPS65090=y CONFIG_MFD_TPS65217=y diff --git a/config-debug b/config-debug index e225326..dfaacdb 100644 --- a/config-debug +++ b/config-debug @@ -124,3 +124,8 @@ CONFIG_EDAC_DEBUG=y CONFIG_X86_DEBUG_STATIC_CPU_HAS=y CONFIG_LATENCYTOP=y CONFIG_SCHEDSTATS=y
+CONFIG_USB_GADGET_DEBUG=y +CONFIG_USB_GADGET_DEBUG_FILES=y +CONFIG_USB_GADGET_DEBUG_FS=y +CONFIG_USB_GADGET_VERBOSE=y diff --git a/config-generic b/config-generic index fd1351d..cce441f 100644 --- a/config-generic +++ b/config-generic @@ -3714,7 +3714,6 @@ CONFIG_USB_ARMLINUX=y CONFIG_USB_EPSON2888=y CONFIG_USB_KC2190=y
-# CONFIG_USB_MUSB_HDRC is not set # CONFIG_USB_CHIPIDEA is not set
# @@ -3806,7 +3805,6 @@ CONFIG_USB_EZUSB=y CONFIG_USB_EMI62=m CONFIG_USB_LED=m # CONFIG_USB_CYPRESS_CY7C63 is not set -CONFIG_USB_G_SERIAL=m
# # USB Miscellaneous drivers @@ -3842,9 +3840,64 @@ CONFIG_USB_ETH=m CONFIG_USB_FTDI_ELAN=m CONFIG_USB_FILE_STORAGE=m # CONFIG_USB_FILE_STORAGE_TEST is not set -# CONFIG_USB_GADGET is not set
+# usb gadget +CONFIG_USB_GADGET=m +CONFIG_USB_GADGET_MUSB_HDRC=m +CONFIG_USB_GADGET_VBUS_DRAW=100 +CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2 +CONFIG_USB_MUSB_HDRC=m +CONFIG_USB_MUSB_DUAL_ROLE=y +CONFIG_USB_MUSB_DSPS=m +CONFIG_USB_G_ACM_MS=m +CONFIG_USB_G_DBGP=m +CONFIG_USB_G_DBGP_SERIAL=y +CONFIG_USB_G_MULTI=m +CONFIG_USB_G_MULTI_CDC=y +# CONFIG_USB_G_MULTI_RNDIS is not set +CONFIG_USB_G_NCM=m +CONFIG_USB_G_SERIAL=m +CONFIG_USB_ETH_EEM=y +# CONFIG_USB_ETH_RNDIS is not set +CONFIG_USB_CDC_COMPOSITE=m +CONFIG_USB_GADGET_TARGET=m +CONFIG_USB_MASS_STORAGE=m +CONFIG_USB_CONFIGFS=m +CONFIG_USB_CONFIGFS_ACM=y +CONFIG_USB_CONFIGFS_ECM=y +CONFIG_USB_CONFIGFS_ECM_SUBSET=y +CONFIG_USB_CONFIGFS_EEM=y +CONFIG_USB_CONFIGFS_MASS_STORAGE=y +CONFIG_USB_CONFIGFS_NCM=y +CONFIG_USB_CONFIGFS_OBEX=y +# CONFIG_USB_CONFIGFS_RNDIS is not set +CONFIG_USB_CONFIGFS_SERIAL=y +CONFIG_USB_CONFIGFS_STORAGE=y +# CONFIG_USB_CONFIGFS_F_LB_SS is not set +# CONFIG_USB_CONFIGFS_F_FS is not set
+# CONFIG_USB_RENESAS_USBHS is not set +# CONFIG_USB_FOTG210_UDC is not set +# CONFIG_USB_R8A66597 is not set +# CONFIG_USB_PXA27X is not set +# CONFIG_USB_MV_UDC is not set +# CONFIG_USB_MV_U3D is not set +# CONFIG_USB_M66592 is not set +# CONFIG_USB_NET2272 is not set +# CONFIG_USB_ZERO_HNPTEST is not set +# CONFIG_USB_FUSB300 is not set +# CONFIG_USB_AMD5536UDC is not set +# CONFIG_USB_NET2280 is not set +# CONFIG_USB_GOKU is not set +# CONFIG_USB_EG20T is not set +CONFIG_USB_DUMMY_HCD=m
# CONFIG_USB_DWC3 is not set -# CONFIG_USB_GADGETFS is not set +CONFIG_USB_GADGETFS=m +CONFIG_USB_FUNCTIONFS=m +CONFIG_USB_FUNCTIONFS_ETH=y +# CONFIG_USB_FUNCTIONFS_RNDIS is not set +CONFIG_USB_FUNCTIONFS_GENERIC=y # CONFIG_USB_OXU210HP_HCD is not set CONFIG_USB_IOWARRIOR=m CONFIG_USB_ISIGHTFW=m diff --git a/config-nodebug b/config-nodebug index 9d4b2e9..dd9af68 100644 --- a/config-nodebug +++ b/config-nodebug @@ -128,3 +128,6 @@ CONFIG_X86_DEBUG_STATIC_CPU_HAS=y # CONFIG_SCHEDSTATS is not set # CONFIG_LATENCYTOP is not set
+# CONFIG_USB_GADGET_DEBUG is not set +# CONFIG_USB_GADGET_DEBUG_FILES is not set
+# CONFIG_USB_GADGET_DEBUG_FS is not set
1.8.3.1
On Wed, Mar 5, 2014 at 4:49 AM, Peter Robinson pbrobinson@gmail.com wrote:
On Wed, Mar 5, 2014 at 9:37 AM, Lubomir Rintel lkundrak@v3.sk wrote:
It's generally useful. On other architectures the UDC capable hardware might not be very common, but the dummy HCD makes it possible to use such hardware for development and emulation of USB gadget driver code.
ACK from me
I'm not at all sold on this to be honest. Coverity just picked up a bunch of issues in this subsystem during the last merge window and the overall USB subsystem maintainer doesn't even enable these drivers in his build testing. It seems to be a lot of churn for very little gain.
Also, if the dummy HCD driver is the only marginally useful thing on x86, why copy all of the stuff in the ARM config blindly? Isn't it feasible to enable GADGET and HCD on x86 and leave everything else off?
josh
It's generally useful. On other architectures the UDC capable hardware might not be very common, but the dummy HCD makes it possible to use such hardware for development and emulation of USB gadget driver code.
ACK from me
I'm not at all sold on this to be honest. Coverity just picked up a bunch of issues in this subsystem during the last merge window and the overall USB subsystem maintainer doesn't even enable these drivers in his build testing. It seems to be a lot of churn for very little gain.
Also, if the dummy HCD driver is the only marginally useful thing on x86, why copy all of the stuff in the ARM config blindly? Isn't it feasible to enable GADGET and HCD on x86 and leave everything else off?
From my PoV I want it in the ARM core package and not in extras as it
will break stuff for us. I'm ACKing that it won't break any of our expected ARM use cases. From an x86 and coverity PoV I can't comment other than ask how is it different from any other corner case modules.
Peter
On Wed, Mar 5, 2014 at 3:14 PM, Peter Robinson pbrobinson@gmail.com wrote:
It's generally useful. On other architectures the UDC capable hardware might not be very common, but the dummy HCD makes it possible to use such hardware for development and emulation of USB gadget driver code.
ACK from me
I'm not at all sold on this to be honest. Coverity just picked up a bunch of issues in this subsystem during the last merge window and the overall USB subsystem maintainer doesn't even enable these drivers in his build testing. It seems to be a lot of churn for very little gain.
Also, if the dummy HCD driver is the only marginally useful thing on x86, why copy all of the stuff in the ARM config blindly? Isn't it feasible to enable GADGET and HCD on x86 and leave everything else off?
From my PoV I want it in the ARM core package and not in extras as it will break stuff for us. I'm ACKing that it won't break any of our expected ARM use cases.
OK, fine.
From an x86 and coverity PoV I can't comment other than ask how is it different from any other corner case modules.
It isn't. And we've been saying no to corner case modules for a while now. That doesn't mean we have them all turned off, but we've been saying no to new requests.
josh
kernel@lists.fedoraproject.org