Message ID | 0e0f42d5-d67e-52bb-20d2-d35c0866338a@gmail.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 216f78ea8cf6fae5140aeb55657ebdab71a05502 |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [net-next] r8169: add support for pause ethtool ops | expand |
Context | Check | Description |
---|---|---|
netdev/cover_letter | success | Link |
netdev/fixes_present | success | Link |
netdev/patch_count | success | Link |
netdev/tree_selection | success | Clearly marked for net-next |
netdev/subject_prefix | success | Link |
netdev/cc_maintainers | success | CCed 5 of 5 maintainers |
netdev/source_inline | success | Was 0 now: 0 |
netdev/verify_signedoff | success | Link |
netdev/module_param | success | Was 0 now: 0 |
netdev/build_32bit | success | Errors and warnings before: 0 this patch: 0 |
netdev/kdoc | success | Errors and warnings before: 0 this patch: 0 |
netdev/verify_fixes | success | Link |
netdev/checkpatch | success | total: 0 errors, 0 warnings, 0 checks, 40 lines checked |
netdev/build_allmodconfig_warn | success | Errors and warnings before: 0 this patch: 0 |
netdev/header_inline | success | Link |
Hello: This patch was applied to netdev/net-next.git (refs/heads/master): On Wed, 14 Apr 2021 08:23:15 +0200 you wrote: > This adds support for the [g|s]et_pauseparam ethtool ops. It considers > that the chip doesn't support pause frame use in jumbo mode. > > Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com> > --- > drivers/net/ethernet/realtek/r8169_main.c | 28 +++++++++++++++++++++++ > 1 file changed, 28 insertions(+) Here is the summary with links: - [net-next] r8169: add support for pause ethtool ops https://git.kernel.org/netdev/net-next/c/216f78ea8cf6 You are awesome, thank you! -- Deet-doot-dot, I am a bot. https://korg.docs.kernel.org/patchwork/pwbot.html
On Wed, 14 Apr 2021 08:23:15 +0200 Heiner Kallweit wrote: > This adds support for the [g|s]et_pauseparam ethtool ops. It considers > that the chip doesn't support pause frame use in jumbo mode. what happens if the MTU is changed afterwards?
On 15.04.2021 01:12, Jakub Kicinski wrote: > On Wed, 14 Apr 2021 08:23:15 +0200 Heiner Kallweit wrote: >> This adds support for the [g|s]et_pauseparam ethtool ops. It considers >> that the chip doesn't support pause frame use in jumbo mode. > > what happens if the MTU is changed afterwards? > This patch is complemented by 453a77894efa ("r8169: don't advertise pause in jumbo mode") that went via net. Changing MTU triggers rtl_jumbo_config() that aligns the pause parameters with the new MTU.
diff --git a/drivers/net/ethernet/realtek/r8169_main.c b/drivers/net/ethernet/realtek/r8169_main.c index eb6da93ac..1b48084f2 100644 --- a/drivers/net/ethernet/realtek/r8169_main.c +++ b/drivers/net/ethernet/realtek/r8169_main.c @@ -1910,6 +1910,32 @@ static void rtl8169_get_ringparam(struct net_device *dev, data->tx_pending = NUM_TX_DESC; } +static void rtl8169_get_pauseparam(struct net_device *dev, + struct ethtool_pauseparam *data) +{ + struct rtl8169_private *tp = netdev_priv(dev); + bool tx_pause, rx_pause; + + phy_get_pause(tp->phydev, &tx_pause, &rx_pause); + + data->autoneg = tp->phydev->autoneg; + data->tx_pause = tx_pause ? 1 : 0; + data->rx_pause = rx_pause ? 1 : 0; +} + +static int rtl8169_set_pauseparam(struct net_device *dev, + struct ethtool_pauseparam *data) +{ + struct rtl8169_private *tp = netdev_priv(dev); + + if (dev->mtu > ETH_DATA_LEN) + return -EOPNOTSUPP; + + phy_set_asym_pause(tp->phydev, data->rx_pause, data->tx_pause); + + return 0; +} + static const struct ethtool_ops rtl8169_ethtool_ops = { .supported_coalesce_params = ETHTOOL_COALESCE_USECS | ETHTOOL_COALESCE_MAX_FRAMES, @@ -1931,6 +1957,8 @@ static const struct ethtool_ops rtl8169_ethtool_ops = { .get_link_ksettings = phy_ethtool_get_link_ksettings, .set_link_ksettings = phy_ethtool_set_link_ksettings, .get_ringparam = rtl8169_get_ringparam, + .get_pauseparam = rtl8169_get_pauseparam, + .set_pauseparam = rtl8169_set_pauseparam, }; static void rtl_enable_eee(struct rtl8169_private *tp)
This adds support for the [g|s]et_pauseparam ethtool ops. It considers that the chip doesn't support pause frame use in jumbo mode. Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com> --- drivers/net/ethernet/realtek/r8169_main.c | 28 +++++++++++++++++++++++ 1 file changed, 28 insertions(+)