From: Zeng Zhaoxiu <[email protected]>

Signed-off-by: Zeng Zhaoxiu <[email protected]>
---
 drivers/scsi/isci/phy.c | 18 ++++--------------
 1 file changed, 4 insertions(+), 14 deletions(-)

diff --git a/drivers/scsi/isci/phy.c b/drivers/scsi/isci/phy.c
index cb87b2e..0b87ff4 100644
--- a/drivers/scsi/isci/phy.c
+++ b/drivers/scsi/isci/phy.c
@@ -122,8 +122,6 @@ sci_phy_link_layer_initialization(struct isci_phy *iphy,
        int phy_idx = iphy->phy_index;
        struct sci_phy_cap phy_cap;
        u32 phy_configuration;
-       u32 parity_check = 0;
-       u32 parity_count = 0;
        u32 llctl, link_rate;
        u32 clksm_value = 0;
        u32 sp_timeouts = 0;
@@ -223,19 +221,11 @@ sci_phy_link_layer_initialization(struct isci_phy *iphy,
        }
 
        /* The SAS specification indicates that the phy_capabilities that
-        * are transmitted shall have an even parity.  Calculate the parity.
+        * are transmitted shall have an even parity. If parity indicates
+        * there are an odd number of bits set, then set the parity bit
+        * to 1 in the phy capabilities.
         */
-       parity_check = phy_cap.all;
-       while (parity_check != 0) {
-               if (parity_check & 0x1)
-                       parity_count++;
-               parity_check >>= 1;
-       }
-
-       /* If parity indicates there are an odd number of bits set, then
-        * set the parity bit to 1 in the phy capabilities.
-        */
-       if ((parity_count % 2) != 0)
+       if (parity32(phy_cap.all))
                phy_cap.parity = 1;
 
        writel(phy_cap.all, &llr->phy_capabilities);
-- 
2.5.5

Reply via email to