phylink: API changes
Subsystems (5)
v2 cover phylink: API changes
Hi all,
This patch series contains two API changes to PHYLINK which will later be used by DSA to migrate to PHYLINK. Because these are API changes that impact other outstanding work (e.g: MVPP2) I would rather get them included sooner to minimize conflicts.
Thank you!
Changes in v2:
- added missing documentation to mac_link_{up,down} that the interface must be configured in mac_config()
- added Russell's, Andrew's and my tags
Florian Fainelli (1):
net: phy: phylink: Provide PHY interface to mac_link_{up,down}
Russell King (1):
sfp/phylink: move module EEPROM ethtool access into netdev core
ethtool
drivers/net/ethernet/marvell/mvneta.c | 22 +++------------------- drivers/net/phy/phylink.c | 32 +++----------------------------- drivers/net/phy/sfp-bus.c | 6 ++---- include/linux/netdevice.h | 3 +++ include/linux/phylink.h | 17 +++++++++++------ net/core/ethtool.c | 7 +++++++ 6 files changed, 29 insertions(+), 58 deletions(-)
Signature · 1 line
2.14.1
PATCH v2 1/2 net: phy: phylink: Provide PHY interface to mac_link_{up,down}
In preparation for having DSA transition entirely to PHYLINK, we need to pass a PHY interface type to the mac_link_{up,down} callbacks because we may have to make decisions on that (e.g: turn on/off RGMII interfaces etc.). We do not pass an entire phylink_link_state because not all parameters (pause, duplex etc.) are defined when the link is down, only link and interface are.
Update mvneta accordingly since it currently implements phylink_mac_ops.
--- drivers/net/ethernet/marvell/mvneta.c | 4 +++- drivers/net/phy/phylink.c | 4 +++- include/linux/phylink.h | 14 +++++++++++--- 3 files changed, 17 insertions(+), 5 deletions(-)
drivers/net/ethernet/marvell/mvneta.c +3 -1
@@ -3396,7 +3396,8 @@ static void mvneta_set_eee(struct mvneta_port *pp, bool enable)mvreg_write (pp,MVNETA_LPI_CTRL_1 , lpi_ctl1); } -static void mvneta_mac_link_down (struct net_device *ndev,unsigned int mode) +static void mvneta_mac_link_down (struct net_device *ndev,unsigned int mode, +phy_interface_t interface) {struct mvneta_port *pp =netdev_priv (ndev);u32 val;
@@ -3415,6 +3416,7 @@ static void mvneta_mac_link_down(struct net_device *ndev, unsigned int mode) }static void mvneta_mac_link_up (struct net_device *ndev,unsigned int mode, +phy_interface_t interface,struct phy_device *phy) {struct mvneta_port *pp =netdev_priv (ndev);
drivers/net/phy/phylink.c +3 -1
@@ -470,10 +470,12 @@ static void phylink_resolve(struct work_struct *w)if (link_state.link !=netif_carrier_ok (ndev)) {if (!link_state.link) {netif_carrier_off (ndev); - pl->ops->mac_link_down (ndev, pl->link_an_mode); + pl->ops->mac_link_down (ndev, pl->link_an_mode, + pl->phy_state.interface);netdev_info (ndev,"Link is Down\n" ); }else { pl->ops->mac_link_up (ndev, pl->link_an_mode, + pl->phy_state.interface, pl->phydev);netif_carrier_on (ndev);
include/linux/phylink.h +11 -3
@@ -73,8 +73,10 @@ struct phylink_mac_ops {void (*mac_config)(struct net_device *ndev,unsigned int mode,const struct phylink_link_state *state);void (*mac_an_restart)(struct net_device *ndev); -void (*mac_link_down)(struct net_device *ndev,unsigned int mode); +void (*mac_link_down)(struct net_device *ndev,unsigned int mode, +phy_interface_t interface);void (*mac_link_up)(struct net_device *ndev,unsigned int mode, +phy_interface_t interface,struct phy_device *phy); };
@@ -161,25 +163,31 @@ void mac_an_restart(struct net_device *ndev);* mac_link_down() - take the link down * @ndev: a pointer to a &struct net_device for the MAC. * @mode: link autonegotiation mode +* @interface: link &typedef phy_interface_t mode * * If @mode is not an in-band negotiation mode (as defined by * phylink_autoneg_inband()), force the link down and disable any -* Energy Efficient Ethernet MAC configuration. +* Energy Efficient Ethernet MAC configuration. Interface type +* selection must be done in mac_config(). */ -void mac_link_down (struct net_device *ndev,unsigned int mode); +void mac_link_down (struct net_device *ndev,unsigned int mode, +phy_interface_t interface);/** * mac_link_up() - allow the link to come up * @ndev: a pointer to a &struct net_device for the MAC. * @mode: link autonegotiation mode +* @interface: link &typedef phy_interface_t mode * @phy: any attached phy * * If @mode is not an in-band negotiation mode (as defined by * phylink_autoneg_inband()), allow the link to come up. If @phy * is non-%NULL, configure Energy Efficient Ethernet by calling * phy_init_eee() and perform appropriate MAC configuration for EEE. +* Interface type selection must be done in mac_config(). */ void mac_link_up (struct net_device *ndev,unsigned int mode, +phy_interface_t interface,struct phy_device *phy);#endif
Signature · 1 line
2.14.1
RE: [EXT] [PATCH net-next v2 1/2] net: phy: phylink: Provide PHY interface to mac_link_{up,down}
Hi Florian
Please keep CC Yelena Krivosheev <[email protected]>
for changes with drivers/net/ethernet/marvell/mvneta.c
Thanks
Yan Markman
Tel. 05-44732819
-----Original Message-----
From: Florian Fainelli [mailto:[email protected]]
Sent: Thursday, March 29, 2018 1:44 AM
To: [email protected]
Cc: Florian Fainelli <[email protected]>; Thomas Petazzoni <[email protected]>; Andrew Lunn <[email protected]>; David S. Miller <[email protected]>; Russell King <[email protected]>; open list <[email protected]>; Antoine Tenart <[email protected]>; Yan Markman <[email protected]>; Stefan Chulski <[email protected]>; Maxime Chevallier <[email protected]>; Miquel Raynal <[email protected]>; Marcin Wojtas <[email protected]>
Subject: [EXT] [PATCH net-next v2 1/2] net: phy: phylink: Provide PHY interface to mac_link_{up,down}
External Email
----------------------------------------------------------------------
In preparation for having DSA transition entirely to PHYLINK, we need to pass a PHY interface type to the mac_link_{up,down} callbacks because we may have to make decisions on that (e.g: turn on/off RGMII interfaces etc.). We do not pass an entire phylink_link_state because not all parameters (pause, duplex etc.) are defined when the link is down, only link and interface are.
Update mvneta accordingly since it currently implements phylink_mac_ops.
--- drivers/net/ethernet/marvell/mvneta.c | 4 +++- drivers/net/phy/phylink.c | 4 +++- include/linux/phylink.h | 14 +++++++++++--- 3 files changed, 17 insertions(+), 5 deletions(-)
drivers/net/ethernet/marvell/mvneta.c +7 -3
@@ -3396,7 +3396,8 @@ static void mvneta_set_eee(struct mvneta_port *pp, bool enable)mvreg_write (pp,MVNETA_LPI_CTRL_1 , lpi_ctl1); } -static void mvneta_mac_link_down (struct net_device *ndev,unsigned int mode) +static void mvneta_mac_link_down (struct net_device *ndev,unsigned int mode, +phy_interface_t interface) {struct mvneta_port *pp =netdev_priv (ndev);u32 val;
@@ -3415,6 +3416,7 @@ static void mvneta_mac_link_down(struct net_device *ndev, unsigned int mode) }static void mvneta_mac_link_up (struct net_device *ndev,unsigned int mode, +phy_interface_t interface,struct phy_device *phy) { struct mvneta_port *pp = netdev_priv(ndev); diff --git a/drivers/net/phy/phylink.c b/drivers/net/phy/phylink.c index 51a011a349fe..9b1e4721ea3a 100644 --- a/drivers/net/phy/phylink.c +++ b/drivers/net/phy/phylink.c
@@ -470,10 +470,12 @@ static void phylink_resolve(struct work_struct *w)if (link_state.link !=netif_carrier_ok (ndev)) {if (!link_state.link) {netif_carrier_off (ndev); - pl->ops->mac_link_down (ndev, pl->link_an_mode); + pl->ops->mac_link_down (ndev, pl->link_an_mode, + pl->phy_state.interface);netdev_info (ndev,"Link is Down\n" ); }else { pl->ops->mac_link_up (ndev, pl->link_an_mode, + pl->phy_state.interface, pl->phydev);netif_carrier_on (ndev);
include/linux/phylink.h +11 -3
@@ -73,8 +73,10 @@ struct phylink_mac_ops {void (*mac_config)(struct net_device *ndev,unsigned int mode,const struct phylink_link_state *state);void (*mac_an_restart)(struct net_device *ndev); -void (*mac_link_down)(struct net_device *ndev,unsigned int mode); +void (*mac_link_down)(struct net_device *ndev,unsigned int mode, +phy_interface_t interface);void (*mac_link_up)(struct net_device *ndev,unsigned int mode, +phy_interface_t interface,struct phy_device *phy); };
@@ -161,25 +163,31 @@ void mac_an_restart(struct net_device *ndev);* mac_link_down() - take the link down * @ndev: a pointer to a &struct net_device for the MAC. * @mode: link autonegotiation mode +* @interface: link &typedef phy_interface_t mode * * If @mode is not an in-band negotiation mode (as defined by * phylink_autoneg_inband()), force the link down and disable any -* Energy Efficient Ethernet MAC configuration. +* Energy Efficient Ethernet MAC configuration. Interface type +* selection must be done in mac_config(). */ -void mac_link_down (struct net_device *ndev,unsigned int mode); +void mac_link_down (struct net_device *ndev,unsigned int mode, +phy_interface_t interface);/** * mac_link_up() - allow the link to come up * @ndev: a pointer to a &struct net_device for the MAC. * @mode: link autonegotiation mode +* @interface: link &typedef phy_interface_t mode * @phy: any attached phy * * If @mode is not an in-band negotiation mode (as defined by * phylink_autoneg_inband()), allow the link to come up. If @phy * is non-%NULL, configure Energy Efficient Ethernet by calling * phy_init_eee() and perform appropriate MAC configuration for EEE. +* Interface type selection must be done in mac_config(). */ void mac_link_up (struct net_device *ndev,unsigned int mode, +phy_interface_t interface,struct phy_device *phy);#endif
--
2.14.1
Andrew Lunn
maintainerRe: [EXT] [PATCH net-next v2 1/2] net: phy: phylink: Provide PHY interface to mac_link_{up,down}
Quoted 6 lines · Yan Markman
Hi Florian
Please keep CC Yelena Krivosheev <[email protected]>
for changes withdrivers/net/ethernet/marvell/mvneta.c
Thanks
Yan Markman
Tel. 05-44732819
Hi Yan
Since you have obviously seen the patches, how about a Reviewed-by, or a Tested-by.
Andrew
PATCH v2 2/2 sfp/phylink: move module EEPROM ethtool access into netdev core ethtool
In reply to Florian FainelliFrom: Russell King <[email protected]>
Provide a pointer to the SFP bus in struct net_device, so that the ethtool module EEPROM methods can access the SFP directly, rather than needing every user to provide a hook for it.
--- drivers/net/ethernet/marvell/mvneta.c | 18 ------------------ drivers/net/phy/phylink.c | 28 ---------------------------- drivers/net/phy/sfp-bus.c | 6 ++---- include/linux/netdevice.h | 3 +++ include/linux/phylink.h | 3 --- net/core/ethtool.c | 7 +++++++ 6 files changed, 12 insertions(+), 53 deletions(-)
drivers/net/ethernet/marvell/mvneta.c +0 -18
@@ -4075,22 +4075,6 @@ static int mvneta_ethtool_set_wol(struct net_device *dev,return ret; } -static int mvneta_ethtool_get_module_info (struct net_device *dev, -struct ethtool_modinfo *modinfo) -{ -struct mvneta_port *pp =netdev_priv (dev); - -return phylink_ethtool_get_module_info (pp->phylink, modinfo); -} - -static int mvneta_ethtool_get_module_eeprom (struct net_device *dev, -struct ethtool_eeprom *ee,u8 *buf) -{ -struct mvneta_port *pp =netdev_priv (dev); - -return phylink_ethtool_get_module_eeprom (pp->phylink, ee, buf); -} -static int mvneta_ethtool_get_eee (struct net_device *dev,struct ethtool_eee *eee) {
@@ -4165,8 +4149,6 @@ static const struct ethtool_ops mvneta_eth_tool_ops = { .set_link_ksettings = mvneta_ethtool_set_link_ksettings, .get_wol = mvneta_ethtool_get_wol, .set_wol = mvneta_ethtool_set_wol, - .get_module_info = mvneta_ethtool_get_module_info, - .get_module_eeprom = mvneta_ethtool_get_module_eeprom, .get_eee = mvneta_ethtool_get_eee, .set_eee = mvneta_ethtool_set_eee, };
drivers/net/phy/phylink.c +0 -28
@@ -1250,34 +1250,6 @@ int phylink_ethtool_set_pauseparam(struct phylink *pl, }EXPORT_SYMBOL_GPL (phylink_ethtool_set_pauseparam); -int phylink_ethtool_get_module_info (struct phylink *pl, -struct ethtool_modinfo *modinfo) -{ -int ret = -EOPNOTSUPP ; - -WARN_ON (!lockdep_rtnl_is_held ()); - -if (pl->sfp_bus) - ret =sfp_get_module_info (pl->sfp_bus, modinfo); - -return ret; -} -EXPORT_SYMBOL_GPL (phylink_ethtool_get_module_info); - -int phylink_ethtool_get_module_eeprom (struct phylink *pl, -struct ethtool_eeprom *ee,u8 *buf) -{ -int ret = -EOPNOTSUPP ; - -WARN_ON (!lockdep_rtnl_is_held ()); - -if (pl->sfp_bus) - ret =sfp_get_module_eeprom (pl->sfp_bus, ee, buf); - -return ret; -} -EXPORT_SYMBOL_GPL (phylink_ethtool_get_module_eeprom); -/** * phylink_ethtool_get_eee_err() - read the energy efficient ethernet error * counter
drivers/net/phy/sfp-bus.c +2 -4
@@ -342,6 +342,7 @@ static int sfp_register_bus(struct sfp_bus *bus) }if (bus->started) bus->socket_ops->start (bus->sfp); + bus->netdev->sfp_bus = bus; bus->registered = true;return 0 ; }
@@ -356,6 +357,7 @@ static void sfp_unregister_bus(struct sfp_bus *bus)if (bus->phydev && ops && ops->disconnect_phy) ops->disconnect_phy (bus->upstream); } + bus->netdev->sfp_bus =NULL ; bus->registered = false; }
@@ -371,8 +373,6 @@ static void sfp_unregister_bus(struct sfp_bus *bus)*/ int sfp_get_module_info (struct sfp_bus *bus,struct ethtool_modinfo *modinfo) { -if (!bus->registered) -return -ENOIOCTLCMD ;return bus->socket_ops->module_info (bus->sfp, modinfo); }EXPORT_SYMBOL_GPL (sfp_get_module_info);
@@ -391,8 +391,6 @@ EXPORT_SYMBOL_GPL(sfp_get_module_info);int sfp_get_module_eeprom (struct sfp_bus *bus,struct ethtool_eeprom *ee,u8 *data) { -if (!bus->registered) -return -ENOIOCTLCMD ;return bus->socket_ops->module_eeprom (bus->sfp, ee, data); }EXPORT_SYMBOL_GPL (sfp_get_module_eeprom);
include/linux/netdevice.h +3 -0
@@ -58,6 +58,7 @@ struct device;struct phy_device ;struct dsa_port ; +struct sfp_bus ;/* 802.11 specific */ struct wireless_dev ;/* 802.15.4 specific */
@@ -1662,6 +1663,7 @@ enum netdev_priv_flags {* @priomap: XXX: need comments on this one * @phydev: Physical device may attach itself * for hardware timestamping +* @sfp_bus: attached &struct sfp_bus structure. * * @qdisc_tx_busylock: lockdep class annotating Qdisc->busylock spinlock * @qdisc_running_key: lockdep class annotating Qdisc->running seqcount
@@ -1945,6 +1947,7 @@ struct net_device {struct netprio_map __rcu *priomap;#endif struct phy_device *phydev; +struct sfp_bus *sfp_bus;struct lock_class_key *qdisc_tx_busylock;struct lock_class_key *qdisc_running_key;bool proto_down;
include/linux/phylink.h +0 -3
@@ -219,9 +219,6 @@ void phylink_ethtool_get_pauseparam(struct phylink *, struct ethtool_pauseparam *);int phylink_ethtool_set_pauseparam (struct phylink *,struct ethtool_pauseparam *); -int phylink_ethtool_get_module_info (struct phylink *,struct ethtool_modinfo *); -int phylink_ethtool_get_module_eeprom (struct phylink *, -struct ethtool_eeprom *,u8 *);int phylink_get_eee_err (struct phylink *);int phylink_ethtool_get_eee (struct phylink *,struct ethtool_eee *);int phylink_ethtool_set_eee (struct phylink *,struct ethtool_eee *);
net/core/ethtool.c +7 -0
@@ -22,6 +22,7 @@#include <linux/bitops.h> #include <linux/uaccess.h> #include <linux/vmalloc.h> +#include <linux/sfp.h> #include <linux/slab.h> #include <linux/rtnetlink.h> #include <linux/sched/signal.h>
@@ -2245,6 +2246,9 @@ static int __ethtool_get_module_info(struct net_device *dev,const struct ethtool_ops *ops = dev->ethtool_ops;struct phy_device *phydev = dev->phydev; +if (dev->sfp_bus) +return sfp_get_module_info (dev->sfp_bus, modinfo); +if (phydev && phydev->drv && phydev->drv->module_info)return phydev->drv->module_info (phydev, modinfo);
@@ -2279,6 +2283,9 @@ static int __ethtool_get_module_eeprom(struct net_device *dev,const struct ethtool_ops *ops = dev->ethtool_ops;struct phy_device *phydev = dev->phydev; +if (dev->sfp_bus) +return sfp_get_module_eeprom (dev->sfp_bus, ee, data); +if (phydev && phydev->drv && phydev->drv->module_eeprom)return phydev->drv->module_eeprom (phydev, ee, data);
Signature · 1 line
2.14.1
RE: [EXT] [PATCH net-next v2 2/2] sfp/phylink: move module EEPROM ethtool access into netdev core ethtool
Hi Florian
Please keep CC Yelena Krivosheev <[email protected]>
for changes with drivers/net/ethernet/marvell/mvneta.c
Thanks
Yan Markman
Tel. 05-44732819
-----Original Message-----
From: Florian Fainelli [mailto:[email protected]]
Sent: Thursday, March 29, 2018 1:44 AM
To: [email protected]
Cc: Russell King <[email protected]>; Florian Fainelli <[email protected]>; Thomas Petazzoni <[email protected]>; Andrew Lunn <[email protected]>; David S. Miller <[email protected]>; open list <[email protected]>; Antoine Tenart <[email protected]>; Yan Markman <[email protected]>; Stefan Chulski <[email protected]>; Maxime Chevallier <[email protected]>; Miquel Raynal <[email protected]>; Marcin Wojtas <[email protected]>
Subject: [EXT] [PATCH net-next v2 2/2] sfp/phylink: move module EEPROM ethtool access into netdev core ethtool
External Email
----------------------------------------------------------------------
From: Russell King <[email protected]>
Provide a pointer to the SFP bus in struct net_device, so that the ethtool module EEPROM methods can access the SFP directly, rather than needing every user to provide a hook for it.
--- drivers/net/ethernet/marvell/mvneta.c | 18 ------------------ drivers/net/phy/phylink.c | 28 ---------------------------- drivers/net/phy/sfp-bus.c | 6 ++---- include/linux/netdevice.h | 3 +++ include/linux/phylink.h | 3 --- net/core/ethtool.c | 7 +++++++ 6 files changed, 12 insertions(+), 53 deletions(-)
drivers/net/ethernet/marvell/mvneta.c +0 -18
@@ -4075,22 +4075,6 @@ static int mvneta_ethtool_set_wol(struct net_device *dev,return ret; } -static int mvneta_ethtool_get_module_info (struct net_device *dev, -struct ethtool_modinfo *modinfo) -{ -struct mvneta_port *pp =netdev_priv (dev); - -return phylink_ethtool_get_module_info (pp->phylink, modinfo); -} - -static int mvneta_ethtool_get_module_eeprom (struct net_device *dev, -struct ethtool_eeprom *ee,u8 *buf) -{ -struct mvneta_port *pp =netdev_priv (dev); - -return phylink_ethtool_get_module_eeprom (pp->phylink, ee, buf); -} -static int mvneta_ethtool_get_eee (struct net_device *dev,struct ethtool_eee *eee) {
@@ -4165,8 +4149,6 @@ static const struct ethtool_ops mvneta_eth_tool_ops = { .set_link_ksettings = mvneta_ethtool_set_link_ksettings, .get_wol = mvneta_ethtool_get_wol, .set_wol = mvneta_ethtool_set_wol, - .get_module_info = mvneta_ethtool_get_module_info, - .get_module_eeprom = mvneta_ethtool_get_module_eeprom, .get_eee = mvneta_ethtool_get_eee, .set_eee = mvneta_ethtool_set_eee, };
drivers/net/phy/phylink.c +0 -28
@@ -1250,34 +1250,6 @@ int phylink_ethtool_set_pauseparam(struct phylink *pl, } EXPORT_SYMBOL_GPL(phylink_ethtool_set_pauseparam); -int phylink_ethtool_get_module_info (struct phylink *pl, -struct ethtool_modinfo *modinfo) -{ -int ret = -EOPNOTSUPP ; - -WARN_ON (!lockdep_rtnl_is_held ()); - -if (pl->sfp_bus) - ret =sfp_get_module_info (pl->sfp_bus, modinfo); - -return ret; -} -EXPORT_SYMBOL_GPL (phylink_ethtool_get_module_info); - -int phylink_ethtool_get_module_eeprom (struct phylink *pl, -struct ethtool_eeprom *ee,u8 *buf) -{ -int ret = -EOPNOTSUPP ; - -WARN_ON (!lockdep_rtnl_is_held ()); - -if (pl->sfp_bus) - ret =sfp_get_module_eeprom (pl->sfp_bus, ee, buf); - -return ret; -} -EXPORT_SYMBOL_GPL (phylink_ethtool_get_module_eeprom); -/** * phylink_ethtool_get_eee_err() - read the energy efficient ethernet error * counter
drivers/net/phy/sfp-bus.c +2 -4
@@ -342,6 +342,7 @@ static int sfp_register_bus(struct sfp_bus *bus) }if (bus->started) bus->socket_ops->start (bus->sfp); + bus->netdev->sfp_bus = bus; bus->registered = true;return 0 ; }
@@ -356,6 +357,7 @@ static void sfp_unregister_bus(struct sfp_bus *bus)if (bus->phydev && ops && ops->disconnect_phy) ops->disconnect_phy (bus->upstream); } + bus->netdev->sfp_bus =NULL ; bus->registered = false; }
@@ -371,8 +373,6 @@ static void sfp_unregister_bus(struct sfp_bus *bus)*/ int sfp_get_module_info (struct sfp_bus *bus,struct ethtool_modinfo *modinfo) { -if (!bus->registered) -return -ENOIOCTLCMD ;return bus->socket_ops->module_info (bus->sfp, modinfo); }EXPORT_SYMBOL_GPL (sfp_get_module_info);
@@ -391,8 +391,6 @@ EXPORT_SYMBOL_GPL(sfp_get_module_info);int sfp_get_module_eeprom (struct sfp_bus *bus,struct ethtool_eeprom *ee,u8 *data) { -if (!bus->registered) -return -ENOIOCTLCMD ;return bus->socket_ops->module_eeprom (bus->sfp, ee, data); }EXPORT_SYMBOL_GPL (sfp_get_module_eeprom);
include/linux/netdevice.h +3 -0
@@ -58,6 +58,7 @@ struct device;struct phy_device ;struct dsa_port ; +struct sfp_bus ;/* 802.11 specific */ struct wireless_dev ;/* 802.15.4 specific */
@@ -1662,6 +1663,7 @@ enum netdev_priv_flags {* @priomap: XXX: need comments on this one * @phydev: Physical device may attach itself * for hardware timestamping +* @sfp_bus: attached &struct sfp_bus structure. * * @qdisc_tx_busylock: lockdep class annotating Qdisc->busylock spinlock * @qdisc_running_key: lockdep class annotating Qdisc->running seqcount
@@ -1945,6 +1947,7 @@ struct net_device {struct netprio_map __rcu *priomap;#endif struct phy_device *phydev; +struct sfp_bus *sfp_bus;struct lock_class_key *qdisc_tx_busylock;struct lock_class_key *qdisc_running_key;bool proto_down;
include/linux/phylink.h +8 -3
@@ -219,9 +219,6 @@ void phylink_ethtool_get_pauseparam(struct phylink *, struct ethtool_pauseparam *);int phylink_ethtool_set_pauseparam (struct phylink *,struct ethtool_pauseparam *); -int phylink_ethtool_get_module_info(struct phylink *, struct ethtool_modinfo *); -int phylink_ethtool_get_module_eeprom(struct phylink *, - struct ethtool_eeprom *, u8 *); int phylink_get_eee_err(struct phylink *); int phylink_ethtool_get_eee(struct phylink *, struct ethtool_eee *); int phylink_ethtool_set_eee(struct phylink *, struct ethtool_eee *); diff --git a/net/core/ethtool.c b/net/core/ethtool.c index bb6e498c6e3d..eb55252ca1fb 100644 --- a/net/core/ethtool.c +++ b/net/core/ethtool.c
@@ -22,6 +22,7 @@#include <linux/bitops.h> #include <linux/uaccess.h> #include <linux/vmalloc.h> +#include <linux/sfp.h> #include <linux/slab.h> #include <linux/rtnetlink.h> #include <linux/sched/signal.h>
@@ -2245,6 +2246,9 @@ static int __ethtool_get_module_info(struct net_device *dev,const struct ethtool_ops *ops = dev->ethtool_ops;struct phy_device *phydev = dev->phydev; +if (dev->sfp_bus) +return sfp_get_module_info (dev->sfp_bus, modinfo); +if (phydev && phydev->drv && phydev->drv->module_info)return phydev->drv->module_info (phydev, modinfo);
@@ -2279,6 +2283,9 @@ static int __ethtool_get_module_eeprom(struct net_device *dev,const struct ethtool_ops *ops = dev->ethtool_ops;struct phy_device *phydev = dev->phydev; +if (dev->sfp_bus) +return sfp_get_module_eeprom (dev->sfp_bus, ee, data); +if (phydev && phydev->drv && phydev->drv->module_eeprom)return phydev->drv->module_eeprom (phydev, ee, data);
--
2.14.1
Hi Florian
Please keep CC Yelena Krivosheev <[email protected]>
for changes with drivers/net/ethernet/marvell/mvneta.c
Thanks
Yan Markman
Tel. 05-44732819
-----Original Message-----
From: Florian Fainelli [mailto:[email protected]]
Sent: Thursday, March 29, 2018 1:44 AM
To: [email protected]
Cc: Florian Fainelli <[email protected]>; Thomas Petazzoni <[email protected]>; Andrew Lunn <[email protected]>; David S. Miller <[email protected]>; Russell King <[email protected]>; open list <[email protected]>; Antoine Tenart <[email protected]>; Yan Markman <[email protected]>; Stefan Chulski <[email protected]>; Maxime Chevallier <[email protected]>; Miquel Raynal <[email protected]>; Marcin Wojtas <[email protected]>
Subject: [EXT] [PATCH net-next v2 0/2] phylink: API changes
External Email
----------------------------------------------------------------------
Hi all,
This patch series contains two API changes to PHYLINK which will later be used by DSA to migrate to PHYLINK. Because these are API changes that impact other outstanding work (e.g: MVPP2) I would rather get them included sooner to minimize conflicts.
Thank you!
Changes in v2:
- added missing documentation to mac_link_{up,down} that the interface must be configured in mac_config()
- added Russell's, Andrew's and my tags
Florian Fainelli (1):
net: phy: phylink: Provide PHY interface to mac_link_{up,down}
Russell King (1):
sfp/phylink: move module EEPROM ethtool access into netdev core
ethtool
drivers/net/ethernet/marvell/mvneta.c | 22 +++------------------- drivers/net/phy/phylink.c | 32 +++----------------------------- drivers/net/phy/sfp-bus.c | 6 ++---- include/linux/netdevice.h | 3 +++ include/linux/phylink.h | 17 +++++++++++------ net/core/ethtool.c | 7 +++++++ 6 files changed, 29 insertions(+), 58 deletions(-)
--
2.14.1
Russell King - ARM Linux
maintainerQuoted 4 lines · Yan Markman
Hi Florian
Please keep CC Yelena Krivosheev <[email protected]>
for changes withdrivers/net/ethernet/marvell/mvneta.c
Thanks
We have a way to ensure such things happen - it's the MAINTAINERS file. Please use the established community methods rather than sending emails asking for people to remember such quirks. Thanks.
Quoted 45 lines
Yan Markman
Tel. 05-44732819-----Original Message-----
From: Florian Fainelli [mailto:[email protected]]
Sent: Thursday, March 29, 2018 1:44 AM
To: [email protected]
Cc: Florian Fainelli <[email protected]>; Thomas Petazzoni <[email protected]>; Andrew Lunn <[email protected]>; David S. Miller <[email protected]>; Russell King <[email protected]>; open list <[email protected]>; Antoine Tenart <[email protected]>; Yan Markman <[email protected]>; Stefan Chulski <[email protected]>; Maxime Chevallier <[email protected]>; Miquel Raynal <[email protected]>; Marcin Wojtas <[email protected]>
Subject: [EXT] [PATCH net-next v2 0/2] phylink: API changesExternal Email
----------------------------------------------------------------------
Hi all,This patch series contains two API changes to PHYLINK which will later be used by DSA to migrate to PHYLINK. Because these are API changes that impact other outstanding work (e.g: MVPP2) I would rather get them included sooner to minimize conflicts.
Thank you!
Changes in v2:
- added missing documentation to mac_link_{up,down} that the interface must be configured in
mac_config()- added Russell's, Andrew's and my tags
Florian Fainelli (1):
net: phy: phylink: Provide PHY interface to mac_link_{up,down}Russell King (1):
sfp/phylink: move module EEPROM ethtool access into netdev core
ethtooldrivers/net/ethernet/marvell/mvneta.c | 22 +++------------------- drivers/net/phy/phylink.c | 32 +++----------------------------- drivers/net/phy/sfp-bus.c | 6 ++---- include/linux/netdevice.h | 3 +++ include/linux/phylink.h | 17 +++++++++++------ net/core/ethtool.c | 7 +++++++ 6 files changed, 29 insertions(+), 58 deletions(-)--
2.14.1
Signature · 3 lines
RMK's Patch system: http://www.armlinux.org.uk/developer/patches/ FTTC broadband for 0.8mile line in suburbia: sync at 8.8Mbps down 630kbps up According to speedtest.net: 8.21Mbps down 510kbps up
David Miller
maintainerFrom: Florian Fainelli <[email protected]>
Date: Wed, 28 Mar 2018 15:44:14 -0700
Quoted 4 lines
This patch series contains two API changes to PHYLINK which will later be used by DSA to migrate to PHYLINK. Because these are API changes that impact other outstanding work (e.g: MVPP2) I would rather get them included sooner to minimize conflicts.
Series applied, thanks Florian.