Re: [PATCH v5 2/7] scsi: ufs-qcom: Add reset control support for host controller

From: Vinod Koul
Date: Tue Dec 17 2019 - 04:24:42 EST


Hi Can,

On 17-12-19, 15:10, cang@xxxxxxxxxxxxxx wrote:
> On 2019-12-17 12:13, Vinod Koul wrote:
> > Hi Can,
> >
> > On 17-12-19, 08:37, cang@xxxxxxxxxxxxxx wrote:
> > > On 2019-12-17 03:12, Jeffrey Hugo wrote:
> > > > On Mon, Dec 16, 2019 at 12:05 PM Vinod Koul <vkoul@xxxxxxxxxx> wrote:
> > > > >
> > > > > Hi Can,
> > > > >
> > > > > On 14-11-19, 22:09, Can Guo wrote:
> > > > > > Add reset control for host controller so that host controller can be reset
> > > > > > as required in its power up sequence.
> > > > >
> > > > > I am seeing a regression on UFS on SM8150-mtp with this patch. I think
> > > > > Jeff is seeing same one lenove laptop on 8998.
> > > >
> > > > Confirmed.
> > > >
> > > > >
> > > > > 845 does not seem to have this issue and only thing I can see is
> > > > > that on
> > > > > sm8150 and 8998 we define reset as:
> > > > >
> > > > > resets = <&gcc GCC_UFS_BCR>;
> > > > > reset-names = "rst";
> > > > >
> > >
> > > Hi Jeffrey and Vinod,
> > >
> > > Thanks for reporting this. May I know what kind of regression do you
> > > see on
> > > 8150 and 8998?
> > > BTW, do you have reset control for UFS PHY in your DT?
> > > See 71278b058a9f8752e51030e363b7a7306938f64e.
> > >
> > > FYI, we use reset control on all of our platforms and it is
> > > a must during our power up sequence.
> >
> > Yes we do have this and additionally both the DTS describe a 'rst' reset
> > and this patch tries to use this.
> >
> > Can you please tell me which platform this was tested on how the reset
> > was described in DT
> >
> > Thanks
>
> Hi Vinod,
>
> If you are using the 8998's DT present on upstream, you may also need to
> enable
> device reset on your platform. (We usually do a device reset before call
> ufshcd_hba_enable())
> Given that 845 works fine, it may be the difference you have with 845. 845
> has device
> reset support ready in upstream code, you can check sdm845-mtp.dts.
> It is same for 8150, which is a lack of device reset support in upstream
> code base.

I am using 8150mtp and you can see the DTS at [1]
with this patch I get phy timeout error

[ 2.532594] qcom-qmp-phy 1d87000.phy: phy initialization timed-out

If i revert this patch the Timeout goes away. UFS node for this platform
is enabled in [2] and [3]

I did add the GPIO as well for testing but that doesnt work, only thing
that makes it work is rename the reset line to something other that 'rst'

I found that with this patch the reset is invoked twice, not sure why!

The 845 does not define a reset 'rst' but both 8150 and 8998 define
that!

[1]: https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux.git/log/?h=for-next
[2]: https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux.git/commit/?h=for-next&id=3834a2e92229ef26d30de28acb698b2b23d3e397
[3]: https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux.git/commit/?h=for-next&id=3e5bf28d2c3981f949e848eec8a60e0b9b61189d
>
> To enable UFS device reset, please see
> 1. https://lore.kernel.org/linux-arm-msm/20190828191756.24312-4-bjorn.andersson@xxxxxxxxxx/
> 2. 53a5372ce326116f3e3d3f1d701113b2542509f4

Yes both are added for UFS and I am testing with these..
>
> FYI, I tested the patch on 8250 and its family platforms. In my build, I
> ported
> change in #2 to my code base (in your case, make change to
> drivers/pinctrl/qcom/pinctrl-msm8998.c) and enable the GPIO in DT like
> sdm845-mtp.dts

Please see drivers/pinctrl/qcom/pinctrl-sm8150.c upstream

> reset-gpios = <&tlmm 150 GPIO_ACTIVE_LOW>;

Yup, added:

reset-gpios = <&tlmm 175 GPIO_ACTIVE_LOW>;

--
~Vinod