> On 10/16/24 11:55 PM, Avri Altman wrote: > > > >> - /* Poll SQRTSy.CUS = 1. Return result from SQRTSy.RTC */ > >> - reg = opr_sqd_base + REG_SQRTS; > >> - err = read_poll_timeout(readl, val, val & SQ_CUS, 20, > >> - MCQ_POLL_US, false, reg); > >> + /* Wait until SQRTSy.CUS = 1. */ > >> + err = read_poll_timeout(readl, val, val & SQ_CUS, 20, MCQ_POLL_US, > >> + false, opr_sqd_base + REG_SQRTS); > >> if (err) > > Can remove the if (err) > > > >> - dev_err(hba->dev, "%s: failed. hwq=%d, tag=%d err=%ld\n", > >> - __func__, id, task_tag, > >> - FIELD_GET(SQ_ICU_ERR_CODE_MASK, readl(reg))); > >> + dev_err(hba->dev, "%s: failed. hwq=%d, tag=%d err=%d\n", > >> + __func__, id, task_tag, err); > > And report RTC on success or err otherwise: > > + __func__, id, task_tag, err ? : > > + FIELD_GET(SQ_ICU_ERR_CODE_MASK, readl(opr_sqd_base + > REG_SQRTS)); > > Hi Avri, > > From the UFSCHI standard about RTC: > > 0 : Success > 1 : Fail – Task Not found > 2 : Fail – SQ not stopped > 3 : Fail – SQ is disabled > Others : Reserved > > Do you agree with changing ufshcd_mcq_sq_cleanup() such that it fails if RTC > is not zero? I was just pointing out that after your change, the extra info of RTC will no longer be available, And proposed a way in which we can still retain it. Thanks, Avri > > Thanks, > > Bart.