Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1521360 > unrolled thread
| Started by | William Wu <wulf@rock-chips.com> |
|---|---|
| First post | 2016-11-14 08:10 +0100 |
| Last post | 2016-11-15 04:30 +0100 |
| Articles | 3 — 3 participants |
Back to article view | Back to linux.kernel
This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by
below is the oldest one visible, not the original post.
[PATCH v2 1/2] phy: rockchip-inno-usb2: correct clk_ops callback William Wu <wulf@rock-chips.com> - 2016-11-14 08:10 +0100
Re: [PATCH v2 1/2] phy: rockchip-inno-usb2: correct clk_ops callback Doug Anderson <dianders@google.com> - 2016-11-14 19:20 +0100
Re: [PATCH v2 1/2] phy: rockchip-inno-usb2: correct clk_ops callback wlf <wulf@rock-chips.com> - 2016-11-15 04:30 +0100
| From | William Wu <wulf@rock-chips.com> |
|---|---|
| Date | 2016-11-14 08:10 +0100 |
| Subject | [PATCH v2 1/2] phy: rockchip-inno-usb2: correct clk_ops callback |
| Message-ID | <sDjyW-3JZ-19@gated-at.bofh.it> |
Since we needs to delay ~1ms to wait for 480MHz output clock
of USB2 PHY to become stable after turn on it, the delay time
is pretty long for something that's supposed to be "atomic"
like a clk_enable(). Consider that clk_enable() will disable
interrupt and that a 1ms interrupt latency is not sensible.
The 480MHz output clock should be handled in prepare callbacks
which support gate a clk if the operation may sleep.
Signed-off-by: William Wu <wulf@rock-chips.com>
---
drivers/phy/phy-rockchip-inno-usb2.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/drivers/phy/phy-rockchip-inno-usb2.c b/drivers/phy/phy-rockchip-inno-usb2.c
index ac20310..365e077 100644
--- a/drivers/phy/phy-rockchip-inno-usb2.c
+++ b/drivers/phy/phy-rockchip-inno-usb2.c
@@ -153,7 +153,7 @@ static inline bool property_enabled(struct rockchip_usb2phy *rphy,
return tmp == reg->enable;
}
-static int rockchip_usb2phy_clk480m_enable(struct clk_hw *hw)
+static int rockchip_usb2phy_clk480m_prepare(struct clk_hw *hw)
{
struct rockchip_usb2phy *rphy =
container_of(hw, struct rockchip_usb2phy, clk480m_hw);
@@ -172,7 +172,7 @@ static int rockchip_usb2phy_clk480m_enable(struct clk_hw *hw)
return 0;
}
-static void rockchip_usb2phy_clk480m_disable(struct clk_hw *hw)
+static void rockchip_usb2phy_clk480m_unprepare(struct clk_hw *hw)
{
struct rockchip_usb2phy *rphy =
container_of(hw, struct rockchip_usb2phy, clk480m_hw);
@@ -181,7 +181,7 @@ static void rockchip_usb2phy_clk480m_disable(struct clk_hw *hw)
property_enable(rphy, &rphy->phy_cfg->clkout_ctl, false);
}
-static int rockchip_usb2phy_clk480m_enabled(struct clk_hw *hw)
+static int rockchip_usb2phy_clk480m_prepared(struct clk_hw *hw)
{
struct rockchip_usb2phy *rphy =
container_of(hw, struct rockchip_usb2phy, clk480m_hw);
@@ -197,9 +197,9 @@ rockchip_usb2phy_clk480m_recalc_rate(struct clk_hw *hw,
}
static const struct clk_ops rockchip_usb2phy_clkout_ops = {
- .enable = rockchip_usb2phy_clk480m_enable,
- .disable = rockchip_usb2phy_clk480m_disable,
- .is_enabled = rockchip_usb2phy_clk480m_enabled,
+ .prepare = rockchip_usb2phy_clk480m_prepare,
+ .unprepare = rockchip_usb2phy_clk480m_unprepare,
+ .is_prepared = rockchip_usb2phy_clk480m_prepared,
.recalc_rate = rockchip_usb2phy_clk480m_recalc_rate,
};
--
2.0.0
[toc] | [next] | [standalone]
| From | Doug Anderson <dianders@google.com> |
|---|---|
| Date | 2016-11-14 19:20 +0100 |
| Message-ID | <sDu1k-25s-9@gated-at.bofh.it> |
| In reply to | #1521360 |
William On Sun, Nov 13, 2016 at 11:01 PM, William Wu <wulf@rock-chips.com> wrote: > Since we needs to delay ~1ms to wait for 480MHz output clock > of USB2 PHY to become stable after turn on it, the delay time > is pretty long for something that's supposed to be "atomic" > like a clk_enable(). Consider that clk_enable() will disable > interrupt and that a 1ms interrupt latency is not sensible. > > The 480MHz output clock should be handled in prepare callbacks > which support gate a clk if the operation may sleep. > > Signed-off-by: William Wu <wulf@rock-chips.com> > --- > drivers/phy/phy-rockchip-inno-usb2.c | 12 ++++++------ > 1 file changed, 6 insertions(+), 6 deletions(-) Reviewed-by: Douglas Anderson <dianders@chromium.org>
[toc] | [prev] | [next] | [standalone]
| From | wlf <wulf@rock-chips.com> |
|---|---|
| Date | 2016-11-15 04:30 +0100 |
| Message-ID | <sDCBz-7So-9@gated-at.bofh.it> |
| In reply to | #1521962 |
Hi Doug, 在 2016年11月15日 02:15, Doug Anderson 写道: > William > > On Sun, Nov 13, 2016 at 11:01 PM, William Wu <wulf@rock-chips.com> wrote: >> Since we needs to delay ~1ms to wait for 480MHz output clock >> of USB2 PHY to become stable after turn on it, the delay time >> is pretty long for something that's supposed to be "atomic" >> like a clk_enable(). Consider that clk_enable() will disable >> interrupt and that a 1ms interrupt latency is not sensible. >> >> The 480MHz output clock should be handled in prepare callbacks >> which support gate a clk if the operation may sleep. >> >> Signed-off-by: William Wu <wulf@rock-chips.com> >> --- >> drivers/phy/phy-rockchip-inno-usb2.c | 12 ++++++------ >> 1 file changed, 6 insertions(+), 6 deletions(-) > Reviewed-by: Douglas Anderson <dianders@chromium.org> Thanks! I'll add Reviewed-by. > > >
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web