]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
net: phy: Add MDIO_PMA_CTRL1_SPEED for 2.5G and 5G to reflect PMA values
authorAlexander Duyck <alexanderduyck@fb.com>
Fri, 21 Nov 2025 16:39:55 +0000 (08:39 -0800)
committerPaolo Abeni <pabeni@redhat.com>
Thu, 27 Nov 2025 09:41:30 +0000 (10:41 +0100)
The 2.5G and 5G values are not consistent between the PCS CTRL1 and PMA
CTRL1 values. In order to avoid confusion between the two I am updating the
values to include "PMA" in the name similar to values used in similar
places.

To avoid breaking UAPI I have retained the original macros and just defined
them as the new PMA based defines.

Signed-off-by: Alexander Duyck <alexanderduyck@fb.com>
Link: https://patch.msgid.link/176374319569.959489.6610469879021800710.stgit@ahduyck-xeon-server.home.arpa
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
drivers/net/phy/phy-c45.c
include/uapi/linux/mdio.h

index e8e5be4684ab976062b4c5a6ba81e91013bae577..f5e23b53994f5b4336c011c9bc439843f3084a3a 100644 (file)
@@ -148,12 +148,12 @@ int genphy_c45_pma_setup_forced(struct phy_device *phydev)
                ctrl2 |= MDIO_PMA_CTRL2_1000BT;
                break;
        case SPEED_2500:
-               ctrl1 |= MDIO_CTRL1_SPEED2_5G;
+               ctrl1 |= MDIO_PMA_CTRL1_SPEED2_5G;
                /* Assume 2.5Gbase-T */
                ctrl2 |= MDIO_PMA_CTRL2_2_5GBT;
                break;
        case SPEED_5000:
-               ctrl1 |= MDIO_CTRL1_SPEED5G;
+               ctrl1 |= MDIO_PMA_CTRL1_SPEED5G;
                /* Assume 5Gbase-T */
                ctrl2 |= MDIO_PMA_CTRL2_5GBT;
                break;
@@ -618,10 +618,10 @@ int genphy_c45_read_pma(struct phy_device *phydev)
        case MDIO_PMA_CTRL1_SPEED1000:
                phydev->speed = SPEED_1000;
                break;
-       case MDIO_CTRL1_SPEED2_5G:
+       case MDIO_PMA_CTRL1_SPEED2_5G:
                phydev->speed = SPEED_2500;
                break;
-       case MDIO_CTRL1_SPEED5G:
+       case MDIO_PMA_CTRL1_SPEED5G:
                phydev->speed = SPEED_5000;
                break;
        case MDIO_CTRL1_SPEED10G:
index 6975f182b22c603c09632613b3f5298642dbe2a6..9ee6eeae64b8b236db8f8d7560406eaabc990b77 100644 (file)
 #define MDIO_CTRL1_SPEED10G            (MDIO_CTRL1_SPEEDSELEXT | 0x00)
 /* 10PASS-TS/2BASE-TL */
 #define MDIO_CTRL1_SPEED10P2B          (MDIO_CTRL1_SPEEDSELEXT | 0x04)
+/* Note: the MDIO_CTRL1_SPEED_XXX values for everything past 10PASS-TS/2BASE-TL
+ * do not match between the PCS and PMA values. Any additions past this point
+ * should be PMA or PCS specific. The following 2 defines are workarounds for
+ * values added before this was caught. They should be considered deprecated.
+ */
+#define MDIO_CTRL1_SPEED2_5G           MDIO_PMA_CTRL1_SPEED2_5G
+#define MDIO_CTRL1_SPEED5G             MDIO_PMA_CTRL1_SPEED5G
 /* 2.5 Gb/s */
-#define MDIO_CTRL1_SPEED2_5G           (MDIO_CTRL1_SPEEDSELEXT | 0x18)
+#define MDIO_PMA_CTRL1_SPEED2_5G       (MDIO_CTRL1_SPEEDSELEXT | 0x18)
 /* 5 Gb/s */
-#define MDIO_CTRL1_SPEED5G             (MDIO_CTRL1_SPEEDSELEXT | 0x1c)
+#define MDIO_PMA_CTRL1_SPEED5G         (MDIO_CTRL1_SPEEDSELEXT | 0x1c)
+
 
 /* Status register 1. */
 #define MDIO_STAT1_LPOWERABLE          0x0002  /* Low-power ability */