From: Marek Szyprowski <m.szyprowski@samsung.com>
To: linux-usb@vger.kernel.org, linux-samsung-soc@vger.kernel.org,
linux-kernel@vger.kernel.org
Cc: Marek Szyprowski <m.szyprowski@samsung.com>,
Minas Harutyunyan <hminas@synopsys.com>,
Artur Petrosyan <Arthur.Petrosyan@synopsys.com>,
Felipe Balbi <balbi@kernel.org>,
Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>,
Krzysztof Kozlowski <krzk@kernel.org>
Subject: [PATCH 1/2] usb: dwc2: rename DWC2_POWER_DOWN_PARAM_NONE state
Date: Wed, 4 Aug 2021 13:44:20 +0200 [thread overview]
Message-ID: <20210804114421.10282-1-m.szyprowski@samsung.com> (raw)
In-Reply-To: CGME20210804114433eucas1p134417b605abeb57728d358fc2f42162b@eucas1p1.samsung.com
DWC2_POWER_DOWN_PARAM_NONE really means that the driver still uses clock
gating to save power when hardware is not used. Rename the state name to
DWC2_POWER_DOWN_PARAM_CLOCK_GATING to match the driver behavior.
Suggested-by: Minas Harutyunyan <Minas.Harutyunyan@synopsys.com>
Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
---
This is a follow-up of this discussion:
https://lore.kernel.org/linux-usb/26099de1-826f-42bf-0de7-759a47faf4a0@samsung.com/
This should be applied on top of v5.14-rc3.
---
drivers/usb/dwc2/core.h | 4 ++--
drivers/usb/dwc2/core_intr.c | 8 ++++----
drivers/usb/dwc2/hcd.c | 10 +++++-----
drivers/usb/dwc2/params.c | 22 +++++++++++-----------
drivers/usb/dwc2/platform.c | 2 +-
5 files changed, 23 insertions(+), 23 deletions(-)
diff --git a/drivers/usb/dwc2/core.h b/drivers/usb/dwc2/core.h
index cb9059a8444b..38b6733d26ec 100644
--- a/drivers/usb/dwc2/core.h
+++ b/drivers/usb/dwc2/core.h
@@ -382,7 +382,7 @@ enum dwc2_ep0_state {
* If power_down is enabled, the controller will enter
* power_down in both peripheral and host mode when
* needed.
- * 0 - No (default)
+ * 0 - Clock gating (default)
* 1 - Partial power down
* 2 - Hibernation
* @no_clock_gating: Specifies whether to avoid clock gating feature.
@@ -482,7 +482,7 @@ struct dwc2_core_params {
bool external_id_pin_ctl;
int power_down;
-#define DWC2_POWER_DOWN_PARAM_NONE 0
+#define DWC2_POWER_DOWN_PARAM_CLOCK_GATING 0
#define DWC2_POWER_DOWN_PARAM_PARTIAL 1
#define DWC2_POWER_DOWN_PARAM_HIBERNATION 2
bool no_clock_gating;
diff --git a/drivers/usb/dwc2/core_intr.c b/drivers/usb/dwc2/core_intr.c
index a5c52b237e72..660abff1d42b 100644
--- a/drivers/usb/dwc2/core_intr.c
+++ b/drivers/usb/dwc2/core_intr.c
@@ -327,7 +327,7 @@ static void dwc2_handle_session_req_intr(struct dwc2_hsotg *hsotg)
/* Exit gadget mode clock gating. */
if (hsotg->params.power_down ==
- DWC2_POWER_DOWN_PARAM_NONE && hsotg->bus_suspended)
+ DWC2_POWER_DOWN_PARAM_CLOCK_GATING && hsotg->bus_suspended)
dwc2_gadget_exit_clock_gating(hsotg, 0);
}
@@ -438,7 +438,7 @@ static void dwc2_handle_wakeup_detected_intr(struct dwc2_hsotg *hsotg)
/* Exit gadget mode clock gating. */
if (hsotg->params.power_down ==
- DWC2_POWER_DOWN_PARAM_NONE && hsotg->bus_suspended)
+ DWC2_POWER_DOWN_PARAM_CLOCK_GATING && hsotg->bus_suspended)
dwc2_gadget_exit_clock_gating(hsotg, 0);
} else {
/* Change to L0 state */
@@ -455,7 +455,7 @@ static void dwc2_handle_wakeup_detected_intr(struct dwc2_hsotg *hsotg)
}
if (hsotg->params.power_down ==
- DWC2_POWER_DOWN_PARAM_NONE && hsotg->bus_suspended)
+ DWC2_POWER_DOWN_PARAM_CLOCK_GATING && hsotg->bus_suspended)
dwc2_host_exit_clock_gating(hsotg, 1);
/*
@@ -551,7 +551,7 @@ static void dwc2_handle_usb_suspend_intr(struct dwc2_hsotg *hsotg)
dev_err(hsotg->dev,
"enter hibernation failed\n");
break;
- case DWC2_POWER_DOWN_PARAM_NONE:
+ case DWC2_POWER_DOWN_PARAM_CLOCK_GATING:
/*
* If neither hibernation nor partial power down are supported,
* clock gating is used to save power.
diff --git a/drivers/usb/dwc2/hcd.c b/drivers/usb/dwc2/hcd.c
index 2a7828971d05..067f2770c2ef 100644
--- a/drivers/usb/dwc2/hcd.c
+++ b/drivers/usb/dwc2/hcd.c
@@ -3333,7 +3333,7 @@ int dwc2_port_suspend(struct dwc2_hsotg *hsotg, u16 windex)
dev_err(hsotg->dev, "enter hibernation failed.\n");
spin_lock_irqsave(&hsotg->lock, flags);
break;
- case DWC2_POWER_DOWN_PARAM_NONE:
+ case DWC2_POWER_DOWN_PARAM_CLOCK_GATING:
/*
* If not hibernation nor partial power down are supported,
* clock gating is used to save power.
@@ -3701,7 +3701,7 @@ static int dwc2_hcd_hub_control(struct dwc2_hsotg *hsotg, u16 typereq,
}
if (hsotg->params.power_down ==
- DWC2_POWER_DOWN_PARAM_NONE && hsotg->bus_suspended)
+ DWC2_POWER_DOWN_PARAM_CLOCK_GATING && hsotg->bus_suspended)
dwc2_host_exit_clock_gating(hsotg, 0);
pcgctl = dwc2_readl(hsotg, PCGCTL);
@@ -4398,7 +4398,7 @@ static int _dwc2_hcd_suspend(struct usb_hcd *hcd)
/* After entering suspend, hardware is not accessible */
clear_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags);
break;
- case DWC2_POWER_DOWN_PARAM_NONE:
+ case DWC2_POWER_DOWN_PARAM_CLOCK_GATING:
/*
* If not hibernation nor partial power down are supported,
* clock gating is used to save power.
@@ -4482,7 +4482,7 @@ static int _dwc2_hcd_resume(struct usb_hcd *hcd)
*/
set_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags);
break;
- case DWC2_POWER_DOWN_PARAM_NONE:
+ case DWC2_POWER_DOWN_PARAM_CLOCK_GATING:
/*
* If not hibernation nor partial power down are supported,
* port resume is done using the clock gating programming flow.
@@ -4680,7 +4680,7 @@ static int _dwc2_hcd_urb_enqueue(struct usb_hcd *hcd, struct urb *urb,
"exit partial_power_down failed\n");
}
- if (hsotg->params.power_down == DWC2_POWER_DOWN_PARAM_NONE &&
+ if (hsotg->params.power_down == DWC2_POWER_DOWN_PARAM_CLOCK_GATING &&
hsotg->bus_suspended) {
if (dwc2_is_device_mode(hsotg))
dwc2_gadget_exit_clock_gating(hsotg, 0);
diff --git a/drivers/usb/dwc2/params.c b/drivers/usb/dwc2/params.c
index 59e119345994..dac26410b575 100644
--- a/drivers/usb/dwc2/params.c
+++ b/drivers/usb/dwc2/params.c
@@ -68,14 +68,14 @@ static void dwc2_set_his_params(struct dwc2_hsotg *hsotg)
p->ahbcfg = GAHBCFG_HBSTLEN_INCR16 <<
GAHBCFG_HBSTLEN_SHIFT;
p->change_speed_quirk = true;
- p->power_down = DWC2_POWER_DOWN_PARAM_NONE;
+ p->power_down = DWC2_POWER_DOWN_PARAM_CLOCK_GATING;
}
static void dwc2_set_s3c6400_params(struct dwc2_hsotg *hsotg)
{
struct dwc2_core_params *p = &hsotg->params;
- p->power_down = DWC2_POWER_DOWN_PARAM_NONE;
+ p->power_down = DWC2_POWER_DOWN_PARAM_CLOCK_GATING;
p->no_clock_gating = true;
p->phy_utmi_width = 8;
}
@@ -90,7 +90,7 @@ static void dwc2_set_rk_params(struct dwc2_hsotg *hsotg)
p->host_perio_tx_fifo_size = 256;
p->ahbcfg = GAHBCFG_HBSTLEN_INCR16 <<
GAHBCFG_HBSTLEN_SHIFT;
- p->power_down = DWC2_POWER_DOWN_PARAM_NONE;
+ p->power_down = DWC2_POWER_DOWN_PARAM_CLOCK_GATING;
}
static void dwc2_set_ltq_params(struct dwc2_hsotg *hsotg)
@@ -120,7 +120,7 @@ static void dwc2_set_amlogic_params(struct dwc2_hsotg *hsotg)
p->phy_type = DWC2_PHY_TYPE_PARAM_UTMI;
p->ahbcfg = GAHBCFG_HBSTLEN_INCR8 <<
GAHBCFG_HBSTLEN_SHIFT;
- p->power_down = DWC2_POWER_DOWN_PARAM_NONE;
+ p->power_down = DWC2_POWER_DOWN_PARAM_CLOCK_GATING;
}
static void dwc2_set_amlogic_g12a_params(struct dwc2_hsotg *hsotg)
@@ -179,7 +179,7 @@ static void dwc2_set_stm32mp15_fsotg_params(struct dwc2_hsotg *hsotg)
p->activate_stm_fs_transceiver = true;
p->activate_stm_id_vb_detection = true;
p->ahbcfg = GAHBCFG_HBSTLEN_INCR16 << GAHBCFG_HBSTLEN_SHIFT;
- p->power_down = DWC2_POWER_DOWN_PARAM_NONE;
+ p->power_down = DWC2_POWER_DOWN_PARAM_CLOCK_GATING;
p->host_support_fs_ls_low_power = true;
p->host_ls_low_power_phy_clk = true;
}
@@ -194,7 +194,7 @@ static void dwc2_set_stm32mp15_hsotg_params(struct dwc2_hsotg *hsotg)
p->host_nperio_tx_fifo_size = 256;
p->host_perio_tx_fifo_size = 256;
p->ahbcfg = GAHBCFG_HBSTLEN_INCR16 << GAHBCFG_HBSTLEN_SHIFT;
- p->power_down = DWC2_POWER_DOWN_PARAM_NONE;
+ p->power_down = DWC2_POWER_DOWN_PARAM_CLOCK_GATING;
p->lpm = false;
p->lpm_clock_gating = false;
p->besl = false;
@@ -339,7 +339,7 @@ static void dwc2_set_param_power_down(struct dwc2_hsotg *hsotg)
else if (hsotg->hw_params.power_optimized)
val = DWC2_POWER_DOWN_PARAM_PARTIAL;
else
- val = DWC2_POWER_DOWN_PARAM_NONE;
+ val = DWC2_POWER_DOWN_PARAM_CLOCK_GATING;
hsotg->params.power_down = val;
}
@@ -585,27 +585,27 @@ static void dwc2_check_param_power_down(struct dwc2_hsotg *hsotg)
int param = hsotg->params.power_down;
switch (param) {
- case DWC2_POWER_DOWN_PARAM_NONE:
+ case DWC2_POWER_DOWN_PARAM_CLOCK_GATING:
break;
case DWC2_POWER_DOWN_PARAM_PARTIAL:
if (hsotg->hw_params.power_optimized)
break;
dev_dbg(hsotg->dev,
"Partial power down isn't supported by HW\n");
- param = DWC2_POWER_DOWN_PARAM_NONE;
+ param = DWC2_POWER_DOWN_PARAM_CLOCK_GATING;
break;
case DWC2_POWER_DOWN_PARAM_HIBERNATION:
if (hsotg->hw_params.hibernation)
break;
dev_dbg(hsotg->dev,
"Hibernation isn't supported by HW\n");
- param = DWC2_POWER_DOWN_PARAM_NONE;
+ param = DWC2_POWER_DOWN_PARAM_CLOCK_GATING;
break;
default:
dev_err(hsotg->dev,
"%s: Invalid parameter power_down=%d\n",
__func__, param);
- param = DWC2_POWER_DOWN_PARAM_NONE;
+ param = DWC2_POWER_DOWN_PARAM_CLOCK_GATING;
break;
}
diff --git a/drivers/usb/dwc2/platform.c b/drivers/usb/dwc2/platform.c
index c8f18f3ba9e3..7bd8fb6c1378 100644
--- a/drivers/usb/dwc2/platform.c
+++ b/drivers/usb/dwc2/platform.c
@@ -342,7 +342,7 @@ static int dwc2_driver_remove(struct platform_device *dev)
}
/* Exit clock gating when driver is removed. */
- if (hsotg->params.power_down == DWC2_POWER_DOWN_PARAM_NONE &&
+ if (hsotg->params.power_down == DWC2_POWER_DOWN_PARAM_CLOCK_GATING &&
hsotg->bus_suspended) {
if (dwc2_is_device_mode(hsotg))
dwc2_gadget_exit_clock_gating(hsotg, 0);
--
2.17.1
next parent reply other threads:[~2021-08-04 11:44 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <CGME20210804114433eucas1p134417b605abeb57728d358fc2f42162b@eucas1p1.samsung.com>
2021-08-04 11:44 ` Marek Szyprowski [this message]
[not found] ` <CGME20210804114433eucas1p255ac5db7e56a8d5e50b8937c07559587@eucas1p2.samsung.com>
2021-08-04 11:44 ` [PATCH 2/2] usb: dwc2: add true DWC2_POWER_DOWN_PARAM_NONE state Marek Szyprowski
2021-08-05 9:15 ` [PATCH 1/2] usb: dwc2: rename " Greg KH
2021-08-05 9:22 ` Minas Harutyunyan
2021-08-05 9:41 ` Greg KH
2021-08-05 13:49 ` Artur Petrosyan
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=20210804114421.10282-1-m.szyprowski@samsung.com \
--to=m.szyprowski@samsung.com \
--cc=Arthur.Petrosyan@synopsys.com \
--cc=b.zolnierkie@samsung.com \
--cc=balbi@kernel.org \
--cc=hminas@synopsys.com \
--cc=krzk@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-samsung-soc@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).