]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
scsi: ufs: make ufshcd_get_lists_status() register operation obvious
authorTomohiro Kusumi <tkusumi@tuxera.com>
Wed, 26 Apr 2017 17:28:58 +0000 (20:28 +0300)
committerMartin K. Petersen <martin.petersen@oracle.com>
Wed, 26 Apr 2017 22:14:18 +0000 (18:14 -0400)
It could be just cmp 0xe instead of >>1 and cmp 0x7, with readable code.

Signed-off-by: Tomohiro Kusumi <tkusumi@tuxera.com>
Reviewed-by: Subhash Jadavani <subhashj@codeaurora.org>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/ufs/ufshcd.c
drivers/scsi/ufs/ufshci.h

index 68d7d6fc94589c3816189247d4f3b748ff191301..5793cd7ad3718d889b1566358f37ce1500c3d07b 100644 (file)
@@ -673,16 +673,7 @@ static inline void ufshcd_outstanding_req_clear(struct ufs_hba *hba, int tag)
  */
 static inline int ufshcd_get_lists_status(u32 reg)
 {
-       /*
-        * The mask 0xFF is for the following HCS register bits
-        * Bit          Description
-        *  0           Device Present
-        *  1           UTRLRDY
-        *  2           UTMRLRDY
-        *  3           UCRDY
-        * 4-7          reserved
-        */
-       return ((reg & 0xFF) >> 1) ^ 0x07;
+       return !((reg & UFSHCD_STATUS_READY) == UFSHCD_STATUS_READY);
 }
 
 /**
index 88acfd3e21af3a7de3e5fefe2eda919e07abd226..f60145d4a66e40e69f78120ac31ca47bc85ef312 100644 (file)
@@ -160,6 +160,10 @@ enum {
 #define DEVICE_ERROR_INDICATOR                 UFS_BIT(5)
 #define UIC_POWER_MODE_CHANGE_REQ_STATUS_MASK  UFS_MASK(0x7, 8)
 
+#define UFSHCD_STATUS_READY    (UTP_TRANSFER_REQ_LIST_READY |\
+                               UTP_TASK_REQ_LIST_READY |\
+                               UIC_COMMAND_READY)
+
 enum {
        PWR_OK          = 0x0,
        PWR_LOCAL       = 0x01,