[PATCH] Enable USB gadget subsystem outside ARM

Peter Robinson pbrobinson at gmail.com
Thu Feb 27 06:53:18 UTC 2014


On Thu, Feb 27, 2014 at 6:11 AM, Lubomir Rintel <lkundrak at 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.
> ---
> Hi,
>
> I'm wondering if you could apply this?
>
> Thank you!
> Lubo
>
>  config-armv7-generic | 56 -------------------------------------------------
>  config-debug         |  5 +++++
>  config-generic       | 59 ++++++++++++++++++++++++++++++++++++++++++++++++----
>  config-nodebug       |  3 +++
>  mod-extra.list       | 28 +++++++++++++++++++++++++
>  5 files changed, 91 insertions(+), 60 deletions(-)
>
> diff --git a/config-armv7-generic b/config-armv7-generic
> index 8215e60..c43601f 100644
> --- a/config-armv7-generic
> +++ b/config-armv7-generic
> @@ -180,62 +180,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_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 8000b4e..6103fdc 100644
> --- a/config-debug
> +++ b/config-debug
> @@ -126,3 +126,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 1624883..6e5d93a 100644
> --- a/config-generic
> +++ b/config-generic
> @@ -3673,7 +3673,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
>
>  #
> @@ -3764,7 +3763,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
> @@ -3798,9 +3796,62 @@ 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_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 f9f4309..72e0aab 100644
> --- a/config-nodebug
> +++ b/config-nodebug
> @@ -130,3 +130,6 @@ CONFIG_DEBUG_KMEMLEAK_DEFAULT_OFF=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
> diff --git a/mod-extra.list b/mod-extra.list
> index 2803a43..2dfda76 100644
> --- a/mod-extra.list
> +++ b/mod-extra.list
> @@ -193,3 +193,31 @@ orinoco_plx.ko
>  orinoco_pci.ko
>  orinoco_nortel.ko
>  orinoco_usb.ko
> +dummy_hcd.ko
> +g_acm_ms.ko
> +g_cdc.ko
> +g_dbgp.ko
> +g_ether.ko
> +g_ffs.ko
> +g_mass_storage.ko
> +g_multi.ko
> +g_ncm.ko
> +g_serial.ko
> +g_zero.ko
> +gadgetfs.ko
> +libcomposite.ko
> +tcm_usb_gadget.ko
> +u_ether.ko
> +u_rndis.ko
> +u_serial.ko
> +udc-core.ko
> +usb_f_acm.ko
> +usb_f_ecm.ko
> +usb_f_ecm_subset.ko
> +usb_f_eem.ko
> +usb_f_mass_storage.ko
> +usb_f_ncm.ko
> +usb_f_obex.ko
> +usb_f_serial.ko
> +usb_f_ss_lb.ko
> +musb_hdrc.ko


Why are they being put in extras where they were formerly for ARM in
the main kernel package? This is functionality for some devices we
depend on for things like virtual serial console and usb gadget
network and in most cases ARM devices will have one of these ports so
they're pretty much standard hardware on ARM.

Peter


More information about the kernel mailing list