MA-USB Host driver provides USB connectivity over an available network, allowing host device to access remote USB devices attached to one or more MA USB devices (accessible via network). This driver has been developed to enable the host to communicate with DisplayLink products supporting MA USB protocol (MA USB device, in terms of MA USB Specification). MA-USB protocol used by MA-USB Host driver has been implemented in accordance with MA USB Specification Release 1.0b. This driver depends on the functions provided by DisplayLink's user-space driver. Signed-off-by: Vladimir Stankovic --- drivers/usb/Kconfig | 2 + drivers/usb/Makefile | 2 + drivers/usb/mausb_host/Kconfig | 15 + drivers/usb/mausb_host/Makefile | 30 + .../usb/mausb_host/include/common/ma_usb.h | 873 +++++++++ .../mausb_host/include/common/mausb_address.h | 38 + .../include/common/mausb_driver_status.h | 21 + .../mausb_host/include/common/mausb_event.h | 228 +++ drivers/usb/mausb_host/include/hcd/hub.h | 115 ++ drivers/usb/mausb_host/include/hcd/vhcd.h | 79 + .../usb/mausb_host/include/hpal/data_common.h | 66 + drivers/usb/mausb_host/include/hpal/data_in.h | 18 + .../usb/mausb_host/include/hpal/data_out.h | 22 + drivers/usb/mausb_host/include/hpal/hpal.h | 184 ++ .../usb/mausb_host/include/hpal/isoch_in.h | 22 + .../usb/mausb_host/include/hpal/isoch_out.h | 20 + .../mausb_host/include/hpal/mausb_events.h | 99 + .../include/hpal/network_callbacks.h | 20 + .../mausb_host/include/link/mausb_ip_link.h | 87 + .../include/utils/mausb_data_iterator.h | 52 + .../usb/mausb_host/include/utils/mausb_logs.h | 35 + .../usb/mausb_host/include/utils/mausb_mmap.h | 21 + .../include/utils/mausb_ring_buffer.h | 67 + .../mausb_host/include/utils/mausb_version.h | 17 + drivers/usb/mausb_host/src/hcd/hub.c | 1684 +++++++++++++++++ drivers/usb/mausb_host/src/hcd/module_init.c | 219 +++ drivers/usb/mausb_host/src/hcd/vhcd.c | 291 +++ drivers/usb/mausb_host/src/hpal/data_common.c | 141 ++ drivers/usb/mausb_host/src/hpal/data_in.c | 73 + drivers/usb/mausb_host/src/hpal/data_out.c | 202 ++ drivers/usb/mausb_host/src/hpal/hpal.c | 1306 +++++++++++++ drivers/usb/mausb_host/src/hpal/isoch_in.c | 241 +++ drivers/usb/mausb_host/src/hpal/isoch_out.c | 361 ++++ .../usb/mausb_host/src/hpal/mausb_events.c | 659 +++++++ .../mausb_host/src/hpal/network_callbacks.c | 160 ++ .../usb/mausb_host/src/link/mausb_ip_link.c | 354 ++++ .../src/utils/mausb_data_iterator.c | 295 +++ drivers/usb/mausb_host/src/utils/mausb_mmap.c | 381 ++++ .../mausb_host/src/utils/mausb_ring_buffer.c | 168 ++ 39 files changed, 8668 insertions(+) create mode 100644 drivers/usb/mausb_host/Kconfig create mode 100644 drivers/usb/mausb_host/Makefile create mode 100644 drivers/usb/mausb_host/include/common/ma_usb.h create mode 100644 drivers/usb/mausb_host/include/common/mausb_address.h create mode 100644 drivers/usb/mausb_host/include/common/mausb_driver_status.h create mode 100644 drivers/usb/mausb_host/include/common/mausb_event.h create mode 100644 drivers/usb/mausb_host/include/hcd/hub.h create mode 100644 drivers/usb/mausb_host/include/hcd/vhcd.h create mode 100644 drivers/usb/mausb_host/include/hpal/data_common.h create mode 100644 drivers/usb/mausb_host/include/hpal/data_in.h create mode 100644 drivers/usb/mausb_host/include/hpal/data_out.h create mode 100644 drivers/usb/mausb_host/include/hpal/hpal.h create mode 100644 drivers/usb/mausb_host/include/hpal/isoch_in.h create mode 100644 drivers/usb/mausb_host/include/hpal/isoch_out.h create mode 100644 drivers/usb/mausb_host/include/hpal/mausb_events.h create mode 100644 drivers/usb/mausb_host/include/hpal/network_callbacks.h create mode 100644 drivers/usb/mausb_host/include/link/mausb_ip_link.h create mode 100644 drivers/usb/mausb_host/include/utils/mausb_data_iterator.h create mode 100644 drivers/usb/mausb_host/include/utils/mausb_logs.h create mode 100644 drivers/usb/mausb_host/include/utils/mausb_mmap.h create mode 100644 drivers/usb/mausb_host/include/utils/mausb_ring_buffer.h create mode 100644 drivers/usb/mausb_host/include/utils/mausb_version.h create mode 100644 drivers/usb/mausb_host/src/hcd/hub.c create mode 100644 drivers/usb/mausb_host/src/hcd/module_init.c create mode 100644 drivers/usb/mausb_host/src/hcd/vhcd.c create mode 100644 drivers/usb/mausb_host/src/hpal/data_common.c create mode 100644 drivers/usb/mausb_host/src/hpal/data_in.c create mode 100644 drivers/usb/mausb_host/src/hpal/data_out.c create mode 100644 drivers/usb/mausb_host/src/hpal/hpal.c create mode 100644 drivers/usb/mausb_host/src/hpal/isoch_in.c create mode 100644 drivers/usb/mausb_host/src/hpal/isoch_out.c create mode 100644 drivers/usb/mausb_host/src/hpal/mausb_events.c create mode 100644 drivers/usb/mausb_host/src/hpal/network_callbacks.c create mode 100644 drivers/usb/mausb_host/src/link/mausb_ip_link.c create mode 100644 drivers/usb/mausb_host/src/utils/mausb_data_iterator.c create mode 100644 drivers/usb/mausb_host/src/utils/mausb_mmap.c create mode 100644 drivers/usb/mausb_host/src/utils/mausb_ring_buffer.c