Messages in this thread Patch in this message | | | From | Sean Anderson <> | Subject | [PATCH v2 09/11] [RFC] net: phylink: Add support for CRS-based rate adaptation | Date | Tue, 19 Jul 2022 19:49:59 -0400 |
| |
This adds support for CRS-based rate adaptation, such as the type used for 10PASS-TS and 2BASE-TL. As these link modes are not supported by any in-tree phy, this patch is marked as RFC. It serves chiefly to illustrate the approach to adding support for another rate adaptation type.
Signed-off-by: Sean Anderson <sean.anderson@seco.com> ---
(no changes since v1)
drivers/net/phy/phylink.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-)
diff --git a/drivers/net/phy/phylink.c b/drivers/net/phy/phylink.c index f61040c93f3c..75b4994d68c8 100644 --- a/drivers/net/phy/phylink.c +++ b/drivers/net/phy/phylink.c @@ -553,9 +553,18 @@ unsigned long phylink_get_capabilities(phy_interface_t interface, adapted_caps &= ~(MAC_1000HD | MAC_100HD | MAC_10HD); break; } - case RATE_ADAPT_CRS: - /* TODO */ + case RATE_ADAPT_CRS: { + /* The MAC must support half duplex at the interface speed */ + if (state.speed == SPEED_1000) { + if (mac_capabilities & MAC_1000HD) + adapted_caps = MAC_100 | MAC_10; + } else if (state.speed == SPEED_1000) { + if (mac_capabilities & MAC_100HD) + adapted_caps = MAC_10; + } + adapted_caps &= mac_capabilities; break; + } case RATE_ADAPT_OPEN_LOOP: /* TODO */ break; -- 2.35.1.1320.gc452695387.dirty
| |