[PATCH v7 0/6] staging: DWC2 DesignWare USB HS OTG driver

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Hi Greg,

Here is the latest version of the DWC2 patch set. This version includes
changes suggested by Felipe in his review of the HCD code. Only patch #2
has had any substantial changes since last time.

I have also moved the driver to the staging tree, since it doesn't look
like it's ready for mainline yet.


This is a host-mode driver for the Synopsys DesignWare HS OTG controller. 
This is the same controller whose peripheral mode is implemented by the
existing s3c-hsotg driver. This controller is also used in host mode in the
Raspberry Pi via a very ugly out-of-tree driver, so merging this would be a
step toward bringing USB support for that platform into mainline.

The idea is to add a dwc2/ directory alongside the existing dwc3/ directory,
initially to contain just this host-mode driver. Once that has been accepted
we would then like to move the s3c-hsotg driver into this directory and
integrate it to make a dual-role driver. Finally we will implement support
for the OTG features of the controller.

This driver is still a work in progress, to wit:

- Only a PCI bus interface has been implemented so far. However the core
  code and the PCI bus glue code are contained in separate modules, so it
  will be easy to add platform driver interfaces in the future. I have
  already done that with a platform driver for the Raspberry Pi, but it
  is not included here since USB support for that platform is out of tree.

- There is no power-management support yet.

- There is quite a bit of debug code included. We would like to keep that
  until the integration with s3c-hsotg is complete, then most of it can be
  stripped out.

Changes since v6 - Made a fix to the dwc2_hcd_endpoint_disable() function
to close a race that Felipe spotted. Refactored some of the HCD code per
Felipe's suggestions. Moved driver to the staging tree.

Changes since v5 - Made a few minor tweaks in response to Felipe's last
review. Also, use usb_calc_bus_time() in place of a private version,
and implement the .clear_tt_buffer_complete callback, both at the
suggestion of Alan Stern. Fixed a couple of driver crashes that were
exposed by those changes.

Changes since v4 - Changes in response to Felipe's third review. Also
removed the module parameters. Plus made a few more cleanups and

Changes since v3 - Numerous changes in response to Felipe's second review.

Changes since v2 - Fixed a problem with periodic transfers, so hubs, mice
and keyboards work reliably now. Fixed a spurious channel halted interrupt
by disabling the interrupt if the channel is idle.

Changes since v1 - Numerous changes in response to Felipe's review.

Paul Zimmerman (6):
  Core files for the DWC2 driver
  HCD files for the DWC2 driver
  HCD descriptor DMA support for the DWC2 driver
  PCI bus interface for the DWC2 driver
  Hook the DWC2 driver into the build system
  Add a MAINTAINERS entry for the DWC2 driver

 MAINTAINERS                      |    6 +
 drivers/staging/Kconfig          |    2 +
 drivers/staging/Makefile         |    1 +
 drivers/staging/dwc2/Kconfig     |   41 +
 drivers/staging/dwc2/Makefile    |   23 +
 drivers/staging/dwc2/core.c      | 2678 ++++++++++++++++++++++++++++++++++
 drivers/staging/dwc2/core.h      |  658 +++++++++
 drivers/staging/dwc2/core_intr.c |  505 +++++++
 drivers/staging/dwc2/hcd.c       | 2951 ++++++++++++++++++++++++++++++++++++++
 drivers/staging/dwc2/hcd.h       |  737 ++++++++++
 drivers/staging/dwc2/hcd_ddma.c  | 1196 +++++++++++++++
 drivers/staging/dwc2/hcd_intr.c  | 2079 +++++++++++++++++++++++++++
 drivers/staging/dwc2/hcd_queue.c |  675 +++++++++
 drivers/staging/dwc2/hw.h        |  811 +++++++++++
 drivers/staging/dwc2/pci.c       |  198 +++
 15 files changed, 12561 insertions(+)
 create mode 100644 drivers/staging/dwc2/Kconfig
 create mode 100644 drivers/staging/dwc2/Makefile
 create mode 100644 drivers/staging/dwc2/core.c
 create mode 100644 drivers/staging/dwc2/core.h
 create mode 100644 drivers/staging/dwc2/core_intr.c
 create mode 100644 drivers/staging/dwc2/hcd.c
 create mode 100644 drivers/staging/dwc2/hcd.h
 create mode 100644 drivers/staging/dwc2/hcd_ddma.c
 create mode 100644 drivers/staging/dwc2/hcd_intr.c
 create mode 100644 drivers/staging/dwc2/hcd_queue.c
 create mode 100644 drivers/staging/dwc2/hw.h
 create mode 100644 drivers/staging/dwc2/pci.c


To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

B and H Foto and Electronics Corp.

[Linux Media]     [Video for Linux]     [Linux Input]     [Linux Audio Users]     [Photo]     [Yosemite News]    [Yosemite Photos]    [Free Online Dating]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]     [More Archives]

Add to Google Powered by Linux