net: phy: at803x: use GENMASK() for speed status
authorLuo Jie <luoj@codeaurora.org>
Sun, 24 Oct 2021 08:27:28 +0000 (16:27 +0800)
committerDavid S. Miller <davem@davemloft.net>
Mon, 25 Oct 2021 13:04:18 +0000 (14:04 +0100)
Use GENMASK() for the current speed value.

Signed-off-by: Luo Jie <luoj@codeaurora.org>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/phy/at803x.c

index 1363f12..3465f2b 100644 (file)
 #define AT803X_SFC_DISABLE_JABBER              BIT(0)
 
 #define AT803X_SPECIFIC_STATUS                 0x11
-#define AT803X_SS_SPEED_MASK                   (3 << 14)
-#define AT803X_SS_SPEED_1000                   (2 << 14)
-#define AT803X_SS_SPEED_100                    (1 << 14)
-#define AT803X_SS_SPEED_10                     (0 << 14)
+#define AT803X_SS_SPEED_MASK                   GENMASK(15, 14)
+#define AT803X_SS_SPEED_1000                   2
+#define AT803X_SS_SPEED_100                    1
+#define AT803X_SS_SPEED_10                     0
 #define AT803X_SS_DUPLEX                       BIT(13)
 #define AT803X_SS_SPEED_DUPLEX_RESOLVED                BIT(11)
 #define AT803X_SS_MDIX                         BIT(6)
@@ -994,7 +994,7 @@ static int at803x_read_status(struct phy_device *phydev)
                if (sfc < 0)
                        return sfc;
 
-               switch (ss & AT803X_SS_SPEED_MASK) {
+               switch (FIELD_GET(AT803X_SS_SPEED_MASK, ss)) {
                case AT803X_SS_SPEED_10:
                        phydev->speed = SPEED_10;
                        break;