Added constants for advertising 100BT1 and 1000BT1 in register BASE-T1
auto-negotiation advertisement register [31:16] (Register 7.515)
Signed-off-by: Dimitri Fedrau <[email protected]>
---
include/uapi/linux/mdio.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/include/uapi/linux/mdio.h b/include/uapi/linux/mdio.h
index d03863da180e..020ccc810d23 100644
--- a/include/uapi/linux/mdio.h
+++ b/include/uapi/linux/mdio.h
@@ -348,6 +348,8 @@
/* BASE-T1 auto-negotiation advertisement register [31:16] */
#define MDIO_AN_T1_ADV_M_B10L 0x4000 /* device is compatible with 10BASE-T1L */
+#define MDIO_AN_T1_ADV_M_1000BT1 0x0080 /* advertise 1000BASE-T1 */
+#define MDIO_AN_T1_ADV_M_100BT1 0x0020 /* advertise 100BASE-T1 */
#define MDIO_AN_T1_ADV_M_MST 0x0010 /* advertise master preference */
/* BASE-T1 auto-negotiation advertisement register [47:32] */
--
2.39.2
Extend helper function linkmode_adv_to_mii_t1_adv_m_t to support
100BT1 and 1000BT1 linkmode advertisements.
Signed-off-by: Dimitri Fedrau <[email protected]>
---
include/linux/mdio.h | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/include/linux/mdio.h b/include/linux/mdio.h
index 007fd9c3e4b6..322c7a5092e4 100644
--- a/include/linux/mdio.h
+++ b/include/linux/mdio.h
@@ -408,6 +408,10 @@ static inline u32 linkmode_adv_to_mii_t1_adv_m_t(unsigned long *advertising)
if (linkmode_test_bit(ETHTOOL_LINK_MODE_10baseT1L_Full_BIT, advertising))
result |= MDIO_AN_T1_ADV_M_B10L;
+ if (linkmode_test_bit(ETHTOOL_LINK_MODE_100baseT1_Full_BIT, advertising))
+ result |= MDIO_AN_T1_ADV_M_100BT1;
+ if (linkmode_test_bit(ETHTOOL_LINK_MODE_1000baseT1_Full_BIT, advertising))
+ result |= MDIO_AN_T1_ADV_M_1000BT1;
return result;
}
--
2.39.2
On Mon, Dec 18, 2023 at 11:18:13PM +0100, Dimitri Fedrau wrote:
> Added constants for advertising 100BT1 and 1000BT1 in register BASE-T1
> auto-negotiation advertisement register [31:16] (Register 7.515)
Hi Dimitri
These two patches look good, but...
Please take a read of:
https://www.kernel.org/doc/html/latest/process/maintainer-netdev.html#netdev-faq
Also, its normal to include a user for new APIs. Do you have a driver
which will make use of this to advertisement modes?
Thanks
Andrew
Am Tue, Dec 19, 2023 at 12:45:01AM +0100 schrieb Andrew Lunn:
> On Mon, Dec 18, 2023 at 11:18:13PM +0100, Dimitri Fedrau wrote:
> > Added constants for advertising 100BT1 and 1000BT1 in register BASE-T1
> > auto-negotiation advertisement register [31:16] (Register 7.515)
>
> Hi Dimitri
>
> These two patches look good, but...
>
> Please take a read of:
>
> https://www.kernel.org/doc/html/latest/process/maintainer-netdev.html#netdev-faq
>
I probably should have sent them with subject-prefix "PATCH net-next" !?
> Also, its normal to include a user for new APIs. Do you have a driver
> which will make use of this to advertisement modes?
>
Yes, I'm currently trying to push a driver for the Marvell88Q2220
100BASE-T1/1000BASE-T1 PHY. It supports autonegotiation and with an
additional patch to function genphy_c45_baset1_an_config_aneg which is
not part of the series it is possible to set the advertised speed.
I probably should send all patches as a series including the driver ?
> Thanks
> Andrew
Best regards,
Dimitri
> Yes, I'm currently trying to push a driver for the Marvell88Q2220
> 100BASE-T1/1000BASE-T1 PHY. It supports autonegotiation and with an
> additional patch to function genphy_c45_baset1_an_config_aneg which is
> not part of the series it is possible to set the advertised speed.
> I probably should send all patches as a series including the driver ?
Yes, please do send it all together as one patchset.
Andrew