The introduction of ufshcd_dme_configure_adapt() refactored out
duplication from the Mediatek and Qualcomm drivers.
Both these implementations had the logic of:
gear_tx == UFS_HS_G4 => PA_INITIAL_ADAPT
gear_tx != UFS_HS_G4 => PA_NO_ADAPT
but now both implementations pass PA_INITIAL_ADAPT as "adapt_val" and if
gear_tx is not UFS_HS_G4 that is replaced with PA_INITIAL_ADAPT. In
other words, it's PA_INITIAL_ADAPT in both above cases.
The result is that e.g. Qualcomm SM8150 has no longer functional UFS, so
adjust the logic to match the previous implementation.
Fixes: fc85a74e28fe ("scsi: ufs: Refactor ADAPT configuration function")
Signed-off-by: Bjorn Andersson <[email protected]>
---
drivers/scsi/ufs/ufshcd.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c
index 52e077aa3efe..13281c74cb4f 100644
--- a/drivers/scsi/ufs/ufshcd.c
+++ b/drivers/scsi/ufs/ufshcd.c
@@ -3618,7 +3618,7 @@ int ufshcd_dme_configure_adapt(struct ufs_hba *hba,
int ret;
if (agreed_gear != UFS_HS_G4)
- adapt_val = PA_INITIAL_ADAPT;
+ adapt_val = PA_NO_ADAPT;
ret = ufshcd_dme_set(hba,
UIC_ARG_MIB(PA_TXHSADAPTTYPE),
--
2.28.0
On Fri, 2020-11-20 at 20:48 -0800, Bjorn Andersson wrote:
> The introduction of ufshcd_dme_configure_adapt() refactored out
> duplication from the Mediatek and Qualcomm drivers.
>
> Both these implementations had the logic of:
> gear_tx == UFS_HS_G4 => PA_INITIAL_ADAPT
> gear_tx != UFS_HS_G4 => PA_NO_ADAPT
>
> but now both implementations pass PA_INITIAL_ADAPT as "adapt_val" and if
> gear_tx is not UFS_HS_G4 that is replaced with PA_INITIAL_ADAPT. In
> other words, it's PA_INITIAL_ADAPT in both above cases.
>
> The result is that e.g. Qualcomm SM8150 has no longer functional UFS, so
> adjust the logic to match the previous implementation.
>
> Fixes: fc85a74e28fe ("scsi: ufs: Refactor ADAPT configuration function")
> Signed-off-by: Bjorn Andersson <[email protected]>
Thanks for the fix.
Reviewed-by: Stanley Chu <[email protected]>
On 2020-11-21 12:48, Bjorn Andersson wrote:
> The introduction of ufshcd_dme_configure_adapt() refactored out
> duplication from the Mediatek and Qualcomm drivers.
>
> Both these implementations had the logic of:
> gear_tx == UFS_HS_G4 => PA_INITIAL_ADAPT
> gear_tx != UFS_HS_G4 => PA_NO_ADAPT
>
> but now both implementations pass PA_INITIAL_ADAPT as "adapt_val" and
> if
> gear_tx is not UFS_HS_G4 that is replaced with PA_INITIAL_ADAPT. In
> other words, it's PA_INITIAL_ADAPT in both above cases.
>
> The result is that e.g. Qualcomm SM8150 has no longer functional UFS,
> so
> adjust the logic to match the previous implementation.
>
> Fixes: fc85a74e28fe ("scsi: ufs: Refactor ADAPT configuration
> function")
> Signed-off-by: Bjorn Andersson <[email protected]>
Reviewed-by: Can Guo <[email protected]>
> ---
> drivers/scsi/ufs/ufshcd.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c
> index 52e077aa3efe..13281c74cb4f 100644
> --- a/drivers/scsi/ufs/ufshcd.c
> +++ b/drivers/scsi/ufs/ufshcd.c
> @@ -3618,7 +3618,7 @@ int ufshcd_dme_configure_adapt(struct ufs_hba
> *hba,
> int ret;
>
> if (agreed_gear != UFS_HS_G4)
> - adapt_val = PA_INITIAL_ADAPT;
> + adapt_val = PA_NO_ADAPT;
>
> ret = ufshcd_dme_set(hba,
> UIC_ARG_MIB(PA_TXHSADAPTTYPE),
Bjorn,
> The introduction of ufshcd_dme_configure_adapt() refactored out
> duplication from the Mediatek and Qualcomm drivers.
Applied to 5.11/scsi-staging, thanks!
--
Martin K. Petersen Oracle Linux Engineering
On Fri, 20 Nov 2020 20:48:10 -0800, Bjorn Andersson wrote:
> The introduction of ufshcd_dme_configure_adapt() refactored out
> duplication from the Mediatek and Qualcomm drivers.
>
> Both these implementations had the logic of:
> gear_tx == UFS_HS_G4 => PA_INITIAL_ADAPT
> gear_tx != UFS_HS_G4 => PA_NO_ADAPT
>
> [...]
Applied to 5.11/scsi-queue, thanks!
[1/1] scsi: ufs: Adjust logic in common ADAPT helper
https://git.kernel.org/mkp/scsi/c/66df79ccbc2f
--
Martin K. Petersen Oracle Linux Engineering