[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1891546521.01650433981606.JavaMail.epsvc@epcpadp4>
Date: Wed, 20 Apr 2022 11:47:22 +0900
From: Keoseong Park <keosung.park@...sung.com>
To: Bean Huo <huobean@...il.com>,
ALIM AKHTAR <alim.akhtar@...sung.com>,
"avri.altman@....com" <avri.altman@....com>,
"asutoshd@...eaurora.org" <asutoshd@...eaurora.org>,
"jejb@...ux.ibm.com" <jejb@...ux.ibm.com>,
"martin.petersen@...cle.com" <martin.petersen@...cle.com>,
"stanley.chu@...iatek.com" <stanley.chu@...iatek.com>,
"beanhuo@...ron.com" <beanhuo@...ron.com>,
"bvanassche@....org" <bvanassche@....org>,
"tomas.winkler@...el.com" <tomas.winkler@...el.com>,
"cang@...eaurora.org" <cang@...eaurora.org>,
Daejun Park <daejun7.park@...sung.com>,
"powen.kao@...iatek.com" <powen.kao@...iatek.com>,
"peter.wang@...iatek.com" <peter.wang@...iatek.com>,
cpgsproxy3 <cpgsproxy3@...sung.com>
CC: "linux-scsi@...r.kernel.org" <linux-scsi@...r.kernel.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
Subject: RE: [PATCH v2 1/5] scsi: ufshpb: Merge ufshpb_reset() and
ufshpb_reset_host()
Hi Bean,
>From: Bean Huo <beanhuo@...ron.com>
>
>There is no functional change in this patch, just merge ufshpb_reset() and
>ufshpb_reset_host() into one function ufshpb_toggle()
>
>Signed-off-by: Bean Huo <beanhuo@...ron.com>
>---
> drivers/scsi/ufs/ufshcd.c | 4 ++--
> drivers/scsi/ufs/ufshpb.c | 36 +++++++++++++-----------------------
> drivers/scsi/ufs/ufshpb.h | 6 ++----
> 3 files changed, 17 insertions(+), 29 deletions(-)
>
>diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c
>index 0899d5b8cdad..de0bc53e3ac6 100644
>--- a/drivers/scsi/ufs/ufshcd.c
>+++ b/drivers/scsi/ufs/ufshcd.c
>@@ -7223,7 +7223,7 @@ static int ufshcd_host_reset_and_restore(struct ufs_hba *hba)
> * Stop the host controller and complete the requests
> * cleared by h/w
> */
>- ufshpb_reset_host(hba);
>+ ufshpb_toggle(hba, HPB_PRESENT, HPB_RESET);
> ufshcd_hba_stop(hba);
> hba->silence_err_logs = true;
> ufshcd_complete_requests(hba);
>@@ -8184,7 +8184,7 @@ static int ufshcd_probe_hba(struct ufs_hba *hba, bool init_dev_params)
> /* Enable Auto-Hibernate if configured */
> ufshcd_auto_hibern8_enable(hba);
>
>- ufshpb_reset(hba);
>+ ufshpb_toggle(hba, HPB_RESET, HPB_PRESENT);
> out:
> spin_lock_irqsave(hba->host->host_lock, flags);
> if (ret)
>diff --git a/drivers/scsi/ufs/ufshpb.c b/drivers/scsi/ufs/ufshpb.c
>index 3ca745ad616c..9df032e82ec3 100644
>--- a/drivers/scsi/ufs/ufshpb.c
>+++ b/drivers/scsi/ufs/ufshpb.c
>@@ -2278,38 +2278,28 @@ static bool ufshpb_check_hpb_reset_query(struct ufs_hba *hba)
> return flag_res;
> }
>
>-void ufshpb_reset(struct ufs_hba *hba)
>+/**
>+ * ufshpb_toggle - switch HPB state of all LUs
>+ * @hba: per-adapter instance
>+ * @src: expected current HPB state
>+ * @dest: target HPB state to switch to
>+ */
>+void ufshpb_toggle(struct ufs_hba *hba, enum UFSHPB_STATE src, enum UFSHPB_STATE dest)
How about changing it to something like ufshpb_state_toggle()?
Best Regards,
Keoseong Park
> {
> struct ufshpb_lu *hpb;
> struct scsi_device *sdev;
>
> shost_for_each_device(sdev, hba->host) {
> hpb = ufshpb_get_hpb_data(sdev);
>- if (!hpb)
>- continue;
>-
>- if (ufshpb_get_state(hpb) != HPB_RESET)
>- continue;
>-
>- ufshpb_set_state(hpb, HPB_PRESENT);
>- }
>-}
>-
>-void ufshpb_reset_host(struct ufs_hba *hba)
>-{
>- struct ufshpb_lu *hpb;
>- struct scsi_device *sdev;
>
>- shost_for_each_device(sdev, hba->host) {
>- hpb = ufshpb_get_hpb_data(sdev);
>- if (!hpb)
>+ if (!hpb || ufshpb_get_state(hpb) != src)
> continue;
>+ ufshpb_set_state(hpb, dest);
>
>- if (ufshpb_get_state(hpb) != HPB_PRESENT)
>- continue;
>- ufshpb_set_state(hpb, HPB_RESET);
>- ufshpb_cancel_jobs(hpb);
>- ufshpb_discard_rsp_lists(hpb);
>+ if (dest == HPB_RESET) {
>+ ufshpb_cancel_jobs(hpb);
>+ ufshpb_discard_rsp_lists(hpb);
>+ }
> }
> }
>
>diff --git a/drivers/scsi/ufs/ufshpb.h b/drivers/scsi/ufs/ufshpb.h
>index b475dbd78988..2825ec69a6a6 100644
>--- a/drivers/scsi/ufs/ufshpb.h
>+++ b/drivers/scsi/ufs/ufshpb.h
>@@ -288,8 +288,7 @@ static int ufshpb_prep(struct ufs_hba *hba, struct ufshcd_lrb *lrbp) { return 0;
> static void ufshpb_rsp_upiu(struct ufs_hba *hba, struct ufshcd_lrb *lrbp) {}
> static void ufshpb_resume(struct ufs_hba *hba) {}
> static void ufshpb_suspend(struct ufs_hba *hba) {}
>-static void ufshpb_reset(struct ufs_hba *hba) {}
>-static void ufshpb_reset_host(struct ufs_hba *hba) {}
>+static void ufshpb_toggle(struct ufs_hba *hba, enum UFSHPB_STATE src, enum UFSHPB_STATE dest) {}
> static void ufshpb_init(struct ufs_hba *hba) {}
> static void ufshpb_init_hpb_lu(struct ufs_hba *hba, struct scsi_device *sdev) {}
> static void ufshpb_destroy_lu(struct ufs_hba *hba, struct scsi_device *sdev) {}
>@@ -303,8 +302,7 @@ int ufshpb_prep(struct ufs_hba *hba, struct ufshcd_lrb *lrbp);
> void ufshpb_rsp_upiu(struct ufs_hba *hba, struct ufshcd_lrb *lrbp);
> void ufshpb_resume(struct ufs_hba *hba);
> void ufshpb_suspend(struct ufs_hba *hba);
>-void ufshpb_reset(struct ufs_hba *hba);
>-void ufshpb_reset_host(struct ufs_hba *hba);
>+void ufshpb_toggle(struct ufs_hba *hba, enum UFSHPB_STATE src, enum UFSHPB_STATE dest);
> void ufshpb_init(struct ufs_hba *hba);
> void ufshpb_init_hpb_lu(struct ufs_hba *hba, struct scsi_device *sdev);
> void ufshpb_destroy_lu(struct ufs_hba *hba, struct scsi_device *sdev);
>--
>2.34.1
>
>
Powered by blists - more mailing lists