* [PATCH v3 0/2] ufs: introduce skipping manual flush for wb [not found] <CGME20200825015200epcas2p2aef1427e960c86e7da08dc4608f20e26@epcas2p2.samsung.com> @ 2020-08-25 1:43 ` Kiwoong Kim [not found] ` <CGME20200825015202epcas2p4d323c37ea40790ad27034b2f84855bf5@epcas2p4.samsung.com> ` (2 more replies) 0 siblings, 3 replies; 5+ messages in thread From: Kiwoong Kim @ 2020-08-25 1:43 UTC (permalink / raw) To: linux-scsi, alim.akhtar, avri.altman, jejb, martin.petersen, beanhuo, asutoshd, cang, bvanassche, grant.jung, sc.suh, hy50.seo, sh425.lee Cc: Kiwoong Kim v1 -> v2: enable the quirk in exynos v2 -> v3: modify some commit messages We have two knobs to flush for write booster, i.e. fWriteBoosterBufferFlushDuringHibernate and fWriteBoosterBufferFlushEn. However, many product makers uses only fWriteBoosterBufferFlushDuringHibernate, because this can reportedly cover most scenarios and there have been some reports that flush by fWriteBoosterBufferFlushEn could lead to raise power consumption thanks to unexpected internal operations. So we need a way to enable or disable fWriteBoosterEn operations. For those case, this quirk will allow to avoid manual flush Kiwoong Kim (2): ufs: introduce skipping manual flush for wb ufs: exynos: enable UFSHCI_QUIRK_SKIP_MANUAL_WB_FLUSH_CTRL drivers/scsi/ufs/ufs-exynos.c | 3 ++- drivers/scsi/ufs/ufshcd.c | 3 +++ drivers/scsi/ufs/ufshcd.h | 5 +++++ 3 files changed, 10 insertions(+), 1 deletion(-) -- 2.7.4 ^ permalink raw reply [flat|nested] 5+ messages in thread
[parent not found: <CGME20200825015202epcas2p4d323c37ea40790ad27034b2f84855bf5@epcas2p4.samsung.com>]
* [PATCH v3 1/2] ufs: introduce skipping manual flush for wb [not found] ` <CGME20200825015202epcas2p4d323c37ea40790ad27034b2f84855bf5@epcas2p4.samsung.com> @ 2020-08-25 1:43 ` Kiwoong Kim 2020-08-25 7:29 ` Avri Altman 0 siblings, 1 reply; 5+ messages in thread From: Kiwoong Kim @ 2020-08-25 1:43 UTC (permalink / raw) To: linux-scsi, alim.akhtar, avri.altman, jejb, martin.petersen, beanhuo, asutoshd, cang, bvanassche, grant.jung, sc.suh, hy50.seo, sh425.lee Cc: Kiwoong Kim We have two knobs to flush for write booster, i.e. fWriteBoosterBufferFlushDuringHibernate and fWriteBoosterBufferFlushEn. However, many product makers uses only fWriteBoosterBufferFlushDuringHibernate, because this can reportedly cover most scenarios and there have been some reports that flush by fWriteBoosterBufferFlushEn could lead to raise power consumption thanks to unexpected internal operations. So we need a way to enable or disable fWriteBoosterEn operations. For those case, this quirk will allow to avoid manual flush Signed-off-by: Kiwoong Kim <kwmad.kim@samsung.com> --- drivers/scsi/ufs/ufshcd.c | 3 +++ drivers/scsi/ufs/ufshcd.h | 5 +++++ 2 files changed, 8 insertions(+) diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c index ed03051..7c79a8f 100644 --- a/drivers/scsi/ufs/ufshcd.c +++ b/drivers/scsi/ufs/ufshcd.c @@ -5277,6 +5277,9 @@ static int ufshcd_wb_toggle_flush_during_h8(struct ufs_hba *hba, bool set) static inline void ufshcd_wb_toggle_flush(struct ufs_hba *hba, bool enable) { + if (hba->quirks & UFSHCI_QUIRK_SKIP_MANUAL_WB_FLUSH_CTRL) + return; + if (enable) ufshcd_wb_buf_flush_enable(hba); else diff --git a/drivers/scsi/ufs/ufshcd.h b/drivers/scsi/ufs/ufshcd.h index e5353d6..cfafd6e 100644 --- a/drivers/scsi/ufs/ufshcd.h +++ b/drivers/scsi/ufs/ufshcd.h @@ -511,6 +511,11 @@ enum ufshcd_quirks { * OCS FATAL ERROR with device error through sense data */ UFSHCD_QUIRK_BROKEN_OCS_FATAL_ERROR = 1 << 10, + + /* + * This quirk needs to disable manual flush for write booster + */ + UFSHCI_QUIRK_SKIP_MANUAL_WB_FLUSH_CTRL = 1 << 11, }; enum ufshcd_caps { -- 2.7.4 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* RE: [PATCH v3 1/2] ufs: introduce skipping manual flush for wb 2020-08-25 1:43 ` [PATCH v3 1/2] " Kiwoong Kim @ 2020-08-25 7:29 ` Avri Altman 0 siblings, 0 replies; 5+ messages in thread From: Avri Altman @ 2020-08-25 7:29 UTC (permalink / raw) To: Kiwoong Kim, linux-scsi, alim.akhtar, jejb, martin.petersen, beanhuo, asutoshd, cang, bvanassche, grant.jung, sc.suh, hy50.seo, sh425.lee > > We have two knobs to flush for write booster, i.e. > fWriteBoosterBufferFlushDuringHibernate and fWriteBoosterBufferFlushEn. > However, many product makers uses only > fWriteBoosterBufferFlushDuringHibernate, > because this can reportedly cover most scenarios and > there have been some reports that flush by fWriteBoosterBufferFlushEn > could lead to raise power consumption thanks to unexpected internal > operations. So we need a way to enable or disable fWriteBoosterEn > operations. For those case, this quirk will allow to avoid manual flush > > Signed-off-by: Kiwoong Kim <kwmad.kim@samsung.com> Reviewed-by: Avri Altman <avri.altman@wdc.com> ^ permalink raw reply [flat|nested] 5+ messages in thread
[parent not found: <CGME20200825015203epcas2p2dd85feeebcd455e2eecf53a7f077760a@epcas2p2.samsung.com>]
* [PATCH v3 2/2] ufs: exynos: enable UFSHCI_QUIRK_SKIP_MANUAL_WB_FLUSH_CTRL [not found] ` <CGME20200825015203epcas2p2dd85feeebcd455e2eecf53a7f077760a@epcas2p2.samsung.com> @ 2020-08-25 1:43 ` Kiwoong Kim 0 siblings, 0 replies; 5+ messages in thread From: Kiwoong Kim @ 2020-08-25 1:43 UTC (permalink / raw) To: linux-scsi, alim.akhtar, avri.altman, jejb, martin.petersen, beanhuo, asutoshd, cang, bvanassche, grant.jung, sc.suh, hy50.seo, sh425.lee Cc: Kiwoong Kim For Exynos, only flush during hibern8 is enough for sustaining performance and I think that there is a possiblity of raising current thanks to an increase of internal operations for manual flush. Signed-off-by: Kiwoong Kim <kwmad.kim@samsung.com> Reviewed-by: Avri Altman <avri.altman@wdc.com> --- drivers/scsi/ufs/ufs-exynos.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/scsi/ufs/ufs-exynos.c b/drivers/scsi/ufs/ufs-exynos.c index 3c0a50b..defbcc2 100644 --- a/drivers/scsi/ufs/ufs-exynos.c +++ b/drivers/scsi/ufs/ufs-exynos.c @@ -1289,7 +1289,8 @@ struct exynos_ufs_drv_data exynos_ufs_drvs = { UFSHCI_QUIRK_BROKEN_REQ_LIST_CLR | UFSHCI_QUIRK_BROKEN_HCE | UFSHCI_QUIRK_SKIP_RESET_INTR_AGGR | - UFSHCD_QUIRK_BROKEN_OCS_FATAL_ERROR, + UFSHCD_QUIRK_BROKEN_OCS_FATAL_ERROR | + UFSHCI_QUIRK_SKIP_MANUAL_WB_FLUSH_CTRL, .opts = EXYNOS_UFS_OPT_HAS_APB_CLK_CTRL | EXYNOS_UFS_OPT_BROKEN_AUTO_CLK_CTRL | EXYNOS_UFS_OPT_BROKEN_RX_SEL_IDX | -- 2.7.4 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH v3 0/2] ufs: introduce skipping manual flush for wb 2020-08-25 1:43 ` [PATCH v3 0/2] ufs: introduce skipping manual flush for wb Kiwoong Kim [not found] ` <CGME20200825015202epcas2p4d323c37ea40790ad27034b2f84855bf5@epcas2p4.samsung.com> [not found] ` <CGME20200825015203epcas2p2dd85feeebcd455e2eecf53a7f077760a@epcas2p2.samsung.com> @ 2020-09-09 2:17 ` Martin K. Petersen 2 siblings, 0 replies; 5+ messages in thread From: Martin K. Petersen @ 2020-09-09 2:17 UTC (permalink / raw) To: alim.akhtar, asutoshd, jejb, cang, hy50.seo, bvanassche, linux-scsi, grant.jung, sh425.lee, Kiwoong Kim, sc.suh, avri.altman, beanhuo Cc: Martin K . Petersen On Tue, 25 Aug 2020 10:43:14 +0900, Kiwoong Kim wrote: > v1 -> v2: enable the quirk in exynos > v2 -> v3: modify some commit messages > > We have two knobs to flush for write booster, i.e. > fWriteBoosterBufferFlushDuringHibernate and fWriteBoosterBufferFlushEn. > However, many product makers uses only fWriteBoosterBufferFlushDuringHibernate, > because this can reportedly cover most scenarios and > there have been some reports that flush by fWriteBoosterBufferFlushEn > could lead to raise power consumption thanks to unexpected internal > operations. So we need a way to enable or disable fWriteBoosterEn > operations. For those case, this quirk will allow to avoid manual flush > > [...] Applied to 5.10/scsi-queue, thanks! [1/2] scsi: ufs: Introduce skipping manual flush for Write Booster https://git.kernel.org/mkp/scsi/c/5df6f2def50c [2/2] scsi: ufs: exynos: Enable UFSHCI_QUIRK_SKIP_MANUAL_WB_FLUSH_CTRL https://git.kernel.org/mkp/scsi/c/7973b8ac669e -- Martin K. Petersen Oracle Linux Engineering ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2020-09-09 2:18 UTC | newest] Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- [not found] <CGME20200825015200epcas2p2aef1427e960c86e7da08dc4608f20e26@epcas2p2.samsung.com> 2020-08-25 1:43 ` [PATCH v3 0/2] ufs: introduce skipping manual flush for wb Kiwoong Kim [not found] ` <CGME20200825015202epcas2p4d323c37ea40790ad27034b2f84855bf5@epcas2p4.samsung.com> 2020-08-25 1:43 ` [PATCH v3 1/2] " Kiwoong Kim 2020-08-25 7:29 ` Avri Altman [not found] ` <CGME20200825015203epcas2p2dd85feeebcd455e2eecf53a7f077760a@epcas2p2.samsung.com> 2020-08-25 1:43 ` [PATCH v3 2/2] ufs: exynos: enable UFSHCI_QUIRK_SKIP_MANUAL_WB_FLUSH_CTRL Kiwoong Kim 2020-09-09 2:17 ` [PATCH v3 0/2] ufs: introduce skipping manual flush for wb Martin K. Petersen
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).