From: "Bao D. Nguyen" <quic_nguyenb@quicinc.com>
To: <quic_asutoshd@quicinc.com>, <quic_cang@quicinc.com>,
<bvanassche@acm.org>, <mani@kernel.org>,
<stanley.chu@mediatek.com>, <adrian.hunter@intel.com>,
<beanhuo@micron.com>, <avri.altman@wdc.com>,
<martin.petersen@oracle.com>
Cc: <linux-scsi@vger.kernel.org>, "Bao D. Nguyen" <quic_nguyenb@quicinc.com>
Subject: [PATCH v7 0/7] ufs: core: mcq: Add ufshcd_abort() and error handler support in MCQ mode
Date: Mon, 29 May 2023 15:12:19 -0700 [thread overview]
Message-ID: <cover.1685396241.git.quic_nguyenb@quicinc.com> (raw)
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 | 259 ++++++++++++++++++++++++++++++++++++++++-
drivers/ufs/core/ufshcd-priv.h | 18 ++-
drivers/ufs/core/ufshcd.c | 256 ++++++++++++++++++++++++++++++++--------
drivers/ufs/host/ufs-qcom.c | 2 +-
include/ufs/ufshcd.h | 5 +-
include/ufs/ufshci.h | 23 +++-
6 files changed, 501 insertions(+), 62 deletions(-)
---
Changes compared to v6:
patch #7: Added a new argument force_compl to function ufshcd_mcq_compl_pending_transfer().
Added a new function ufshcd_mcq_compl_all_cqes_lock().
This change is to handle the case where the ufs host controller has been reset by
the ufshcd_hba_stop() in ufshcd_host_reset_and_restore() prior to calling
ufshcd_complete_requests(). The new logic is added to correctly complete all the
commands that have been completed in the Completion Queue, or inform the scsi layer
about those commands that are still stuck/pending in the hardware.
---
v5->v6: Addressed Stanley's comments
patch #1,2,3,4,6: unchanged.
patch #5: fixed extra erroneous if() statement introduced in version v5
patch #7: Change ufshcd_complete_requests() to call a new mcq function
ufshcd_mcq_compl_pending_transfer(), leaving ufshcd_transfer_req_compl()
to be used in SDB mode only.
Reset the hwq's head and tail slot variables to default values
when the ufs host controller hw has been reset.
---
v4->v5:
patch #4: fixed uninitialized variable access introduced in patch v3.
---
v3->v4: Mainly addressed Bart's comments
patch #1: updated the commit message
patch #2: renamed ufshcd_clear_cmds() into ufshcd_clear_cmd()
patch #3: removed result arg in ufshcd_mcq_sq_cleanup()
patch #4: removed check for "!rq" in ufshcd_cmd_inflight()
avoided access to door bell register in mcq mode
patch #5, 6: unchanged
patch #7: ufshcd_clear_cmds() to ufshcd_clear_cmd()
---
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
next reply other threads:[~2023-05-29 22:13 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-05-29 22:12 Bao D. Nguyen [this message]
2023-05-29 22:12 ` [PATCH v7 1/7] ufs: core: Combine 32-bit command_desc_base_addr_lo/hi Bao D. Nguyen
2023-05-29 22:12 ` [PATCH v7 2/7] ufs: core: Update the ufshcd_clear_cmds() functionality Bao D. Nguyen
2023-05-29 22:12 ` [PATCH v7 3/7] ufs: mcq: Add supporting functions for mcq abort Bao D. Nguyen
2023-05-29 22:12 ` [PATCH v7 4/7] ufs: mcq: Add support for clean up mcq resources Bao D. Nguyen
2023-05-29 22:12 ` [PATCH v7 5/7] ufs: mcq: Added ufshcd_mcq_abort() Bao D. Nguyen
2023-05-29 22:12 ` [PATCH v7 6/7] ufs: mcq: Use ufshcd_mcq_poll_cqe_lock() in mcq mode Bao D. Nguyen
2023-05-29 22:12 ` [PATCH v7 7/7] ufs: core: Add error handling for MCQ mode Bao D. Nguyen
2023-05-30 0:23 ` [PATCH v7 0/7] ufs: core: mcq: Add ufshcd_abort() and error handler support in " Stanley Chu
2023-05-30 2:14 ` Bao D. Nguyen
2023-05-30 5:23 ` Can Guo
2023-06-01 0:23 ` Martin K. Petersen
2023-06-08 1:42 ` Martin K. Petersen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=cover.1685396241.git.quic_nguyenb@quicinc.com \
--to=quic_nguyenb@quicinc.com \
--cc=adrian.hunter@intel.com \
--cc=avri.altman@wdc.com \
--cc=beanhuo@micron.com \
--cc=bvanassche@acm.org \
--cc=linux-scsi@vger.kernel.org \
--cc=mani@kernel.org \
--cc=martin.petersen@oracle.com \
--cc=quic_asutoshd@quicinc.com \
--cc=quic_cang@quicinc.com \
--cc=stanley.chu@mediatek.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox