From: Keoseong Park <keosung.park@samsung.com>
To: Bean Huo <huobean@gmail.com>,
ALIM AKHTAR <alim.akhtar@samsung.com>,
"avri.altman@wdc.com" <avri.altman@wdc.com>,
"jejb@linux.ibm.com" <jejb@linux.ibm.com>,
"martin.petersen@oracle.com" <martin.petersen@oracle.com>,
"stanley.chu@mediatek.com" <stanley.chu@mediatek.com>,
"beanhuo@micron.com" <beanhuo@micron.com>,
"bvanassche@acm.org" <bvanassche@acm.org>,
"tomas.winkler@intel.com" <tomas.winkler@intel.com>,
Daejun Park <daejun7.park@samsung.com>,
Keoseong Park <keosung.park@samsung.com>,
"peter.wang@mediatek.com" <peter.wang@mediatek.com>,
"powen.kao@mediatek.com" <powen.kao@mediatek.com>,
cpgsproxy3 <cpgsproxy3@samsung.com>
Cc: "linux-scsi@vger.kernel.org" <linux-scsi@vger.kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: RE: [PATCH v3 3/6] scsi: ufshpb: Cleanup the handler when device reset HPB information
Date: Mon, 25 Apr 2022 12:23:46 +0900 [thread overview]
Message-ID: <1889248251.21650857882164.JavaMail.epsvc@epcpadp4> (raw)
In-Reply-To: <20220424220713.1253049-4-huobean@gmail.com>
>From: Bean Huo <beanhuo@micron.com>
>
>"When the device is powered off by the host, the device may restore L2P map data
>upon power up or build from the host’s HPB READ command. In case device powered
>up and lost HPB information, device can signal to the host through HPB Sense data,
>by setting HPB Operation as ‘2’ which will inform the host that device reset HPB
>information."
>
>This patch is to clean up the handler and make the intent of this handler more
>readable, no functional change.
>
>Signed-off-by: Bean Huo <beanhuo@micron.com>
Reviewed-by: Keoseong Park <keosung.park@samsung.com>
Best Regards,
Keoseong Park
>---
> drivers/scsi/ufs/ufshpb.c | 35 +++++++++++++++++++++++------------
> 1 file changed, 23 insertions(+), 12 deletions(-)
>
>diff --git a/drivers/scsi/ufs/ufshpb.c b/drivers/scsi/ufs/ufshpb.c
>index 167643969165..f1f30d4c3d65 100644
>--- a/drivers/scsi/ufs/ufshpb.c
>+++ b/drivers/scsi/ufs/ufshpb.c
>@@ -1225,7 +1225,10 @@ static void ufshpb_rsp_req_region_update(struct ufshpb_lu *hpb,
> queue_work(ufshpb_wq, &hpb->map_work);
> }
>
>-static void ufshpb_dev_reset_handler(struct ufshpb_lu *hpb)
>+/*
>+ * Set the flags of all active regions to RGN_FLAG_UPDATE to let host side reload L2P entries later
>+ */
>+static void ufshpb_set_regions_update(struct ufshpb_lu *hpb)
> {
> struct victim_select_info *lru_info = &hpb->lru_info;
> struct ufshpb_region *rgn;
>@@ -1239,6 +1242,24 @@ static void ufshpb_dev_reset_handler(struct ufshpb_lu *hpb)
> spin_unlock_irqrestore(&hpb->rgn_state_lock, flags);
> }
>
>+static void ufshpb_dev_reset_handler(struct ufs_hba *hba)
>+{
>+ struct scsi_device *sdev;
>+ struct ufshpb_lu *hpb;
>+
>+ __shost_for_each_device(sdev, hba->host) {
>+ hpb = ufshpb_get_hpb_data(sdev);
>+ if (hpb && hpb->is_hcm)
>+ /*
>+ * For the HPB host mode, in case device powered up and lost HPB
>+ * information, we will set the region flag to be RGN_FLAG_UPDATE,
>+ * it will let host reload its L2P entries(re-activate the region
>+ * in the UFS device).
>+ */
>+ ufshpb_set_regions_update(hpb);
>+ }
>+}
>+
> /*
> * This function will parse recommended active subregion information in sense
> * data field of response UPIU with SAM_STAT_GOOD state.
>@@ -1313,17 +1334,7 @@ void ufshpb_rsp_upiu(struct ufs_hba *hba, struct ufshcd_lrb *lrbp)
> case HPB_RSP_DEV_RESET:
> dev_warn(&hpb->sdev_ufs_lu->sdev_dev,
> "UFS device lost HPB information during PM.\n");
>-
>- if (hpb->is_hcm) {
>- struct scsi_device *sdev;
>-
>- __shost_for_each_device(sdev, hba->host) {
>- struct ufshpb_lu *h = sdev->hostdata;
>-
>- if (h)
>- ufshpb_dev_reset_handler(h);
>- }
>- }
>+ ufshpb_dev_reset_handler(hba);
>
> break;
> default:
>--
>2.34.1
>
>
next prev parent reply other threads:[~2022-04-25 3:38 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-04-24 22:07 [PATCH v3 0/6] Several changes for UFSHPB Bean Huo
2022-04-24 22:07 ` [PATCH v3 1/6] scsi: ufshpb: Merge ufshpb_reset() and ufshpb_reset_host() Bean Huo
2022-04-25 2:00 ` Keoseong Park
2022-04-24 22:07 ` [PATCH v3 2/6] scsi: ufshpb: Remove 0 assignment for enum value Bean Huo
2022-04-24 22:07 ` [PATCH v3 3/6] scsi: ufshpb: Cleanup the handler when device reset HPB information Bean Huo
2022-04-25 3:23 ` Keoseong Park [this message]
2022-04-24 22:07 ` [PATCH v3 4/6] scsi: ufshpb: Change sysfs node hpb_stats/rb_* prefix to start with rcmd_* Bean Huo
2022-04-25 3:43 ` Keoseong Park
2022-04-26 21:56 ` Bean Huo
2022-04-25 6:19 ` Avri Altman
2022-04-26 21:44 ` Bean Huo
2022-04-24 22:07 ` [PATCH v3 5/6] scsi: ufshpb: Add handing of device reset HPB regions Infos in HPB device mode Bean Huo
2022-04-25 3:54 ` Keoseong Park
2022-04-25 6:43 ` Avri Altman
2022-04-26 21:54 ` Bean Huo
2022-04-24 22:07 ` [PATCH v3 6/6] scsi: ufshpb: Cleanup ufshpb_suspend/resume Bean Huo
2022-04-25 2:25 ` Keoseong Park
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=1889248251.21650857882164.JavaMail.epsvc@epcpadp4 \
--to=keosung.park@samsung.com \
--cc=alim.akhtar@samsung.com \
--cc=avri.altman@wdc.com \
--cc=beanhuo@micron.com \
--cc=bvanassche@acm.org \
--cc=cpgsproxy3@samsung.com \
--cc=daejun7.park@samsung.com \
--cc=huobean@gmail.com \
--cc=jejb@linux.ibm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-scsi@vger.kernel.org \
--cc=martin.petersen@oracle.com \
--cc=peter.wang@mediatek.com \
--cc=powen.kao@mediatek.com \
--cc=stanley.chu@mediatek.com \
--cc=tomas.winkler@intel.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