Re: [PATCH v4 9/9] scsi: ufs: Make .get_hba_mac() optional

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Jul 03, 2024 at 01:36:46PM -0700, Bart Van Assche wrote:
> On 7/3/24 6:22 AM, Manivannan Sadhasivam wrote:
> > On Tue, Jul 02, 2024 at 01:39:17PM -0700, Bart Van Assche wrote:
> > > -	mac = hba->vops->get_hba_mac(hba);
> > > +	if (!hba->vops || !hba->vops->get_hba_mac) {
> > > +		hba->capabilities =
> > > +			ufshcd_readl(hba, REG_CONTROLLER_CAPABILITIES);
> > > +		mac = hba->capabilities & MASK_TRANSFER_REQUESTS_SLOTS_MCQ;
> > > +		mac++;
> > 
> > Can you add a comment to state that the MAC value is 0 based?
> 
> Sure.
> 
> > > diff --git a/drivers/ufs/core/ufshcd.c b/drivers/ufs/core/ufshcd.c
> > > index b3444f9ce130..9e0290c6c2d3 100644
> > > --- a/drivers/ufs/core/ufshcd.c
> > > +++ b/drivers/ufs/core/ufshcd.c
> > > @@ -8753,13 +8753,15 @@ static int ufshcd_device_init(struct ufs_hba *hba, bool init_dev_params)
> > >   		if (ret)
> > >   			return ret;
> > >   		if (is_mcq_supported(hba) && !hba->scsi_host_added) {
> > > +			ufshcd_mcq_enable(hba);
> > > +			hba->mcq_enabled = true;
> > 
> > If the 'mcq_enabled' assignment goes hand in hand with
> > ufshcd_mcq_{enable/disable}, why shouldn't it be moved inside?
> 
> If an UFSHCI controller is reset, the controller is reset from MCQ mode
> to SDB mode and it is derived from the hba->mcq_enabled structure member
> that MCQ was enabled before the reset. In other words, moving all
> hba->mcq_enabled assignments into ufshcd_mcq_{enable/disable}() would
> break the code that resets the UFSHCI controller.
> 

Hmm, could you please point me to the code that does this? I tried looking for
it but couldn't spot.

- Mani

-- 
மணிவண்ணன் சதாசிவம்




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]

  Powered by Linux