mbox series

[v4,0/4] Introduced new Cadence USBHS Driver

Message ID 20230602102644.77470-1-pawell@cadence.com (mailing list archive)
Headers show
Series Introduced new Cadence USBHS Driver | expand

Message

Pawel Laszczak June 2, 2023, 10:26 a.m. UTC
This series introduce new Cadence USBHS peripheral driver to linux kernel.

The Cadence USBHS Controller is a highly configurable IP Core which
can be instantiated as Peripheral which supports both full and high speed
data transfer.

The current driver has been validated with PCI based on FPGA platform.

To simplyfiy reviewing the driver has been splited into 3 part:
The patch 1: contains main header file.
The patch 2: main part that implements whole driver functionality.
The patch 3: adds to driver tracepoints.
The patch 4: Adds USBSSP DRD IP driver entry to MAINTAINERS file.

Changlog from v1:
- changed some __dynamic_array() to __get_buf()
- removed kernel-doc warnings
- removed some compiler warnings reported with option W=1
- removed unnecessary casting from cdns2_pci_remove function
- fixed issue with ISO mult = 1 and mult = 2
- improved ISO transfer performance

Changlog from v2:
- used SYSTEM_SLEEP_PM_OPS() instead of SET_SYSTEM_SLEEP_PM_OPS()
- simplified code in cdns2_req_ep0_handle_status function
- raplaced wmb with dma_wmb
- added __aligned(4) to all packed structures

Changlog from v3:
- corrected module name in Kconfig
- Replaced some 'return ret' with 'return 0'
- removed initialization of sg_iter variable in cdns2_ep_tx_isoc
- fixed handling of error code returned by pcim_enable_device in
  cdns2_pci_probe function
- replaced kzalloc with devm_kzalloc() in cdns2_pci_probe function
- removed unnecessary pci_disable_device from cdns2-pci.ko file
---

Pawel Laszczak (4):
  usb: cdns2: Device side header file for CDNS2 driver
  usb: cdns2: Add main part of Cadence USBHS driver
  usb: cdns2: Add tracepoints for CDNS2 driver
  MAINTAINERS: add Cadence USBHS driver entry

 MAINTAINERS                                 |    6 +
 drivers/usb/gadget/udc/Kconfig              |    2 +
 drivers/usb/gadget/udc/Makefile             |    1 +
 drivers/usb/gadget/udc/cdns2/Kconfig        |   11 +
 drivers/usb/gadget/udc/cdns2/Makefile       |    7 +
 drivers/usb/gadget/udc/cdns2/cdns2-debug.h  |  203 ++
 drivers/usb/gadget/udc/cdns2/cdns2-ep0.c    |  659 +++++
 drivers/usb/gadget/udc/cdns2/cdns2-gadget.c | 2474 +++++++++++++++++++
 drivers/usb/gadget/udc/cdns2/cdns2-gadget.h |  707 ++++++
 drivers/usb/gadget/udc/cdns2/cdns2-pci.c    |  138 ++
 drivers/usb/gadget/udc/cdns2/cdns2-trace.c  |   11 +
 drivers/usb/gadget/udc/cdns2/cdns2-trace.h  |  605 +++++
 12 files changed, 4824 insertions(+)
 create mode 100644 drivers/usb/gadget/udc/cdns2/Kconfig
 create mode 100644 drivers/usb/gadget/udc/cdns2/Makefile
 create mode 100644 drivers/usb/gadget/udc/cdns2/cdns2-debug.h
 create mode 100644 drivers/usb/gadget/udc/cdns2/cdns2-ep0.c
 create mode 100644 drivers/usb/gadget/udc/cdns2/cdns2-gadget.c
 create mode 100644 drivers/usb/gadget/udc/cdns2/cdns2-gadget.h
 create mode 100644 drivers/usb/gadget/udc/cdns2/cdns2-pci.c
 create mode 100644 drivers/usb/gadget/udc/cdns2/cdns2-trace.c
 create mode 100644 drivers/usb/gadget/udc/cdns2/cdns2-trace.h