[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <Y1JiT7qKERR7ktSs@hovoldconsulting.com>
Date: Fri, 21 Oct 2022 11:11:43 +0200
From: Johan Hovold <johan@...nel.org>
To: Dmitry Baryshkov <dmitry.baryshkov@...aro.org>
Cc: Johan Hovold <johan+linaro@...nel.org>,
Vinod Koul <vkoul@...nel.org>, Andy Gross <agross@...nel.org>,
Bjorn Andersson <andersson@...nel.org>,
Konrad Dybcio <konrad.dybcio@...ainline.org>,
Rob Herring <robh+dt@...nel.org>,
Krzysztof Kozlowski <krzysztof.kozlowski+dt@...aro.org>,
linux-arm-msm@...r.kernel.org, linux-phy@...ts.infradead.org,
devicetree@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH v2 12/15] phy: qcom-qmp-pcie: fix initialisation reset
On Wed, Oct 19, 2022 at 04:52:29PM +0300, Dmitry Baryshkov wrote:
> On 19/10/2022 14:35, Johan Hovold wrote:
> > Add the missing delay after asserting reset. This is specifically needed
> > for the reset to have any effect on SC8280XP.
> >
> > The vendor driver uses a 1 ms delay, but that seems a bit excessive.
> > Instead use a 200 us delay which appears to be more than enough and also
> > matches the UFS reset delay added by commit 870b1279c7a0 ("scsi:
> > ufs-qcom: Add reset control support for host controller").
> >
> > Signed-off-by: Johan Hovold <johan+linaro@...nel.org>
> > ---
> > drivers/phy/qualcomm/phy-qcom-qmp-pcie.c | 2 ++
> > 1 file changed, 2 insertions(+)
> >
> > diff --git a/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c b/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c
> > index 2f4bdef73395..9c8e009033f1 100644
> > --- a/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c
> > +++ b/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c
> > @@ -1866,6 +1866,8 @@ static int qmp_pcie_init(struct phy *phy)
> > goto err_disable_regulators;
> > }
> >
> > + usleep_range(200, 300);
> > +
>
> If there is a v3, I'd kindly ask to add a comment about vendor using 1ms
> here.
No, I'm going to leave this is as is. The vendor driver is just a
reference implementation with a wide range of differences which there's
little point in documenting in mainline.
This information will continue to be available in the git logs if anyone
wonders were these numbers came from.
If it turns out that some other platform needs a longer delay, we can
consider increasing the delay unconditionally after verifying
experimentally.
And anyone with access to actual documentation is of course free to
suggest a different delay from the start.
> > ret = reset_control_bulk_deassert(cfg->num_resets, qmp->resets);
> > if (ret) {
> > dev_err(qmp->dev, "reset deassert failed\n");
Johan
Powered by blists - more mailing lists