summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRussell King (Oracle) <rmk+kernel@armlinux.org.uk>2021-11-27 16:28:48 +0000
committerRussell King (Oracle) <rmk+kernel@armlinux.org.uk>2024-04-16 16:51:14 +0100
commit3fbe8a68eb009866166574820b3e05c5ad12b5e6 (patch)
tree0a703dec2879a30941f60a3019a18871a1f46924
parent2d84339bad1a19ac4b8c2f617e2e964d28fa2d35 (diff)
net: phylink: pass mode into pcs_validate()
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
-rw-r--r--drivers/net/phy/phylink.c3
-rw-r--r--include/linux/phylink.h8
2 files changed, 7 insertions, 4 deletions
diff --git a/drivers/net/phy/phylink.c b/drivers/net/phy/phylink.c
index 3f0ed915cc3d..182f2fa95707 100644
--- a/drivers/net/phy/phylink.c
+++ b/drivers/net/phy/phylink.c
@@ -681,7 +681,8 @@ static int phylink_validate_mac_and_pcs(struct phylink *pl, unsigned int mode,
/* Validate the link parameters with the PCS */
if (pcs->ops->pcs_validate) {
- ret = pcs->ops->pcs_validate(pcs, supported, state);
+ ret = pcs->ops->pcs_validate(pcs, mode, supported,
+ state);
if (ret < 0 || phylink_is_empty_linkmode(supported))
return -EINVAL;
diff --git a/include/linux/phylink.h b/include/linux/phylink.h
index 40324cdb4353..8664b3442a3a 100644
--- a/include/linux/phylink.h
+++ b/include/linux/phylink.h
@@ -472,7 +472,8 @@ struct phylink_pcs {
* (where necessary).
*/
struct phylink_pcs_ops {
- int (*pcs_validate)(struct phylink_pcs *pcs, unsigned long *supported,
+ int (*pcs_validate)(struct phylink_pcs *pcs, unsigned int mode,
+ unsigned long *supported,
const struct phylink_link_state *state);
unsigned int (*pcs_query_inband)(struct phylink_pcs *pcs,
phy_interface_t interface);
@@ -497,6 +498,7 @@ struct phylink_pcs_ops {
/**
* pcs_validate() - validate the link configuration.
* @pcs: a pointer to a &struct phylink_pcs.
+ * @mode: link autonegotiation mode
* @supported: ethtool bitmask for supported link modes.
* @state: a const pointer to a &struct phylink_link_state.
*
@@ -508,8 +510,8 @@ struct phylink_pcs_ops {
* Returns -EINVAL if the interface mode/autoneg mode is not supported.
* Returns non-zero positive if the link state can be supported.
*/
-int pcs_validate(struct phylink_pcs *pcs, unsigned long *supported,
- const struct phylink_link_state *state);
+int pcs_validate(struct phylink_pcs *pcs, unsigned int mode,
+ unsigned long *supported, struct phylink_link_state *state);
/**
* pcs_query_inband - query inband support for interface mode.