This patch series enable support for ufshcd_abort() and error handler in MCQ mode. Bao D. Nguyen (7): ufs: core: Combine 32-bit command_desc_base_addr_lo/hi ufs: core: Update the ufshcd_clear_cmds() functionality ufs: mcq: Add supporting functions for mcq abort ufs: mcq: Add support for clean up mcq resources ufs: mcq: Added ufshcd_mcq_abort() ufs: mcq: Use ufshcd_mcq_poll_cqe_lock() in mcq mode ufs: core: Add error handling for MCQ mode drivers/ufs/core/ufs-mcq.c | 236 ++++++++++++++++++++++++++++++++++++++++- drivers/ufs/core/ufshcd-priv.h | 17 ++- drivers/ufs/core/ufshcd.c | 200 +++++++++++++++++++++++++++------- drivers/ufs/host/ufs-qcom.c | 2 +- include/ufs/ufshcd.h | 5 +- include/ufs/ufshci.h | 23 +++- 6 files changed, 431 insertions(+), 52 deletions(-) --- v2->v3: patch #1: New patch per Bart's comment. Helps process utp cmd descriptor addr easier. patch #2: New patch to address Bart's comment regarding potentialoverflow when mcq queue depth becomes greater than 64. patch #3: Address Bart's comments . Replaced ufshcd_mcq_poll_register() with read_poll_timeout() . Replace spin_lock(sq_lock) with mutex(sq_mutex) . Updated ufshcd_mcq_nullify_cmd() and renamed to ufshcd_mcq_nullify_sqe() . Minor cosmetic changes patch #4: Adress Bart's comments. Added new function ufshcd_cmd_inflight() to replace the usage of lrbp->cmd patch #5: Continue replacing lrbp->cmd with ufshcd_cmd_inflight() patch #6: No change patch #7: Address Stanley Chu's comment about clearing hba->dev_cmd.complete in clear ufshcd_wait_for_dev_cmd() Address Bart's comment. --- v1->v2: patch #1: Addressed Powen's comment. Replaced read_poll_timeout() with ufshcd_mcq_poll_register(). The function read_poll_timeout() may sleep while the caller is holding a spin_lock(). Poll the registers in a tight loop instead. --- 2.7.4