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

From: cang
Date: Tue Dec 17 2019 - 02:10:40 EST


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.

To enable UFS device reset, please see
1. https://lore.kernel.org/linux-arm-msm/20190828191756.24312-4-bjorn.andersson@xxxxxxxxxx/
2. 53a5372ce326116f3e3d3f1d701113b2542509f4

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

reset-gpios = <&tlmm 150 GPIO_ACTIVE_LOW>;

Thanks