scsi: ufs: fix wrong command type of UTRD for UFSHCI v2.1
authorkehuanlin <chgokhl@gmail.com>
Wed, 6 Sep 2017 09:58:39 +0000 (17:58 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 27 Mar 2019 05:13:55 +0000 (14:13 +0900)
commit 83dc7e3dea76b77b6bcc289eb86c5b5c145e8dff upstream.

Since the command type of UTRD in UFS 2.1 specification is the same with
UFS 2.0. And it assumes the future UFS specification will follow the
same definition.

Signed-off-by: kehuanlin <kehuanlin@pinecone.net>
Reviewed-by: Subhash Jadavani <subhashj@codeaurora.org>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/scsi/ufs/ufshcd.c

index 66540491839ea1d09b76e52b34ca54e7d5739ba1..581571de24614df97fdb2ed959af02576f8b63ef 100644 (file)
@@ -2195,10 +2195,11 @@ static int ufshcd_comp_devman_upiu(struct ufs_hba *hba, struct ufshcd_lrb *lrbp)
        u32 upiu_flags;
        int ret = 0;
 
-       if (hba->ufs_version == UFSHCI_VERSION_20)
-               lrbp->command_type = UTP_CMD_TYPE_UFS_STORAGE;
-       else
+       if ((hba->ufs_version == UFSHCI_VERSION_10) ||
+           (hba->ufs_version == UFSHCI_VERSION_11))
                lrbp->command_type = UTP_CMD_TYPE_DEV_MANAGE;
+       else
+               lrbp->command_type = UTP_CMD_TYPE_UFS_STORAGE;
 
        ufshcd_prepare_req_desc_hdr(lrbp, &upiu_flags, DMA_NONE);
        if (hba->dev_cmd.type == DEV_CMD_TYPE_QUERY)
@@ -2222,10 +2223,11 @@ static int ufshcd_comp_scsi_upiu(struct ufs_hba *hba, struct ufshcd_lrb *lrbp)
        u32 upiu_flags;
        int ret = 0;
 
-       if (hba->ufs_version == UFSHCI_VERSION_20)
-               lrbp->command_type = UTP_CMD_TYPE_UFS_STORAGE;
-       else
+       if ((hba->ufs_version == UFSHCI_VERSION_10) ||
+           (hba->ufs_version == UFSHCI_VERSION_11))
                lrbp->command_type = UTP_CMD_TYPE_SCSI;
+       else
+               lrbp->command_type = UTP_CMD_TYPE_UFS_STORAGE;
 
        if (likely(lrbp->cmd)) {
                ufshcd_prepare_req_desc_hdr(lrbp, &upiu_flags,