mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-27 01:11:14 +00:00
d40756563c
Let's pick a bunch of useful phylink changes which allow us to keep drivers in sync with mainline Linux. Signed-off-by: Daniel Golle <daniel@makrotopia.org>
56 lines
1.9 KiB
Diff
56 lines
1.9 KiB
Diff
From 459fd2f11204c962e3153020f4f56748e0e10afb Mon Sep 17 00:00:00 2001
|
|
From: "Russell King (Oracle)" <rmk+kernel@armlinux.org.uk>
|
|
Date: Tue, 21 Mar 2023 15:58:49 +0000
|
|
Subject: [PATCH] net: pcs: xpcs: use Autoneg bit rather than an_enabled
|
|
|
|
The Autoneg bit in the advertising bitmap and state->an_enabled are
|
|
always identical. Thus, we will be removing state->an_enabled.
|
|
|
|
Use the Autoneg bit in the advertising bitmap to indicate whether
|
|
autonegotiation should be used, rather than using the an_enabled
|
|
member which will be going away.
|
|
|
|
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
|
|
Reviewed-by: Simon Horman <simon.horman@corigine.com>
|
|
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
|
---
|
|
drivers/net/pcs/pcs-xpcs.c | 10 +++++++---
|
|
1 file changed, 7 insertions(+), 3 deletions(-)
|
|
|
|
--- a/drivers/net/pcs/pcs-xpcs.c
|
|
+++ b/drivers/net/pcs/pcs-xpcs.c
|
|
@@ -931,6 +931,7 @@ static int xpcs_get_state_c73(struct dw_
|
|
struct phylink_link_state *state,
|
|
const struct xpcs_compat *compat)
|
|
{
|
|
+ bool an_enabled;
|
|
int ret;
|
|
|
|
/* Link needs to be read first ... */
|
|
@@ -948,11 +949,13 @@ static int xpcs_get_state_c73(struct dw_
|
|
return xpcs_do_config(xpcs, state->interface, MLO_AN_INBAND, NULL);
|
|
}
|
|
|
|
- if (state->an_enabled && xpcs_aneg_done_c73(xpcs, state, compat)) {
|
|
+ an_enabled = linkmode_test_bit(ETHTOOL_LINK_MODE_Autoneg_BIT,
|
|
+ state->advertising);
|
|
+ if (an_enabled && xpcs_aneg_done_c73(xpcs, state, compat)) {
|
|
state->an_complete = true;
|
|
xpcs_read_lpa_c73(xpcs, state);
|
|
xpcs_resolve_lpa_c73(xpcs, state);
|
|
- } else if (state->an_enabled) {
|
|
+ } else if (an_enabled) {
|
|
state->link = 0;
|
|
} else if (state->link) {
|
|
xpcs_resolve_pma(xpcs, state);
|
|
@@ -1007,7 +1010,8 @@ static int xpcs_get_state_c37_1000basex(
|
|
{
|
|
int lpa, bmsr;
|
|
|
|
- if (state->an_enabled) {
|
|
+ if (linkmode_test_bit(ETHTOOL_LINK_MODE_Autoneg_BIT,
|
|
+ state->advertising)) {
|
|
/* Reset link state */
|
|
state->link = false;
|
|
|