File tree Expand file tree Collapse file tree 4 files changed +10
-1
lines changed Expand file tree Collapse file tree 4 files changed +10
-1
lines changed Original file line number Diff line number Diff line change @@ -8131,6 +8131,8 @@ static void ufshcd_set_rtt(struct ufs_hba *hba)
8131
8131
struct ufs_dev_info * dev_info = & hba -> dev_info ;
8132
8132
u32 rtt = 0 ;
8133
8133
u32 dev_rtt = 0 ;
8134
+ int host_rtt_cap = hba -> vops && hba -> vops -> max_num_rtt ?
8135
+ hba -> vops -> max_num_rtt : hba -> nortt ;
8134
8136
8135
8137
/* RTT override makes sense only for UFS-4.0 and above */
8136
8138
if (dev_info -> wspecversion < 0x400 )
@@ -8146,7 +8148,8 @@ static void ufshcd_set_rtt(struct ufs_hba *hba)
8146
8148
if (dev_rtt != DEFAULT_MAX_NUM_RTT )
8147
8149
return ;
8148
8150
8149
- rtt = min_t (int , dev_info -> rtt_cap , hba -> nortt );
8151
+ rtt = min_t (int , dev_info -> rtt_cap , host_rtt_cap );
8152
+
8150
8153
if (rtt == dev_rtt )
8151
8154
return ;
8152
8155
Original file line number Diff line number Diff line change @@ -1785,6 +1785,7 @@ static int ufs_mtk_config_esi(struct ufs_hba *hba)
1785
1785
*/
1786
1786
static const struct ufs_hba_variant_ops ufs_hba_mtk_vops = {
1787
1787
.name = "mediatek.ufshci" ,
1788
+ .max_num_rtt = MTK_MAX_NUM_RTT ,
1788
1789
.init = ufs_mtk_init ,
1789
1790
.get_ufs_hci_version = ufs_mtk_get_ufs_hci_version ,
1790
1791
.setup_clocks = ufs_mtk_setup_clocks ,
Original file line number Diff line number Diff line change @@ -189,4 +189,7 @@ struct ufs_mtk_host {
189
189
/* MTK delay of autosuspend: 500 ms */
190
190
#define MTK_RPM_AUTOSUSPEND_DELAY_MS 500
191
191
192
+ /* MTK RTT support number */
193
+ #define MTK_MAX_NUM_RTT 2
194
+
192
195
#endif /* !_UFS_MEDIATEK_H */
Original file line number Diff line number Diff line change @@ -295,6 +295,7 @@ struct ufs_pwr_mode_info {
295
295
/**
296
296
* struct ufs_hba_variant_ops - variant specific callbacks
297
297
* @name: variant name
298
+ * @max_num_rtt: maximum RTT supported by the host
298
299
* @init: called when the driver is initialized
299
300
* @exit: called to cleanup everything done in init
300
301
* @get_ufs_hci_version: called to get UFS HCI version
@@ -332,6 +333,7 @@ struct ufs_pwr_mode_info {
332
333
*/
333
334
struct ufs_hba_variant_ops {
334
335
const char * name ;
336
+ int max_num_rtt ;
335
337
int (* init )(struct ufs_hba * );
336
338
void (* exit )(struct ufs_hba * );
337
339
u32 (* get_ufs_hci_version )(struct ufs_hba * );
You can’t perform that action at this time.
0 commit comments