All of lore.kernel.org
 help / color / mirror / Atom feed
From: Artur Petrosyan <Arthur.Petrosyan@synopsys.com>
To: Felipe Balbi <balbi@kernel.org>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Minas Harutyunyan <Minas.Harutyunyan@synopsys.com>,
	linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org
Cc: John Youn <John.Youn@synopsys.com>,
	Artur Petrosyan <Arthur.Petrosyan@synopsys.com>
Subject: [PATCH 07/12] usb: dwc2: Update enter clock gating when port is suspended
Date: Tue, 13 Apr 2021 11:17:02 +0400	[thread overview]
Message-ID: <9ed1da9780cddf995841cc5867f195024f5a16d9.1618297800.git.Arthur.Petrosyan@synopsys.com> (raw)
In-Reply-To: <cover.1618297800.git.Arthur.Petrosyan@synopsys.com>

Updates the implementation of entering clock gating mode
when core receives port suspend.
Instead of setting the required bit fields of the registers
inline, called the "dwc2_host_enter_clock_gating()" function.

Signed-off-by: Artur Petrosyan <Arthur.Petrosyan@synopsys.com>
---
 drivers/usb/dwc2/hcd.c | 19 ++++---------------
 1 file changed, 4 insertions(+), 15 deletions(-)

diff --git a/drivers/usb/dwc2/hcd.c b/drivers/usb/dwc2/hcd.c
index 27f030d5de54..e1225fe6c61a 100644
--- a/drivers/usb/dwc2/hcd.c
+++ b/drivers/usb/dwc2/hcd.c
@@ -3298,7 +3298,6 @@ static int dwc2_host_is_b_hnp_enabled(struct dwc2_hsotg *hsotg)
 int dwc2_port_suspend(struct dwc2_hsotg *hsotg, u16 windex)
 {
 	unsigned long flags;
-	u32 hprt0;
 	u32 pcgctl;
 	u32 gotgctl;
 	int ret = 0;
@@ -3323,22 +3322,12 @@ int dwc2_port_suspend(struct dwc2_hsotg *hsotg, u16 windex)
 		break;
 	case DWC2_POWER_DOWN_PARAM_HIBERNATION:
 	case DWC2_POWER_DOWN_PARAM_NONE:
-	default:
-		hprt0 = dwc2_read_hprt0(hsotg);
-		hprt0 |= HPRT0_SUSP;
-		dwc2_writel(hsotg, hprt0, HPRT0);
-		hsotg->bus_suspended = true;
 		/*
-		 * If power_down is supported, Phy clock will be suspended
-		 * after registers are backuped.
+		 * If not hibernation nor partial power down are supported,
+		 * clock gating is used to save power.
 		 */
-		if (!hsotg->params.power_down) {
-			/* Suspend the Phy Clock */
-			pcgctl = dwc2_readl(hsotg, PCGCTL);
-			pcgctl |= PCGCTL_STOPPCLK;
-			dwc2_writel(hsotg, pcgctl, PCGCTL);
-			udelay(10);
-		}
+		dwc2_host_enter_clock_gating(hsotg);
+		break;
 	}
 
 	/* For HNP the bus must be suspended for at least 200ms */
-- 
2.25.1


  parent reply	other threads:[~2021-04-13  7:17 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <cover.1618297800.git.Arthur.Petrosyan@synopsys.com>
2021-04-13  7:16 ` [PATCH 01/12] usb: dwc2: Add device clock gating support functions Artur Petrosyan
2021-04-13  7:16 ` [PATCH 02/12] usb: dwc2: Add host " Artur Petrosyan
2021-04-13  7:16 ` [PATCH 03/12] usb: dwc2: Allow entering clock gating from USB_SUSPEND interrupt Artur Petrosyan
2021-04-13  9:25   ` Sergei Shtylyov
2021-04-13  7:16 ` [PATCH 04/12] usb: dwc2: Add exit clock gating from wakeup interrupt Artur Petrosyan
2021-04-13  7:16 ` [PATCH 05/12] usb: dwc2: Add exit clock gating from session request interrupt Artur Petrosyan
2021-04-13  7:16 ` [PATCH 06/12] usb: dwc2: Add exit clock gating when port reset is asserted Artur Petrosyan
2021-04-13  7:17 ` Artur Petrosyan [this message]
2021-04-13  9:22   ` [PATCH 07/12] usb: dwc2: Update enter clock gating when port is suspended Sergei Shtylyov
2021-04-13 10:24     ` Greg Kroah-Hartman
2021-04-13  7:17 ` [PATCH 08/12] usb: dwc2: Update exit clock gating when port is resumed Artur Petrosyan
2021-04-13  7:17 ` [PATCH 09/12] usb: dwc2: Allow exit clock gating in urb enqueue Artur Petrosyan
2021-04-13  7:17 ` [PATCH 10/12] usb: dwc2: Add clock gating entering flow by system suspend Artur Petrosyan
2021-04-13  7:17 ` [PATCH 11/12] usb: dwc2: Add clock gating exiting flow by system resume Artur Petrosyan
2021-04-13  7:17 ` [PATCH 12/12] usb: dwc2: Add exit clock gating before removing driver Artur Petrosyan
2021-04-13  7:36 ` [PATCH v2 01/12] usb: dwc2: Add device clock gating support functions Artur Petrosyan
2021-04-13  7:36 ` [PATCH v2 02/12] usb: dwc2: Add host " Artur Petrosyan
2021-04-13  7:36 ` [PATCH v2 03/12] usb: dwc2: Allow entering clock gating from USB_SUSPEND interrupt Artur Petrosyan
2021-04-13  7:36 ` [PATCH v2 04/12] usb: dwc2: Add exit clock gating from wakeup interrupt Artur Petrosyan
2021-04-13  7:36 ` [PATCH v2 05/12] usb: dwc2: Add exit clock gating from session request interrupt Artur Petrosyan
2021-04-13  7:36 ` [PATCH v2 06/12] usb: dwc2: Add exit clock gating when port reset is asserted Artur Petrosyan
2021-04-13  7:36 ` [PATCH v2 07/12] usb: dwc2: Update enter clock gating when port is suspended Artur Petrosyan
2021-04-13  7:37 ` [PATCH v2 08/12] usb: dwc2: Update exit clock gating when port is resumed Artur Petrosyan
2021-04-13  7:37 ` [PATCH v2 09/12] usb: dwc2: Allow exit clock gating in urb enqueue Artur Petrosyan
2021-04-13  7:37 ` [PATCH v2 10/12] usb: dwc2: Add clock gating entering flow by system suspend Artur Petrosyan
2021-04-13  9:29   ` Sergei Shtylyov
2021-04-13  7:37 ` [PATCH v2 11/12] usb: dwc2: Add clock gating exiting flow by system resume Artur Petrosyan
2021-04-13  9:30   ` Sergei Shtylyov
2021-04-13  7:37 ` [PATCH v2 12/12] usb: dwc2: Add exit clock gating before removing driver Artur Petrosyan
     [not found] ` <20210413073600.57846A0094@mailhost.synopsys.com>
2021-04-13  8:03   ` [PATCH v2 00/12] usb: dwc2: Add clock gating support Artur Petrosyan
2021-04-13 10:26     ` Greg Kroah-Hartman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=9ed1da9780cddf995841cc5867f195024f5a16d9.1618297800.git.Arthur.Petrosyan@synopsys.com \
    --to=arthur.petrosyan@synopsys.com \
    --cc=John.Youn@synopsys.com \
    --cc=Minas.Harutyunyan@synopsys.com \
    --cc=balbi@kernel.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.