# SPDX-License-Identifier: GPL-2.0

config USBIP_CORE
	tristate "USB/IP support"
	depends on NET
	select USB_COMMON
	select SGL_ALLOC
	help
	  This enables pushing USB packets over IP to allow remote
	  machines direct access to USB devices. It provides the
	  USB/IP core that is required by both drivers.

	  For more details, and to get the userspace utility
	  programs, please see <http://usbip.sourceforge.net/>.

	  To compile this as a module, choose M here: the module will
	  be called usbip-core.

	  If unsure, say N.

config USBIP_VHCI_HCD
	tristate "VHCI hcd"
	depends on USBIP_CORE && USB
	help
	  This enables the USB/IP virtual host controller driver,
	  which is run on the remote machine.

	  To compile this driver as a module, choose M here: the
	  module will be called vhci-hcd.

config USBIP_VHCI_HC_PORTS
	int "Number of ports per USB/IP virtual host controller"
	range 1 15
	default 8
	depends on USBIP_VHCI_HCD
	help
	  To increase number of ports available for USB/IP virtual
	  host controller driver, this defines number of ports per
	  USB/IP virtual host controller.

config USBIP_VHCI_NR_HCS
	int "Number of USB/IP virtual host controllers"
	range 1 128
	default 1
	depends on USBIP_VHCI_HCD
	help
	  To increase number of ports available for USB/IP virtual
	  host controller driver, this defines number of USB/IP
	  virtual host controllers as if adding physical host
	  controllers.

config USBIP_HOST
	tristate "Host driver"
	depends on USBIP_CORE && USB
	help
	  This enables the USB/IP host driver, which is run on the
	  machine that is sharing the USB devices.

	  To compile this driver as a module, choose M here: the
	  module will be called usbip-host.

config USBIP_VUDC
	tristate "VUDC driver"
	depends on USBIP_CORE && USB_GADGET
	help
	  This enables the USB/IP virtual USB device controller
	  driver, which is run on the host machine, allowing the
	  machine itself to act as a device.

	  To compile this driver as a module, choose M here: the
	  module will be called usbip-vudc.

config USBIP_DEBUG
	bool "Debug messages for USB/IP"
	depends on USBIP_CORE
	help
	  This enables the debug messages from the USB/IP drivers.
