From: Dinh Nguyen <dinguyen@xxxxxxxxxxxxxxxxxxxxx> Hello, This is version 3 of the patch series that combines the dwc2 gadget and host driver into a single dual role driver. Here are the main differences from V2: - less code change: v3: 9 files changed, 340 insertions(+), 335 deletions(-) v2: 9 files changed, 368 insertions(+), 357 deletions(-) v1: 9 files changed, 877 insertions(+), 904 deletions(-) - Patch 1/12 : Add a USB_GADGET=USB_DWC2 dependency for peripheral and dual-role builds - Patch 3/12 : Per paulz's code suggestion to avoid a double pointer usage in order to keep the gadget driver cleaner, the gadget variable declarations are only visible for peripheral and dual-role builds of the driver. Also, in a effort to maintain bisectability, move v2's [usb: dwc2: Moves s3c_hsotg gadget data structure into dwc2_hsotg] and [usb: dwc2: update gadget portion to use common dwc2_hsotg structure] into a single patch for v3. In V3, a single patch [usb: dwc2: Moves s3c_hsotg gadget data structure into dwc2_hsotg] is the result. For this series, there are 12 patches instead of 13. For v3, I have rebased the series on top of the following patches: Doug Anderson: usb: dwc2: Read GNPTXFSIZ when in forced HOST mode Kever Yang : usb: dwc2: add 'mode' which based on Kconfig select or dts setting Robert Baldyga : usb: dwc2/gadget: fix series <- 12 patches As usual, tested on SOCFPGA(host, gadget, and dual-role) and on Rpi-B(host mode). This patch series is based on v3.16. I have pushed this a git repo to make it more convenient for people to test/review. git://git.rocketboards.org/linux-socfpga-next.git dwc2_dual_role_v3 Thanks, Dinh Nguyen (12): usb: dwc2: Update Kconfig to support dual-role usb: dwc2: move "samsung,s3c6400-hsotg" into common platform usb: dwc2: Update the gadget driver to use common dwc2_hsotg structure usb: dwc2: Add the appropriate init calls in platform code usb: dwc2: Initialize the USB core for peripheral mode usb: dwc2: Update common interrupt handler to call gadget interrupt handler usb: dwc2: Add call_gadget functions for perpheral mode interrupts usb: dwc2: gadget: Do not fail probe if there isn't a clock node usb: dwc2: initialize the spin_lock for both host and gadget usb: dwc2: Add suspend/resume for gadget usb: dwc2: check that the host work queue is valid usb: dwc2: pci: Update pci portion of the dwc2 driver drivers/usb/dwc2/Kconfig | 63 +++++---- drivers/usb/dwc2/Makefile | 21 +-- drivers/usb/dwc2/core.h | 198 ++++++++++++++++----------- drivers/usb/dwc2/core_intr.c | 13 +- drivers/usb/dwc2/gadget.c | 314 +++++++++++++++---------------------------- drivers/usb/dwc2/hcd.c | 2 +- drivers/usb/dwc2/hcd.h | 10 -- drivers/usb/dwc2/pci.c | 1 + drivers/usb/dwc2/platform.c | 53 +++++++- 9 files changed, 340 insertions(+), 335 deletions(-) -- 2.0.3 -- 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