[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20190606071828.GS22737@tuxbook-pro>
Date: Thu, 6 Jun 2019 00:18:28 -0700
From: Bjorn Andersson <bjorn.andersson@...aro.org>
To: Avri Altman <Avri.Altman@....com>
Cc: Rob Herring <robh+dt@...nel.org>,
Mark Rutland <mark.rutland@....com>,
Alim Akhtar <alim.akhtar@...sung.com>,
Pedro Sousa <pedrom.sousa@...opsys.com>,
"James E.J. Bottomley" <jejb@...ux.ibm.com>,
"Martin K. Petersen" <martin.petersen@...cle.com>,
Andy Gross <agross@...nel.org>,
Linus Walleij <linus.walleij@...aro.org>,
Evan Green <evgreen@...omium.org>,
"linux-arm-msm@...r.kernel.org" <linux-arm-msm@...r.kernel.org>,
"linux-gpio@...r.kernel.org" <linux-gpio@...r.kernel.org>,
"devicetree@...r.kernel.org" <devicetree@...r.kernel.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
"linux-scsi@...r.kernel.org" <linux-scsi@...r.kernel.org>
Subject: Re: [PATCH v2 2/3] scsi: ufs: Allow resetting the UFS device
On Wed 05 Jun 23:36 PDT 2019, Avri Altman wrote:
>
> > static int ufshcd_hba_init(struct ufs_hba *hba)
> > {
> > int err;
> > @@ -7425,9 +7460,15 @@ static int ufshcd_hba_init(struct ufs_hba *hba)
> > if (err)
> > goto out_disable_vreg;
> >
> > + err = ufshcd_init_device_reset(hba);
> > + if (err)
> > + goto out_disable_variant;
> > +
> > hba->is_powered = true;
> > goto out;
> >
> > +out_disable_variant:
> > + ufshcd_vops_setup_regulators(hba, false);
> Is this necessary?
> ufshcd_vops_setup_regulators() was just called as part of ufshcd_variant_hba_init
>
Yes, so my attempt here is to reverse the enablement of the vops
regulators (hence passing false). But looking at it again I see that we
should also do ufshcd_vops_exit(), so the right thing to call here is
ufshcd_variant_hba_exit().
PS. This initialization sequence should really be rewritten to first
acquire all resources and then turn them on. This mixes init/setup
sequence is really hard to reason about.
Regards,
Bjorn
Powered by blists - more mailing lists