diff mbox series

[v4,2/3] scsi: ufs: Allow platform vendors to set rtt

Message ID 20240516055124.24490-3-avri.altman@wdc.com (mailing list archive)
State Superseded
Headers show
Series scsi: ufs: Allow RTT negotiation | expand

Commit Message

Avri Altman May 16, 2024, 5:51 a.m. UTC
Allow platform vendors to take precedence having their own rtt
negotiation mechanism.  This makes sense because the host controller's
nortt characteristic may defer among vendors.

Signed-off-by: Avri Altman <avri.altman@wdc.com>
---
 drivers/ufs/core/ufshcd.c | 5 ++++-
 include/ufs/ufshcd.h      | 2 ++
 2 files changed, 6 insertions(+), 1 deletion(-)

Comments

Bart Van Assche May 16, 2024, 2:12 p.m. UTC | #1
On 5/15/24 23:51, Avri Altman wrote:
> Allow platform vendors to take precedence having their own rtt
> negotiation mechanism.  This makes sense because the host controller's
> nortt characteristic may defer among vendors.

defer -> vary?

> +	void	(*rtt_set)(struct ufs_hba *hba, u8 *desc_buf);

Please change "rtt_set" into "set_rtt" such that the word order matches
the regular word order in the English language.

Thanks,

Bart.
Avri Altman May 16, 2024, 3:23 p.m. UTC | #2
> 
> On 5/15/24 23:51, Avri Altman wrote:
> > Allow platform vendors to take precedence having their own rtt
> > negotiation mechanism.  This makes sense because the host controller's
> > nortt characteristic may defer among vendors.
> 
> defer -> vary?
> 
> > +     void    (*rtt_set)(struct ufs_hba *hba, u8 *desc_buf);
> 
> Please change "rtt_set" into "set_rtt" such that the word order matches
> the regular word order in the English language.
Done.

Thanks,
Avri

> 
> Thanks,
> 
> Bart.
diff mbox series

Patch

diff --git a/drivers/ufs/core/ufshcd.c b/drivers/ufs/core/ufshcd.c
index c472bfdf071e..0407d1064e74 100644
--- a/drivers/ufs/core/ufshcd.c
+++ b/drivers/ufs/core/ufshcd.c
@@ -8312,7 +8312,10 @@  static int ufs_get_device_desc(struct ufs_hba *hba)
 	if (hba->ext_iid_sup)
 		ufshcd_ext_iid_probe(hba, desc_buf);
 
-	ufshcd_rtt_set(hba, desc_buf);
+	if (hba->vops && hba->vops->rtt_set)
+		hba->vops->rtt_set(hba, desc_buf);
+	else
+		ufshcd_rtt_set(hba, desc_buf);
 
 	/*
 	 * ufshcd_read_string_desc returns size of the string
diff --git a/include/ufs/ufshcd.h b/include/ufs/ufshcd.h
index d74bd2d67b06..9237ea65bd26 100644
--- a/include/ufs/ufshcd.h
+++ b/include/ufs/ufshcd.h
@@ -329,6 +329,7 @@  struct ufs_pwr_mode_info {
  * @get_outstanding_cqs: called to get outstanding completion queues
  * @config_esi: called to config Event Specific Interrupt
  * @config_scsi_dev: called to configure SCSI device parameters
+ * @rtt_set: negotiate rtt
  */
 struct ufs_hba_variant_ops {
 	const char *name;
@@ -374,6 +375,7 @@  struct ufs_hba_variant_ops {
 	int	(*get_outstanding_cqs)(struct ufs_hba *hba,
 				       unsigned long *ocqs);
 	int	(*config_esi)(struct ufs_hba *hba);
+	void	(*rtt_set)(struct ufs_hba *hba, u8 *desc_buf);
 };
 
 /* clock gating state  */