Re: [PATCH v2 00/15] usb: dwc2: Fix and improve power saving modes.

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

 



On 10/11/2020 5:50 PM, Artur Petrosyan wrote:
> This patch set fixes/improves partial power down, hibernation power
> saving modes and adds support for host/device clock gating.
> 
> Changes from V1:
>   - Added new patches.
>    1. usb: dwc2: Add support for dwc2 host/device clock gating.
>    2. usb: dwc2: Add exit power saving mode before removing driver.
>    3. usb: dwc2: Fix HPRT0.PrtSusp bit setting for HiKey 960 board.
> 
>   - Updated patches
>    1. usb: dwc2: Fix/update enter/exit partial power down.
> 	- Updated the patch name from "usb: dwc2: Fix
> 	dwc2_restore_device_registers() function." to "usb: dwc2:
> 	Fix/update enter/exit partial power down."
> 	- Updated entering and exiting partial power down function
> 	flow. Before there was a lot of confusions with core
> 	entering to partial power down in device or host mode.
> 	- Added "rem_wakeup" for host exiting from Partial Power
> 	Down mode from host remote wakeup flow. According to
> 	programming guide in host mode, port power must be
> 	turned on when wakeup is detected.
> 	- Added "in_ppd" flag to indicate the core state after
> 	entering into Partial Power Down mode.
>    2. usb: dwc2: Fix wakeup detected and session request interrupt handlers.
> 	- According to programming guide added partial power
> 	down exit flow in wakeup detected interrupt handler.
> 	- Added clock gating exit flow from wakeup detected
> 	and session request interrupt handlers.
>    3. usb: dwc2: Fix suspend state in host mode for partial power down.
> 	- Added "dwc2_port_suspend" and "dwc2_port_resume" functions to
> 	"core.h" header file
> 	- Updated "USB_PORT_FEAT_RESET" flow when core receives port
> 	reset in Partial Power Down or Hibernation state.
> 	- Added return "-ENODEV" if core is in suspend state
> 	in "_dwc2_hcd_urb_enqueue" function to avoid port
> 	reset issue, when an external hub is connected.
>    4. usb: dwc2: Add part. power down exit from dwc2_conn_id_status_change().
> 	- Instead of clearing registers inline for exiting partial power down
> 	mode, now calling the "dwc2_exit_partial_power_down" function without
> 	restoring the backup registers.
>    5. usb: dwc2: Update dwc2_handle_usb_suspend_intr function.
> 	- Added changes suggested by Douglas Anderson from commit
> 	"usb: dwc2: Get rid of useless error checks for
> 	hibernation/partial power down"
>    6. usb: dwc2: Fix hibernation between host and device modes.
> 	- Added setting of "hsotg->bus_suspended" flag to 0 because before if
> 	core exited from "GPWRDN_STS_CHGINT" interrupt in host mode the flag
> 	remained true not letting enter to hibernation next time.
>    7. usb: dwc2: Clear fifo_map when resetting core.
> 	- Added "static inline void dwc2_clear_fifo_map()" helper
> 	function to clear fifo_map with peripheral or dual role mode.
> 	- Added a dummy version of "dwc2_clear_fifo_map()" helper
> 	for host-only mode.
>    8. usb: dwc2: Add power saving mode support from system issued suspend/resume.
> 	- Updated the patch name from "usb: dwc2: Add enter/exit hibernation
> 	from system scheduled suspend" to "usb: dwc2: Add power saving mode
> 	support from system issued suspend/resume."
> 	- Fixed issue related to "spinlock already unlocked" reported by Doug
> 	Anderson.
> 
>   - Abandoned patches.
>    1. usb: dwc2: Add port conn. sts. checking in _dwc2_hcd_resume() function.
> 	- The changes of this patch are moved to the "usb: dwc2: Add power
> 	saving mode support from system issued suspend/resume" patch.
>    2. usb: dwc2: Add flag and debug messages for Partial Power Down mode.
> 	- The changes of this patch are moved to the "usb: dwc2: Fix/update
> 	enter/exit partial power down." patch.
> 
> 
> Artur Petrosyan (15):
>    usb: dwc2: Fix/update enter/exit partial power down.
>    usb: dwc2: Add support for dwc2 host/device clock gating.
>    usb: dwc2: Fix wakeup detected and session request interrupt handlers.
>    usb: dwc2: Fix suspend state in host mode for partial power down.
>    usb: dwc2: Add part. power down exit from
>      dwc2_conn_id_status_change().
>    usb: dwc2: Reset DEVADDR after exiting gadget hibernation.
>    usb: dwc2: Add default param to control power optimization.
>    usb: dwc2: Update dwc2_handle_usb_suspend_intr function.
>    usb: dwc2: Fix hibernation between host and device modes.
>    usb: dwc2: Fix HPRT0.PrtSusp bit setting for HiKey 960 board.
>    usb: dwc2: Allow exiting hibernation from gpwrdn rst detect
>    usb: dwc2: Clear fifo_map when resetting core.
>    usb: dwc2: Clear GINTSTS_RESTOREDONE bit after restore is generated.
>    usb: dwc2: Add power saving mode support from system issued
>      suspend/resume
>    usb: dwc2: Add exit power saving mode before removing driver
> 
>   drivers/usb/dwc2/core.c      | 125 ++------
>   drivers/usb/dwc2/core.h      |  46 ++-
>   drivers/usb/dwc2/core_intr.c | 284 ++++++++++-------
>   drivers/usb/dwc2/debugfs.c   |   2 +
>   drivers/usb/dwc2/gadget.c    | 223 ++++++++++++-
>   drivers/usb/dwc2/hcd.c       | 589 ++++++++++++++++++++++++++---------
>   drivers/usb/dwc2/hw.h        |   1 +
>   drivers/usb/dwc2/params.c    |  17 +-
>   drivers/usb/dwc2/platform.c  |  44 ++-
>   9 files changed, 960 insertions(+), 371 deletions(-)
> 
Acked-by: Minas Harutyunyan <Minas.Harutyunyan@xxxxxxxxxxxx>





[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux