> On 10/20/22 11:03, Asutosh Das wrote: > > +u32 ufshcd_mcq_decide_queue_depth(struct ufs_hba *hba) > > +{ > > + u32 qd, val; > > + int mac; > > + > > + mac = ufshcd_mcq_vops_get_hba_mac(hba); > > + if (mac < 0) { > > + val = ufshcd_readl(hba, REG_UFS_MCQ_CFG); > > + mac = FIELD_GET(MCQ_CFG_MAC_MASK, val); > > + } > > According to the UFSHCI 4.0 specification the MAC value is set by the > host. Can the above code read the MAC value from the host controller > before it has been set by the host? If so, how about leaving out the > code that reads the MAC value from the controller and making it > mandatory to implement the new get_hba_mac vop? > > > + > > + /* MAC is a 0 based value. */ > > + mac += 1; > > + /* max. value of bqueuedepth = 256, mac is host dependent */ > > host dependent -> defined by the host controller? > > > + qd = min_t(u32, mac, hba->dev_info.bqueuedepth); > > + if (!qd) > > + qd = mac; Isn't if mcq is supported bqueuedepth can't be zero? The device must implements the shared queueing architecture. Thanks, Avri > > How about using min_not_zero() instead of open-coding it? > > Thanks, > > Bart.