From: Doug Anderson <dianders@chromium.org>
To: Manu Gautam <mgautam@codeaurora.org>
Cc: Kishon Vijay Abraham I <kishon@ti.com>,
Rob Herring <robh@kernel.org>,
Stephen Boyd <sboyd@codeaurora.org>,
LKML <linux-kernel@vger.kernel.org>,
devicetree@vger.kernel.org, Rob Herring <robh+dt@kernel.org>,
Vivek Gautam <vivek.gautam@codeaurora.org>,
Evan Green <evgreen@chromium.org>,
linux-arm-msm@vger.kernel.org,
Varadarajan Narayanan <varada@codeaurora.org>,
Wei Yongjun <weiyongjun1@huawei.com>,
Fengguang Wu <fengguang.wu@intel.com>
Subject: Re: [PATCH v4 2/7] phy: qcom-qmp: Enable pipe_clk before PHY initialization
Date: Thu, 29 Mar 2018 11:44:20 -0700 [thread overview]
Message-ID: <CAD=FV=XtviSYq=2w=Ld1xq5U2VPy=u=q6a3+4qd2zVGB+f9P8A@mail.gmail.com> (raw)
In-Reply-To: <1522321466-21755-3-git-send-email-mgautam@codeaurora.org>
Hi,
On Thu, Mar 29, 2018 at 4:04 AM, Manu Gautam <mgautam@codeaurora.org> wrote:
> QMP PHY for USB/PCIE requires pipe_clk for locking of
> retime buffers at the pipe interface. Driver checks for
> PHY_STATUS without enabling pipe_clk due to which
> phy_init() fails with initialization timeout.
> Though pipe_clk is output from PHY (after PLL is programmed
> during initialization sequence) to GCC clock_ctl and then fed
> back to PHY but for PHY_STATUS register to reflect successful
> initialization pipe_clk from GCC must be present.
> Since, clock driver now ignores status_check for pipe_clk on
> clk_enable/disable, driver can safely enable/disable pipe_clk
> from phy_init/exit.
>
> Signed-off-by: Manu Gautam <mgautam@codeaurora.org>
> ---
> drivers/phy/qualcomm/phy-qcom-qmp.c | 22 ++++++++--------------
> 1 file changed, 8 insertions(+), 14 deletions(-)
Overall this looks much better than the previous version. Thanks! :)
I wonder one thing though. You describe the original problem as this:
1. If you don't turn the clock on in qcom_qmp_phy_init() then the PHY
never sets the "ready" status.
2. If you don't have the PHY powered on / out of reset (which happens
in qcom_qmp_phy_init()) then when you enable/disable the clock it
doesn't properly update the status. That's why you needed patch #1 in
this series.
I wonder: could you solve the above _without_ needing to use
BRANCH_HALT_DELAY in the clock driver? Specifically, can you tell me
what happens if you put the clk_prepare_enable() after you've powered
on the PHY and taken it out of reset but before you check the status?
Said another way, put the "clk_prepare_enable(qphy->pipe_clk)" call
right before the "readl_poll_timeout" of the ready status?
If you do that, you'll turn everything on. Then you'll check that the
clock's status is OK and then that the PHY's status is OK.
-Doug
next prev parent reply other threads:[~2018-03-29 18:44 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-03-29 11:04 [PATCH v4 0/7] phy: qcom: Updates for USB PHYs on SDM845 Manu Gautam
2018-03-29 11:04 ` [PATCH v4 1/7] clk: msm8996-gcc: change halt check for USB/PCIE pipe_clk Manu Gautam
2018-03-29 20:55 ` Doug Anderson
2018-04-05 20:07 ` Stephen Boyd
2018-04-10 6:44 ` Manu Gautam
2018-03-29 11:04 ` [PATCH v4 2/7] phy: qcom-qmp: Enable pipe_clk before PHY initialization Manu Gautam
2018-03-29 17:28 ` Evan Green
2018-03-29 18:44 ` Doug Anderson [this message]
2018-03-29 20:54 ` Doug Anderson
2018-04-10 6:36 ` Manu Gautam
2018-04-10 15:05 ` Doug Anderson
2018-04-10 18:32 ` Stephen Boyd
2018-04-11 15:37 ` Manu Gautam
2018-04-12 20:38 ` Stephen Boyd
2018-04-13 7:00 ` Manu Gautam
2018-03-29 11:04 ` [PATCH v4 3/7] phy: qcom-qusb2: Fix crash if nvmem cell not specified Manu Gautam
2018-03-29 11:04 ` [PATCH v4 4/7] dt-bindings: phy-qcom-qmp: Update bindings for sdm845 Manu Gautam
2018-03-29 19:39 ` Doug Anderson
2018-03-29 11:04 ` [PATCH v4 5/7] phy: qcom-qmp: Add QMP V3 USB3 UNI PHY support " Manu Gautam
2018-03-29 11:04 ` [PATCH v4 6/7] dt-bindings: phy-qcom-usb2: Add support to override tuning values Manu Gautam
2018-03-29 20:38 ` Doug Anderson
2018-04-09 20:18 ` Rob Herring
2018-04-10 7:16 ` Manu Gautam
2018-04-12 20:47 ` Doug Anderson
2018-04-16 1:36 ` Manu Gautam
2018-03-29 11:04 ` [PATCH v4 7/7] phy: qcom-qusb2: Add QUSB2 PHYs support for sdm845 Manu Gautam
2018-03-29 20:38 ` Doug Anderson
2018-04-10 6:55 ` Manu Gautam
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='CAD=FV=XtviSYq=2w=Ld1xq5U2VPy=u=q6a3+4qd2zVGB+f9P8A@mail.gmail.com' \
--to=dianders@chromium.org \
--cc=devicetree@vger.kernel.org \
--cc=evgreen@chromium.org \
--cc=fengguang.wu@intel.com \
--cc=kishon@ti.com \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mgautam@codeaurora.org \
--cc=robh+dt@kernel.org \
--cc=robh@kernel.org \
--cc=sboyd@codeaurora.org \
--cc=varada@codeaurora.org \
--cc=vivek.gautam@codeaurora.org \
--cc=weiyongjun1@huawei.com \
/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).