From: Sean Anderson <sean.anderson@seco.com> To: "David S . Miller" <davem@davemloft.net>, Jakub Kicinski <kuba@kernel.org>, Madalin Bucur <madalin.bucur@nxp.com>, netdev@vger.kernel.org Cc: Paolo Abeni <pabeni@redhat.com>, Eric Dumazet <edumazet@google.com>, linux-arm-kernel@lists.infradead.org, Russell King <linux@armlinux.org.uk>, linux-kernel@vger.kernel.org, Sean Anderson <sean.anderson@seco.com>, Alexandru Marginean <alexandru.marginean@nxp.com>, Andrew Lunn <andrew@lunn.ch>, Heiner Kallweit <hkallweit1@gmail.com>, Vladimir Oltean <olteanv@gmail.com> Subject: [PATCH net-next v3 07/47] net: phy: Add support for rate adaptation Date: Fri, 15 Jul 2022 17:59:14 -0400 [thread overview] Message-ID: <20220715215954.1449214-8-sean.anderson@seco.com> (raw) In-Reply-To: <20220715215954.1449214-1-sean.anderson@seco.com> This adds general support for rate adaptation to the phy subsystem. The general idea is that the phy interface runs at one speed, and the MAC throttles the rate at which it sends packets to the link speed. There's a good overview of several techniques for achieving this at [1]. This patch adds support for three: pause-frame based (such as in Aquantia phys), CRS-based (such as in 10PASS-TS and 2BASE-TL), and open-loop-based (such as in 10GBASE-W). This patch makes a few assumptions and a few non assumptions about the types of rate adaptation available. First, it assumes that different phys may use different forms of rate adaptation. Second, it assumes that phys can use rate adaptation for any of their supported link speeds (e.g. if a phy supports 10BASE-T and XGMII, then it can adapt XGMII to 10BASE-T). Third, it does not assume that all interface modes will use the same form of rate adaptation. Fourth, it does not assume that all phy devices will support rate adaptation (even some do). Relaxing or strengthening these (non-)assumptions could result in a different API. For example, if all interface modes were assumed to use the same form of rate adaptation, then a bitmask of interface modes supportting rate adaptation would suffice. We need support for rate adaptation for two reasons. First, the phy consumer needs to know if the phy will perform rate adaptation in order to program the correct advertising. An unaware consumer will only program support for link modes at the phy interface mode's native speed. This will cause autonegotiation to fail if the link partner only advertises support for lower speed link modes. Second, to reduce packet loss it may be desirable to throttle packet throughput. In past discussions [2-4], this behavior has been controversial. It is the opinion of several developers that it is the responsibility of the system integrator or end user to set the link settings appropriately for rate adaptation. In particular, it was argued that it is difficult to determine whether a particular phy has rate adaptation enabled, and it is simpler to keep such determinations out of the kernel. Another criticism is that packet loss may happen anyway, such as if a faster link is used with a switch or repeater that does not support pause frames. I believe that our current approach is limiting, especially when considering that rate adaptation (in two forms) has made it into IEEE standards. In general, When we have appropriate information we should set sensible defaults. To consider use a contrasting example, we enable pause frames by default for switches which autonegotiate for them. When it's the phy itself generating these frames, we don't even have to autonegotiate to know that we should enable pause frames. Our current approach also encourages workarounds, such as commit 73a21fa817f0 ("dpaa_eth: support all modes with rate adapting PHYs"). These workarounds are fine for phylib drivers, but phylink drivers cannot use this approach (since there is no direct access to the phy). Note that even when we determine (e.g.) the pause settings based on whether rate adaptation is enabled, they can still be overridden by userspace (using ethtool). It might be prudent to allow disabling of rate adaptation generally in ethtool as well. [1] https://www.ieee802.org/3/efm/baseline/marris_1_0302.pdf [2] https://lore.kernel.org/netdev/1579701573-6609-1-git-send-email-madalin.bucur@oss.nxp.com/ [3] https://lore.kernel.org/netdev/1580137671-22081-1-git-send-email-madalin.bucur@oss.nxp.com/ [4] https://lore.kernel.org/netdev/20200116181933.32765-1-olteanv@gmail.com/ Signed-off-by: Sean Anderson <sean.anderson@seco.com> --- Changes in v3: - New drivers/net/phy/phy.c | 21 +++++++++++++++++++++ include/linux/phy.h | 38 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 59 insertions(+) diff --git a/drivers/net/phy/phy.c b/drivers/net/phy/phy.c index 8d3ee3a6495b..cf4a8b055a42 100644 --- a/drivers/net/phy/phy.c +++ b/drivers/net/phy/phy.c @@ -114,6 +114,27 @@ void phy_print_status(struct phy_device *phydev) } EXPORT_SYMBOL(phy_print_status); +/** + * phy_get_rate_adaptation - determine if rate adaptation is supported + * @phydev: The phy device to return rate adaptation for + * @iface: The interface mode to use + * + * This determines the type of rate adaptation (if any) that @phy supports + * using @iface. @iface may be %PHY_INTERFACE_MODE_NA to determine if any + * interface supports rate adaptation. + * + * Return: The type of rate adaptation @phy supports for @iface, or + * %RATE_ADAPT_NONE. + */ +enum rate_adaptation phy_get_rate_adaptation(struct phy_device *phydev, + phy_interface_t iface) +{ + if (phydev->drv->get_rate_adaptation) + return phydev->drv->get_rate_adaptation(phydev, iface); + return RATE_ADAPT_NONE; +} +EXPORT_SYMBOL_GPL(phy_get_rate_adaptation); + /** * phy_config_interrupt - configure the PHY device for the requested interrupts * @phydev: the phy_device struct diff --git a/include/linux/phy.h b/include/linux/phy.h index 81ce76c3e799..e983711f6c8b 100644 --- a/include/linux/phy.h +++ b/include/linux/phy.h @@ -276,6 +276,24 @@ static inline const char *phy_modes(phy_interface_t interface) } } +/** + * enum rate_adaptation - methods of rate adaptation + * @RATE_ADAPT_NONE: No rate adaptation performed. + * @RATE_ADAPT_PAUSE: The phy sends pause frames to throttle the MAC. + * @RATE_ADAPT_CRS: The phy asserts CRS to prevent the MAC from transmitting. + * @RATE_ADAPT_OPEN_LOOP: The MAC is programmed with a sufficiently-large IPG. + * + * These are used to throttle the rate of data on the phy interface when the + * native speed of the interface is higher than the link speed. These should + * not be used for phy interfaces which natively support multiple speeds (e.g. + * MII or SGMII). + */ +enum rate_adaptation { + RATE_ADAPT_NONE = 0, + RATE_ADAPT_PAUSE, + RATE_ADAPT_CRS, + RATE_ADAPT_OPEN_LOOP, +}; #define PHY_INIT_TIMEOUT 100000 #define PHY_FORCE_TIMEOUT 10 @@ -570,6 +588,7 @@ struct macsec_ops; * @lp_advertising: Current link partner advertised linkmodes * @eee_broken_modes: Energy efficient ethernet modes which should be prohibited * @autoneg: Flag autoneg being used + * @rate_adaptation: Current rate adaptation mode * @link: Current link state * @autoneg_complete: Flag auto negotiation of the link has completed * @mdix: Current crossover @@ -637,6 +656,8 @@ struct phy_device { unsigned irq_suspended:1; unsigned irq_rerun:1; + enum rate_adaptation rate_adaptation; + enum phy_state state; u32 dev_flags; @@ -801,6 +822,21 @@ struct phy_driver { */ int (*get_features)(struct phy_device *phydev); + /** + * @get_rate_adaptation: Get the supported type of rate adaptation for a + * particular phy interface. This is used by phy consumers to determine + * whether to advertise lower-speed modes for that interface. It is + * assumed that if a rate adaptation mode is supported on an interface, + * then that interface's rate can be adapted to all slower link speeds + * supported by the phy. If iface is %PHY_INTERFACE_MODE_NA, and the phy + * supports any kind of rate adaptation for any interface, then it must + * return that rate adaptation mode (preferring %RATE_ADAPT_PAUSE, to + * %RATE_ADAPT_CRS). If the interface is not supported, this should + * return %RATE_ADAPT_NONE. + */ + enum rate_adaptation (*get_rate_adaptation)(struct phy_device *phydev, + phy_interface_t iface); + /* PHY Power Management */ /** @suspend: Suspend the hardware, saving state if needed */ int (*suspend)(struct phy_device *phydev); @@ -1681,6 +1717,8 @@ int phy_disable_interrupts(struct phy_device *phydev); void phy_request_interrupt(struct phy_device *phydev); void phy_free_interrupt(struct phy_device *phydev); void phy_print_status(struct phy_device *phydev); +enum rate_adaptation phy_get_rate_adaptation(struct phy_device *phydev, + phy_interface_t iface); void phy_set_max_speed(struct phy_device *phydev, u32 max_speed); void phy_remove_link_mode(struct phy_device *phydev, u32 link_mode); void phy_advertise_supported(struct phy_device *phydev); -- 2.35.1.1320.gc452695387.dirty
WARNING: multiple messages have this Message-ID (diff)
From: Sean Anderson <sean.anderson@seco.com> To: "David S . Miller" <davem@davemloft.net>, Jakub Kicinski <kuba@kernel.org>, Madalin Bucur <madalin.bucur@nxp.com>, netdev@vger.kernel.org Cc: Paolo Abeni <pabeni@redhat.com>, Eric Dumazet <edumazet@google.com>, linux-arm-kernel@lists.infradead.org, Russell King <linux@armlinux.org.uk>, linux-kernel@vger.kernel.org, Sean Anderson <sean.anderson@seco.com>, Alexandru Marginean <alexandru.marginean@nxp.com>, Andrew Lunn <andrew@lunn.ch>, Heiner Kallweit <hkallweit1@gmail.com>, Vladimir Oltean <olteanv@gmail.com> Subject: [PATCH net-next v3 07/47] net: phy: Add support for rate adaptation Date: Fri, 15 Jul 2022 17:59:14 -0400 [thread overview] Message-ID: <20220715215954.1449214-8-sean.anderson@seco.com> (raw) In-Reply-To: <20220715215954.1449214-1-sean.anderson@seco.com> This adds general support for rate adaptation to the phy subsystem. The general idea is that the phy interface runs at one speed, and the MAC throttles the rate at which it sends packets to the link speed. There's a good overview of several techniques for achieving this at [1]. This patch adds support for three: pause-frame based (such as in Aquantia phys), CRS-based (such as in 10PASS-TS and 2BASE-TL), and open-loop-based (such as in 10GBASE-W). This patch makes a few assumptions and a few non assumptions about the types of rate adaptation available. First, it assumes that different phys may use different forms of rate adaptation. Second, it assumes that phys can use rate adaptation for any of their supported link speeds (e.g. if a phy supports 10BASE-T and XGMII, then it can adapt XGMII to 10BASE-T). Third, it does not assume that all interface modes will use the same form of rate adaptation. Fourth, it does not assume that all phy devices will support rate adaptation (even some do). Relaxing or strengthening these (non-)assumptions could result in a different API. For example, if all interface modes were assumed to use the same form of rate adaptation, then a bitmask of interface modes supportting rate adaptation would suffice. We need support for rate adaptation for two reasons. First, the phy consumer needs to know if the phy will perform rate adaptation in order to program the correct advertising. An unaware consumer will only program support for link modes at the phy interface mode's native speed. This will cause autonegotiation to fail if the link partner only advertises support for lower speed link modes. Second, to reduce packet loss it may be desirable to throttle packet throughput. In past discussions [2-4], this behavior has been controversial. It is the opinion of several developers that it is the responsibility of the system integrator or end user to set the link settings appropriately for rate adaptation. In particular, it was argued that it is difficult to determine whether a particular phy has rate adaptation enabled, and it is simpler to keep such determinations out of the kernel. Another criticism is that packet loss may happen anyway, such as if a faster link is used with a switch or repeater that does not support pause frames. I believe that our current approach is limiting, especially when considering that rate adaptation (in two forms) has made it into IEEE standards. In general, When we have appropriate information we should set sensible defaults. To consider use a contrasting example, we enable pause frames by default for switches which autonegotiate for them. When it's the phy itself generating these frames, we don't even have to autonegotiate to know that we should enable pause frames. Our current approach also encourages workarounds, such as commit 73a21fa817f0 ("dpaa_eth: support all modes with rate adapting PHYs"). These workarounds are fine for phylib drivers, but phylink drivers cannot use this approach (since there is no direct access to the phy). Note that even when we determine (e.g.) the pause settings based on whether rate adaptation is enabled, they can still be overridden by userspace (using ethtool). It might be prudent to allow disabling of rate adaptation generally in ethtool as well. [1] https://www.ieee802.org/3/efm/baseline/marris_1_0302.pdf [2] https://lore.kernel.org/netdev/1579701573-6609-1-git-send-email-madalin.bucur@oss.nxp.com/ [3] https://lore.kernel.org/netdev/1580137671-22081-1-git-send-email-madalin.bucur@oss.nxp.com/ [4] https://lore.kernel.org/netdev/20200116181933.32765-1-olteanv@gmail.com/ Signed-off-by: Sean Anderson <sean.anderson@seco.com> --- Changes in v3: - New drivers/net/phy/phy.c | 21 +++++++++++++++++++++ include/linux/phy.h | 38 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 59 insertions(+) diff --git a/drivers/net/phy/phy.c b/drivers/net/phy/phy.c index 8d3ee3a6495b..cf4a8b055a42 100644 --- a/drivers/net/phy/phy.c +++ b/drivers/net/phy/phy.c @@ -114,6 +114,27 @@ void phy_print_status(struct phy_device *phydev) } EXPORT_SYMBOL(phy_print_status); +/** + * phy_get_rate_adaptation - determine if rate adaptation is supported + * @phydev: The phy device to return rate adaptation for + * @iface: The interface mode to use + * + * This determines the type of rate adaptation (if any) that @phy supports + * using @iface. @iface may be %PHY_INTERFACE_MODE_NA to determine if any + * interface supports rate adaptation. + * + * Return: The type of rate adaptation @phy supports for @iface, or + * %RATE_ADAPT_NONE. + */ +enum rate_adaptation phy_get_rate_adaptation(struct phy_device *phydev, + phy_interface_t iface) +{ + if (phydev->drv->get_rate_adaptation) + return phydev->drv->get_rate_adaptation(phydev, iface); + return RATE_ADAPT_NONE; +} +EXPORT_SYMBOL_GPL(phy_get_rate_adaptation); + /** * phy_config_interrupt - configure the PHY device for the requested interrupts * @phydev: the phy_device struct diff --git a/include/linux/phy.h b/include/linux/phy.h index 81ce76c3e799..e983711f6c8b 100644 --- a/include/linux/phy.h +++ b/include/linux/phy.h @@ -276,6 +276,24 @@ static inline const char *phy_modes(phy_interface_t interface) } } +/** + * enum rate_adaptation - methods of rate adaptation + * @RATE_ADAPT_NONE: No rate adaptation performed. + * @RATE_ADAPT_PAUSE: The phy sends pause frames to throttle the MAC. + * @RATE_ADAPT_CRS: The phy asserts CRS to prevent the MAC from transmitting. + * @RATE_ADAPT_OPEN_LOOP: The MAC is programmed with a sufficiently-large IPG. + * + * These are used to throttle the rate of data on the phy interface when the + * native speed of the interface is higher than the link speed. These should + * not be used for phy interfaces which natively support multiple speeds (e.g. + * MII or SGMII). + */ +enum rate_adaptation { + RATE_ADAPT_NONE = 0, + RATE_ADAPT_PAUSE, + RATE_ADAPT_CRS, + RATE_ADAPT_OPEN_LOOP, +}; #define PHY_INIT_TIMEOUT 100000 #define PHY_FORCE_TIMEOUT 10 @@ -570,6 +588,7 @@ struct macsec_ops; * @lp_advertising: Current link partner advertised linkmodes * @eee_broken_modes: Energy efficient ethernet modes which should be prohibited * @autoneg: Flag autoneg being used + * @rate_adaptation: Current rate adaptation mode * @link: Current link state * @autoneg_complete: Flag auto negotiation of the link has completed * @mdix: Current crossover @@ -637,6 +656,8 @@ struct phy_device { unsigned irq_suspended:1; unsigned irq_rerun:1; + enum rate_adaptation rate_adaptation; + enum phy_state state; u32 dev_flags; @@ -801,6 +822,21 @@ struct phy_driver { */ int (*get_features)(struct phy_device *phydev); + /** + * @get_rate_adaptation: Get the supported type of rate adaptation for a + * particular phy interface. This is used by phy consumers to determine + * whether to advertise lower-speed modes for that interface. It is + * assumed that if a rate adaptation mode is supported on an interface, + * then that interface's rate can be adapted to all slower link speeds + * supported by the phy. If iface is %PHY_INTERFACE_MODE_NA, and the phy + * supports any kind of rate adaptation for any interface, then it must + * return that rate adaptation mode (preferring %RATE_ADAPT_PAUSE, to + * %RATE_ADAPT_CRS). If the interface is not supported, this should + * return %RATE_ADAPT_NONE. + */ + enum rate_adaptation (*get_rate_adaptation)(struct phy_device *phydev, + phy_interface_t iface); + /* PHY Power Management */ /** @suspend: Suspend the hardware, saving state if needed */ int (*suspend)(struct phy_device *phydev); @@ -1681,6 +1717,8 @@ int phy_disable_interrupts(struct phy_device *phydev); void phy_request_interrupt(struct phy_device *phydev); void phy_free_interrupt(struct phy_device *phydev); void phy_print_status(struct phy_device *phydev); +enum rate_adaptation phy_get_rate_adaptation(struct phy_device *phydev, + phy_interface_t iface); void phy_set_max_speed(struct phy_device *phydev, u32 max_speed); void phy_remove_link_mode(struct phy_device *phydev, u32 link_mode); void phy_advertise_supported(struct phy_device *phydev); -- 2.35.1.1320.gc452695387.dirty _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2022-07-15 22:01 UTC|newest] Thread overview: 278+ messages / expand[flat|nested] mbox.gz Atom feed top 2022-07-15 21:59 [PATCH net-next v3 00/47] [RFT] net: dpaa: Convert to phylink Sean Anderson 2022-07-15 21:59 ` Sean Anderson 2022-07-15 21:59 ` Sean Anderson 2022-07-15 21:59 ` Sean Anderson 2022-07-15 21:59 ` [PATCH net-next v3 01/47] dt-bindings: phy: Add Lynx 10G phy binding Sean Anderson 2022-07-15 21:59 ` Sean Anderson 2022-07-15 21:59 ` Sean Anderson 2022-07-20 22:17 ` Rob Herring 2022-07-20 22:17 ` Rob Herring 2022-07-20 22:17 ` Rob Herring 2022-07-21 16:05 ` Sean Anderson 2022-07-21 16:05 ` Sean Anderson 2022-07-21 16:05 ` Sean Anderson 2022-07-21 18:29 ` Rob Herring 2022-07-21 18:29 ` Rob Herring 2022-07-21 18:29 ` Rob Herring 2022-07-21 23:35 ` Sean Anderson 2022-07-21 23:35 ` Sean Anderson 2022-07-21 23:35 ` Sean Anderson 2022-07-26 15:44 ` Sean Anderson 2022-07-26 15:44 ` Sean Anderson 2022-07-26 15:44 ` Sean Anderson 2022-07-15 21:59 ` [PATCH net-next v3 02/47] dt-bindings: net: Expand pcs-handle to an array Sean Anderson 2022-07-15 21:59 ` Sean Anderson 2022-07-15 21:59 ` [PATCH net-next v3 03/47] dt-bindings: net: Convert FMan MAC bindings to yaml Sean Anderson 2022-07-15 21:59 ` Sean Anderson 2022-07-15 23:06 ` Rob Herring 2022-07-15 23:06 ` Rob Herring 2022-07-16 22:47 ` Sean Anderson 2022-07-16 22:47 ` Sean Anderson 2022-07-21 14:42 ` Krzysztof Kozlowski 2022-07-21 14:42 ` Krzysztof Kozlowski 2022-07-22 16:50 ` Sean Anderson 2022-07-22 16:50 ` Sean Anderson 2022-07-15 21:59 ` [PATCH net-next v3 04/47] dt-bindings: net: fman: Add additional interface properties Sean Anderson 2022-07-15 21:59 ` Sean Anderson 2022-07-15 21:59 ` [PATCH net-next v3 05/47] net: phy: Add 1000BASE-KX interface mode Sean Anderson 2022-07-15 21:59 ` Sean Anderson 2022-07-15 21:59 ` [PATCH net-next v3 06/47] [RFT] phy: fsl: Add Lynx 10G SerDes driver Sean Anderson 2022-07-15 21:59 ` Sean Anderson 2022-07-15 21:59 ` Sean Anderson 2022-07-16 22:39 ` kernel test robot 2022-07-16 22:39 ` kernel test robot 2022-07-16 22:39 ` kernel test robot 2022-07-15 21:59 ` Sean Anderson [this message] 2022-07-15 21:59 ` [PATCH net-next v3 07/47] net: phy: Add support for rate adaptation Sean Anderson 2022-07-16 19:39 ` Andrew Lunn 2022-07-16 19:39 ` Andrew Lunn 2022-07-16 21:55 ` Sean Anderson 2022-07-16 21:55 ` Sean Anderson 2022-07-15 21:59 ` [PATCH net-next v3 08/47] net: phylink: Support differing link speeds and interface speeds Sean Anderson 2022-07-15 21:59 ` Sean Anderson 2022-07-16 20:06 ` Andrew Lunn 2022-07-16 20:06 ` Andrew Lunn 2022-07-16 22:29 ` Sean Anderson 2022-07-16 22:29 ` Sean Anderson 2022-07-17 1:26 ` Andrew Lunn 2022-07-17 1:26 ` Andrew Lunn 2022-07-18 15:49 ` Sean Anderson 2022-07-18 15:49 ` Sean Anderson 2022-07-18 16:06 ` Russell King (Oracle) 2022-07-18 16:06 ` Russell King (Oracle) 2022-07-18 16:38 ` Sean Anderson 2022-07-18 16:38 ` Sean Anderson 2022-07-18 17:28 ` Andrew Lunn 2022-07-18 17:28 ` Andrew Lunn 2022-07-18 17:40 ` Sean Anderson 2022-07-18 17:40 ` Sean Anderson 2022-07-18 18:01 ` Russell King (Oracle) 2022-07-18 18:01 ` Russell King (Oracle) 2022-07-15 21:59 ` [PATCH net-next v3 09/47] net: phylink: Adjust advertisement based on rate adaptation Sean Anderson 2022-07-15 21:59 ` Sean Anderson 2022-07-15 21:59 ` [PATCH net-next v3 10/47] net: phylink: Adjust link settings " Sean Anderson 2022-07-15 21:59 ` Sean Anderson 2022-07-16 20:17 ` Andrew Lunn 2022-07-16 20:17 ` Andrew Lunn 2022-07-16 22:37 ` Sean Anderson 2022-07-16 22:37 ` Sean Anderson 2022-07-17 1:39 ` Andrew Lunn 2022-07-17 1:39 ` Andrew Lunn 2022-07-18 16:22 ` Russell King (Oracle) 2022-07-18 16:22 ` Russell King (Oracle) 2022-07-18 16:29 ` Sean Anderson 2022-07-18 16:29 ` Sean Anderson 2022-07-18 16:14 ` Russell King (Oracle) 2022-07-18 16:14 ` Russell King (Oracle) 2022-07-18 16:12 ` Russell King (Oracle) 2022-07-18 16:12 ` Russell King (Oracle) 2022-07-18 16:45 ` Sean Anderson 2022-07-18 16:45 ` Sean Anderson 2022-07-18 17:58 ` Russell King (Oracle) 2022-07-18 17:58 ` Russell King (Oracle) 2022-07-15 21:59 ` [PATCH net-next v3 11/47] [RFC] net: phylink: Add support for CRS-based " Sean Anderson 2022-07-15 21:59 ` Sean Anderson 2022-07-15 21:59 ` [PATCH net-next v3 12/47] net: phy: aquantia: Add support for AQR115 Sean Anderson 2022-07-15 21:59 ` Sean Anderson 2022-07-16 18:17 ` Andrew Lunn 2022-07-16 18:17 ` Andrew Lunn 2022-07-16 22:42 ` Sean Anderson 2022-07-16 22:42 ` Sean Anderson 2022-07-15 21:59 ` [PATCH net-next v3 13/47] net: phy: aquantia: Add some additional phy interfaces Sean Anderson 2022-07-15 21:59 ` Sean Anderson 2022-07-16 18:18 ` Andrew Lunn 2022-07-16 18:18 ` Andrew Lunn 2022-07-15 21:59 ` [PATCH net-next v3 14/47] net: phy: aquantia: Add support for rate adaptation Sean Anderson 2022-07-15 21:59 ` Sean Anderson 2022-07-16 18:38 ` Andrew Lunn 2022-07-16 18:38 ` Andrew Lunn 2022-07-16 22:45 ` Sean Anderson 2022-07-16 22:45 ` Sean Anderson 2022-07-17 1:42 ` Andrew Lunn 2022-07-17 1:42 ` Andrew Lunn 2022-07-15 21:59 ` [PATCH net-next v3 15/47] net: fman: Convert to SPDX identifiers Sean Anderson 2022-07-15 21:59 ` Sean Anderson 2022-07-15 21:59 ` [PATCH net-next v3 16/47] net: fman: Don't pass comm_mode to enable/disable Sean Anderson 2022-07-15 21:59 ` Sean Anderson 2022-07-15 21:59 ` [PATCH net-next v3 17/47] net: fman: Store en/disable in mac_device instead of mac_priv_s Sean Anderson 2022-07-15 21:59 ` Sean Anderson 2022-07-15 21:59 ` [PATCH net-next v3 18/47] net: fman: dtsec: Always gracefully stop/start Sean Anderson 2022-07-15 21:59 ` Sean Anderson 2022-07-15 21:59 ` [PATCH net-next v3 19/47] net: fman: Get PCS node in per-mac init Sean Anderson 2022-07-15 21:59 ` Sean Anderson 2022-07-21 12:39 ` Camelia Alexandra Groza 2022-07-21 12:39 ` Camelia Alexandra Groza 2022-07-15 21:59 ` [PATCH net-next v3 20/47] net: fman: Store initialization function in match data Sean Anderson 2022-07-15 21:59 ` Sean Anderson 2022-07-21 12:51 ` Camelia Alexandra Groza 2022-07-21 12:51 ` Camelia Alexandra Groza 2022-07-21 15:34 ` Sean Anderson 2022-07-21 15:34 ` Sean Anderson 2022-07-15 21:59 ` [PATCH net-next v3 21/47] net: fman: Move struct dev to mac_device Sean Anderson 2022-07-15 21:59 ` Sean Anderson 2022-07-21 12:52 ` Camelia Alexandra Groza 2022-07-21 12:52 ` Camelia Alexandra Groza 2022-07-15 21:59 ` [PATCH net-next v3 22/47] net: fman: Configure fixed link in memac_initialization Sean Anderson 2022-07-15 21:59 ` Sean Anderson 2022-07-21 12:57 ` Camelia Alexandra Groza 2022-07-21 12:57 ` Camelia Alexandra Groza 2022-07-15 21:59 ` [PATCH net-next v3 23/47] net: fman: Export/rename some common functions Sean Anderson 2022-07-15 21:59 ` Sean Anderson 2022-07-21 12:58 ` Camelia Alexandra Groza 2022-07-21 12:58 ` Camelia Alexandra Groza 2022-07-15 21:59 ` [PATCH net-next v3 24/47] net: fman: memac: Use params instead of priv for max_speed Sean Anderson 2022-07-15 21:59 ` Sean Anderson 2022-07-21 12:58 ` Camelia Alexandra Groza 2022-07-21 12:58 ` Camelia Alexandra Groza 2022-07-15 21:59 ` [PATCH net-next v3 25/47] net: fman: Move initialization to mac-specific files Sean Anderson 2022-07-15 21:59 ` Sean Anderson 2022-07-21 12:59 ` Camelia Alexandra Groza 2022-07-21 12:59 ` Camelia Alexandra Groza 2022-07-15 21:59 ` [PATCH net-next v3 26/47] net: fman: Mark mac methods static Sean Anderson 2022-07-15 21:59 ` Sean Anderson 2022-07-21 12:59 ` Camelia Alexandra Groza 2022-07-21 12:59 ` Camelia Alexandra Groza 2022-07-15 21:59 ` [PATCH net-next v3 27/47] net: fman: Inline several functions into initialization Sean Anderson 2022-07-15 21:59 ` Sean Anderson 2022-07-21 13:01 ` Camelia Alexandra Groza 2022-07-21 13:01 ` Camelia Alexandra Groza 2022-07-21 15:33 ` Sean Anderson 2022-07-21 15:33 ` Sean Anderson 2022-07-22 12:30 ` Camelia Alexandra Groza 2022-07-22 12:30 ` Camelia Alexandra Groza 2022-07-15 21:59 ` [PATCH net-next v3 28/47] net: fman: Remove internal_phy_node from params Sean Anderson 2022-07-15 21:59 ` Sean Anderson 2022-07-21 13:03 ` Camelia Alexandra Groza 2022-07-21 13:03 ` Camelia Alexandra Groza 2022-07-15 21:59 ` [PATCH net-next v3 29/47] net: fman: Map the base address once Sean Anderson 2022-07-15 21:59 ` Sean Anderson 2022-07-21 13:04 ` Camelia Alexandra Groza 2022-07-21 13:04 ` Camelia Alexandra Groza 2022-07-21 15:34 ` Sean Anderson 2022-07-21 15:34 ` Sean Anderson 2022-07-15 21:59 ` [PATCH net-next v3 30/47] net: fman: Pass params directly to mac init Sean Anderson 2022-07-15 21:59 ` Sean Anderson 2022-07-21 13:05 ` Camelia Alexandra Groza 2022-07-21 13:05 ` Camelia Alexandra Groza 2022-07-15 21:59 ` [PATCH net-next v3 31/47] net: fman: Use mac_dev for some params Sean Anderson 2022-07-15 21:59 ` Sean Anderson 2022-07-21 13:05 ` Camelia Alexandra Groza 2022-07-21 13:05 ` Camelia Alexandra Groza 2022-07-15 21:59 ` [PATCH net-next v3 32/47] net: fman: Specify type of mac_dev for exception_cb Sean Anderson 2022-07-15 21:59 ` Sean Anderson 2022-07-21 13:06 ` Camelia Alexandra Groza 2022-07-21 13:06 ` Camelia Alexandra Groza 2022-07-15 21:59 ` [PATCH net-next v3 33/47] net: fman: Clean up error handling Sean Anderson 2022-07-15 21:59 ` Sean Anderson 2022-07-21 13:06 ` Camelia Alexandra Groza 2022-07-21 13:06 ` Camelia Alexandra Groza 2022-07-15 21:59 ` [PATCH net-next v3 34/47] net: fman: Change return type of disable to void Sean Anderson 2022-07-15 21:59 ` Sean Anderson 2022-07-21 13:08 ` Camelia Alexandra Groza 2022-07-21 13:08 ` Camelia Alexandra Groza 2022-07-15 21:59 ` [PATCH net-next v3 35/47] net: dpaa: Use mac_dev variable in dpaa_netdev_init Sean Anderson 2022-07-15 21:59 ` Sean Anderson 2022-07-21 13:15 ` Camelia Alexandra Groza 2022-07-21 13:15 ` Camelia Alexandra Groza 2022-07-21 15:36 ` Sean Anderson 2022-07-21 15:36 ` Sean Anderson 2022-07-15 21:59 ` [PATCH net-next v3 36/47] soc: fsl: qbman: Add helper for sanity checking cgr ops Sean Anderson 2022-07-15 21:59 ` Sean Anderson 2022-07-15 21:59 ` Sean Anderson 2022-07-21 13:16 ` Camelia Alexandra Groza 2022-07-21 13:16 ` Camelia Alexandra Groza 2022-07-21 13:16 ` Camelia Alexandra Groza 2022-07-15 21:59 ` [PATCH net-next v3 37/47] soc: fsl: qbman: Add CGR update function Sean Anderson 2022-07-15 21:59 ` Sean Anderson 2022-07-15 21:59 ` Sean Anderson 2022-07-21 13:18 ` Camelia Alexandra Groza 2022-07-21 13:18 ` Camelia Alexandra Groza 2022-07-21 13:18 ` Camelia Alexandra Groza 2022-07-21 15:36 ` Sean Anderson 2022-07-21 15:36 ` Sean Anderson 2022-07-21 15:36 ` Sean Anderson 2022-07-15 21:59 ` [PATCH net-next v3 38/47] net: dpaa: Adjust queue depth on rate change Sean Anderson 2022-07-15 21:59 ` Sean Anderson 2022-07-15 21:59 ` Sean Anderson 2022-07-21 13:18 ` Camelia Alexandra Groza 2022-07-21 13:18 ` Camelia Alexandra Groza 2022-07-21 13:18 ` Camelia Alexandra Groza 2022-07-15 21:59 ` [PATCH net-next v3 39/47] net: fman: memac: Add serdes support Sean Anderson 2022-07-15 21:59 ` Sean Anderson 2022-07-21 13:30 ` Camelia Alexandra Groza 2022-07-21 13:30 ` Camelia Alexandra Groza 2022-07-21 15:38 ` Sean Anderson 2022-07-21 15:38 ` Sean Anderson 2022-07-22 12:43 ` Camelia Alexandra Groza 2022-07-22 12:43 ` Camelia Alexandra Groza 2022-07-15 21:59 ` [PATCH net-next v3 40/47] net: fman: memac: Use lynx pcs driver Sean Anderson 2022-07-15 21:59 ` Sean Anderson 2022-07-15 21:59 ` [PATCH net-next v3 41/47] [RFT] net: dpaa: Convert to phylink Sean Anderson 2022-07-15 21:59 ` Sean Anderson 2022-07-16 21:27 ` kernel test robot 2022-07-16 21:27 ` kernel test robot 2022-07-15 21:59 ` [PATCH net-next v3 42/47] powerpc: dts: qoriq: Add nodes for QSGMII PCSs Sean Anderson 2022-07-15 21:59 ` Sean Anderson 2022-07-15 21:59 ` Sean Anderson 2022-07-21 13:48 ` Camelia Alexandra Groza 2022-07-21 13:48 ` Camelia Alexandra Groza 2022-07-21 13:48 ` Camelia Alexandra Groza 2022-07-21 17:51 ` Sean Anderson 2022-07-21 17:51 ` Sean Anderson 2022-07-21 17:51 ` Sean Anderson 2022-07-15 21:59 ` [PATCH net-next v3 43/47] arm64: dts: layerscape: " Sean Anderson 2022-07-15 21:59 ` Sean Anderson 2022-07-15 21:59 ` Sean Anderson 2022-07-15 21:59 ` [PATCH net-next v3 44/47] arm64: dts: ls1046a: Add serdes bindings Sean Anderson 2022-07-15 21:59 ` Sean Anderson 2022-07-15 21:59 ` [PATCH net-next v3 45/47] arm64: dts: ls1088a: " Sean Anderson 2022-07-15 21:59 ` Sean Anderson 2022-07-15 21:59 ` [PATCH net-next v3 46/47] arm64: dts: ls1046ardb: " Sean Anderson 2022-07-15 21:59 ` Sean Anderson 2022-07-15 21:59 ` Sean Anderson 2022-07-21 14:20 ` Camelia Alexandra Groza 2022-07-21 14:20 ` Camelia Alexandra Groza 2022-07-21 14:20 ` Camelia Alexandra Groza 2022-07-21 15:40 ` Sean Anderson 2022-07-21 15:40 ` Sean Anderson 2022-07-21 15:40 ` Sean Anderson 2022-07-22 12:41 ` Camelia Alexandra Groza 2022-07-22 12:41 ` Camelia Alexandra Groza 2022-07-22 12:41 ` Camelia Alexandra Groza 2022-07-25 20:02 ` Sean Anderson 2022-07-25 20:02 ` Sean Anderson 2022-07-25 20:02 ` Sean Anderson 2022-07-26 11:35 ` Camelia Alexandra Groza 2022-07-26 11:35 ` Camelia Alexandra Groza 2022-07-26 11:35 ` Camelia Alexandra Groza 2022-07-15 21:59 ` [PATCH net-next v3 47/47] [WIP] arm64: dts: ls1088ardb: " Sean Anderson 2022-07-15 21:59 ` Sean Anderson 2022-07-15 21:59 ` Sean Anderson 2022-07-21 14:26 ` [PATCH net-next v3 00/47] [RFT] net: dpaa: Convert to phylink Camelia Alexandra Groza 2022-07-21 14:26 ` Camelia Alexandra Groza 2022-07-21 14:26 ` Camelia Alexandra Groza 2022-07-21 14:26 ` Camelia Alexandra Groza 2022-07-21 15:39 ` Sean Anderson 2022-07-21 15:39 ` Sean Anderson 2022-07-21 15:39 ` Sean Anderson 2022-07-21 15:39 ` Sean Anderson
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20220715215954.1449214-8-sean.anderson@seco.com \ --to=sean.anderson@seco.com \ --cc=alexandru.marginean@nxp.com \ --cc=andrew@lunn.ch \ --cc=davem@davemloft.net \ --cc=edumazet@google.com \ --cc=hkallweit1@gmail.com \ --cc=kuba@kernel.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux@armlinux.org.uk \ --cc=madalin.bucur@nxp.com \ --cc=netdev@vger.kernel.org \ --cc=olteanv@gmail.com \ --cc=pabeni@redhat.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.