This patch series includes new features such us Active Clock Gating(ACG), LPM and Hibernation, enhancements and fixes for already existing features. All this patches were already sent to lkml separately. ACG, LPM and Hibernation were sent as patch series. All patches were tested in our lab. Changes from v2: Remove stable@xxxxxxxxxxxxxxx from cover letter CC. "usb: dwc2: Change TxFIFO and RxFIFO flushing flow" Added default value for greset in dwc2_flush_tx_fifo() and dwc2_flush_rx_fifo() functions. "usb: dwc2: Bit polling functionality update" Renamed to "usb: dwc2: Update bit polling functionality" Changes from v1: "usb: dwc2: pci: Fix error handling in dwc2_pci_probe" was divided into 4 patches: "usb: dwc2: pci: Handle error cleanup in probe" "usb: dwc2: pci: Move devm_kzalloc() before platform_device_add()" "usb: dwc2: pci: Move usb_phy_generic_register()" "usb: dwc2: pci: Replace kzalloc() with devm_kzalloc()" "usb: dwc2: Move polling function to core.c." and "usb: dwc2: Use common polling function." patches were merged into "usb: dwc2: Bit polling functionality update.". Also created dwc2_hsotg_wait_bit_clear() function, because in some cases, we should wait for bit would be cleared not set. Updated all new loops which came with patches in this series. usb: dwc2: gadget: Add LPM functionality (LPM): - "usb: gadget: Allow a non-SuperSpeed gadget to support LPM" and "usb: gadget: composite: Exclude SS Dev Cap Desc" patches were removed, because they were already merged to kernel. - "usb: dwc2: Add core state checking" and "usb: dwc2: Add call_gadget() function call" patches were added. - Fixed GLPMCFG initialization. Now hird and besl values also writes into GLPMCFG. - Replaced shift operator with BIT() macro. usb: dwc2: Add hibernation feature support (Hibernation): - Added WA in dwc2_restore_device_registers() function for enabled EPx's IN in DDMA mode for not to get BNA Interrupt asserted on hibernation exit. - Added argument is_host to determine if core is in host mode or not and changed some udelay values in dwc2_hib_restore_common() function. - Added is_host function parameter to determine being in host mode, checking host mode to set pcgcctl properly and changed hard coded numbers to defined values also changed the logic of loading restore values for [31:14] bits in dwc2_restore_essential_regs() function. - Fixed a minor bug: added checks for determine hibernation exiting flows in dwc2_handle_gpwrdn_intr() function. Also changed the way of clearing all interrupts. - dwc2_gadget_enter_hibernation() fixed some minor bugs, phy clock now remains not stopped. Added unmasking of GPWRDN_STS_CHGINT_MSK device mode interrupts in GPWRDN. - dwc2_host_enter_hibernation() added a udelay after writing in gpwrdn register. ACG support for dwc2 driver (ACG): - Added new acg_enable filed in dwc2_hw_params checks ACG support from hardware side. - Similar acg_enable field in dwc2_core_params used for dynamically disabling/enabling ACG functionality from driver. usb: dwc2: Add safety check in setting of descriptor chain pointer Updated description of patch. usb: dwc2: host: Fix transaction errors in host mode - Rename patch name from "usb: dwc2: host: Setting TOUTCAL and USBTRDTIM fields in host mode". - Remove programming of USBTRDTIM bitfiled, because this field available only in Device mode. - Added comment with description of TOUTCAL bitfiled in comment. - In description added platforms for which this patch fixes transactions error. usb: dwc2: hcd: Fix host channel halt flow Rebased to latest Kernel. usb: dwc2: Change TxFIFO and RxFIFO flushing flow Rewritten loop for waiting AHB master IDLE state. Gevorg Sahakyan (1): usb: dwc2: Remove version check in GSNPSID Grigor Tovmasyan (4): usb: dwc2: Delete unused functionality usb: dwc2: Make function static usb: dwc2: Add call_gadget() function call usb: dwc2: Add core state checking John Youn (2): usb: dwc2: Enable LPM usb: dwc2: Enable power down Minas Harutyunyan (5): usb: dwc2: Change TxFIFO and RxFIFO flushing flow usb: dwc2: hcd: Fix host channel halt flow usb: dwc2: Add safety check for STSPHSERCVD intr usb: dwc2: host: Fix transaction errors in host mode usb: dwc2: Add safety check in setting of descriptor chain pointers Razmik Karapetyan (10): usb: dwc2: Set AHB burst size to INCR usb: dwc2: Remove unnecessary debug prints usb: dwc2: Define PCGCCTL1 register in hw.h usb: dwc2: Define Active Clock Gating support bit in GHWCFG4 usb: dwc2: Add dwc2_enable_acg function usb: dwc2: Backup and restore PCGCCTL1 register usb: dwc2: Update dwc2_handle_incomplete_isoc_in() function usb: dwc2: Update dwc2_handle_incomplete_isoc_out() function usb: dwc2: Update GINTSTS_GOUTNAKEFF interrupt handling usb: dwc2: Rename function names Sevak Arakelyan (7): usb: dwc2: Fix GLPMCFG... definitions usb: dwc2: Add core parameters for LPM support usb: dwc2: gadget: Add functionality to exit from LPM L1 state usb: dwc2: gadget: LPM interrupt handler usb: dwc2: Enable LPM Transaction Received interrupt usb: dwc2: gadget: Configure the core to enable LPM usb: dwc2: Update bit polling functionality Vardan Mikayelyan (20): usb: dwc2: eliminate irq parameter from dwc2_gadget_init usb: dwc2: Force mode optimizations usb: dwc2: Rename hibernation to partial_power_down usb: dwc2: Add hibernation field into dwc2_hw_params usb: dwc2: gadget: Moved dtxfsiz backup array place usb: dwc2: gadget: Fix dwc2_restore_device_registers usb: dwc2: core: Add hibernated flag usb: dwc2: gadget: Add remote_wakeup_allowed flag usb: dwc2: Changes in registers backup/restore functions usb: dwc2: Add helper functions for restore routine usb: dwc2: Add host/device hibernation functions usb: dwc2: Add dwc2_enter_hibernation(), dwc2_exit_hibernation() usb: dwc2: Allow entering hibernation from USB_SUSPEND interrupt usb: dwc2: Add dwc2_handle_gpwrdn_intr() handler usb: dwc2: Change hub-control to allow hibernation usb: dwc2: Fix dwc2_hsotg_core_init_disconnected() usb: dwc2: pci: Replace kzalloc() with devm_kzalloc() usb: dwc2: pci: Move usb_phy_generic_register() usb: dwc2: pci: Move devm_kzalloc() before platform_device_add() usb: dwc2: pci: Handle error cleanup in probe drivers/usb/dwc2/core.c | 413 ++++++++++++++++++++++++++++++----------- drivers/usb/dwc2/core.h | 134 ++++++++++---- drivers/usb/dwc2/core_intr.c | 304 +++++++++++++++++++++++++++--- drivers/usb/dwc2/debugfs.c | 7 +- drivers/usb/dwc2/gadget.c | 425 ++++++++++++++++++++++++++++++++---------- drivers/usb/dwc2/hcd.c | 430 +++++++++++++++++++++++++++++++------------ drivers/usb/dwc2/hcd.h | 56 ------ drivers/usb/dwc2/hw.h | 44 +++-- drivers/usb/dwc2/params.c | 90 +++++++-- drivers/usb/dwc2/pci.c | 27 ++- drivers/usb/dwc2/platform.c | 12 +- 11 files changed, 1453 insertions(+), 489 deletions(-) -- 2.11.0 -- 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