Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753058AbcKHFwo (ORCPT ); Tue, 8 Nov 2016 00:52:44 -0500 Received: from mail-it0-f67.google.com ([209.85.214.67]:36136 "EHLO mail-it0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752510AbcKHFwl (ORCPT ); Tue, 8 Nov 2016 00:52:41 -0500 From: Jes Sorensen X-Google-Original-From: Jes Sorensen Subject: Re: [PATCH] net: alteon: acenic: use new api ethtool_{get|set}_link_ksettings To: Philippe Reynes , davem@davemloft.net References: <1478359074-23941-1-git-send-email-tremyfr@gmail.com> Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org Message-ID: Date: Tue, 8 Nov 2016 00:52:38 -0500 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.4.0 MIME-Version: 1.0 In-Reply-To: <1478359074-23941-1-git-send-email-tremyfr@gmail.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 5252 Lines: 149 On 11/05/16 11:17, Philippe Reynes wrote: > The ethtool api {get|set}_settings is deprecated. > We move this driver to new api {get|set}_link_ksettings. > > Signed-off-by: Philippe Reynes > --- > drivers/net/ethernet/alteon/acenic.c | 65 ++++++++++++++++++--------------- > 1 files changed, 35 insertions(+), 30 deletions(-) Nothing that sticks out to me Acked-by: Jes Sorensen Jes > diff --git a/drivers/net/ethernet/alteon/acenic.c b/drivers/net/ethernet/alteon/acenic.c > index a5c1e29..16f0c70 100644 > --- a/drivers/net/ethernet/alteon/acenic.c > +++ b/drivers/net/ethernet/alteon/acenic.c > @@ -429,14 +429,16 @@ > "acenic.c: v0.92 08/05/2002 Jes Sorensen, linux-acenic@SunSITE.dk\n" > " http://home.cern.ch/~jes/gige/acenic.html\n"; > > -static int ace_get_settings(struct net_device *, struct ethtool_cmd *); > -static int ace_set_settings(struct net_device *, struct ethtool_cmd *); > +static int ace_get_link_ksettings(struct net_device *, > + struct ethtool_link_ksettings *); > +static int ace_set_link_ksettings(struct net_device *, > + const struct ethtool_link_ksettings *); > static void ace_get_drvinfo(struct net_device *, struct ethtool_drvinfo *); > > static const struct ethtool_ops ace_ethtool_ops = { > - .get_settings = ace_get_settings, > - .set_settings = ace_set_settings, > .get_drvinfo = ace_get_drvinfo, > + .get_link_ksettings = ace_get_link_ksettings, > + .set_link_ksettings = ace_set_link_ksettings, > }; > > static void ace_watchdog(struct net_device *dev); > @@ -2579,43 +2581,44 @@ static int ace_change_mtu(struct net_device *dev, int new_mtu) > return 0; > } > > -static int ace_get_settings(struct net_device *dev, struct ethtool_cmd *ecmd) > +static int ace_get_link_ksettings(struct net_device *dev, > + struct ethtool_link_ksettings *cmd) > { > struct ace_private *ap = netdev_priv(dev); > struct ace_regs __iomem *regs = ap->regs; > u32 link; > + u32 supported; > > - memset(ecmd, 0, sizeof(struct ethtool_cmd)); > - ecmd->supported = > - (SUPPORTED_10baseT_Half | SUPPORTED_10baseT_Full | > - SUPPORTED_100baseT_Half | SUPPORTED_100baseT_Full | > - SUPPORTED_1000baseT_Half | SUPPORTED_1000baseT_Full | > - SUPPORTED_Autoneg | SUPPORTED_FIBRE); > + memset(cmd, 0, sizeof(struct ethtool_link_ksettings)); > > - ecmd->port = PORT_FIBRE; > - ecmd->transceiver = XCVR_INTERNAL; > + supported = (SUPPORTED_10baseT_Half | SUPPORTED_10baseT_Full | > + SUPPORTED_100baseT_Half | SUPPORTED_100baseT_Full | > + SUPPORTED_1000baseT_Half | SUPPORTED_1000baseT_Full | > + SUPPORTED_Autoneg | SUPPORTED_FIBRE); > + > + cmd->base.port = PORT_FIBRE; > > link = readl(®s->GigLnkState); > - if (link & LNK_1000MB) > - ethtool_cmd_speed_set(ecmd, SPEED_1000); > - else { > + if (link & LNK_1000MB) { > + cmd->base.speed = SPEED_1000; > + } else { > link = readl(®s->FastLnkState); > if (link & LNK_100MB) > - ethtool_cmd_speed_set(ecmd, SPEED_100); > + cmd->base.speed = SPEED_100; > else if (link & LNK_10MB) > - ethtool_cmd_speed_set(ecmd, SPEED_10); > + cmd->base.speed = SPEED_10; > else > - ethtool_cmd_speed_set(ecmd, 0); > + cmd->base.speed = 0; > } > if (link & LNK_FULL_DUPLEX) > - ecmd->duplex = DUPLEX_FULL; > + cmd->base.duplex = DUPLEX_FULL; > else > - ecmd->duplex = DUPLEX_HALF; > + cmd->base.duplex = DUPLEX_HALF; > > if (link & LNK_NEGOTIATE) > - ecmd->autoneg = AUTONEG_ENABLE; > + cmd->base.autoneg = AUTONEG_ENABLE; > else > - ecmd->autoneg = AUTONEG_DISABLE; > + cmd->base.autoneg = AUTONEG_DISABLE; > > #if 0 > /* > @@ -2626,13 +2629,15 @@ static int ace_get_settings(struct net_device *dev, struct ethtool_cmd *ecmd) > ecmd->txcoal = readl(®s->TuneTxCoalTicks); > ecmd->rxcoal = readl(®s->TuneRxCoalTicks); > #endif > - ecmd->maxtxpkt = readl(®s->TuneMaxTxDesc); > - ecmd->maxrxpkt = readl(®s->TuneMaxRxDesc); > + > + ethtool_convert_legacy_u32_to_link_mode(cmd->link_modes.supported, > + supported); > > return 0; > } > > -static int ace_set_settings(struct net_device *dev, struct ethtool_cmd *ecmd) > +static int ace_set_link_ksettings(struct net_device *dev, > + const struct ethtool_link_ksettings *cmd) > { > struct ace_private *ap = netdev_priv(dev); > struct ace_regs __iomem *regs = ap->regs; > @@ -2655,11 +2660,11 @@ static int ace_set_settings(struct net_device *dev, struct ethtool_cmd *ecmd) > LNK_RX_FLOW_CTL_Y | LNK_NEG_FCTL; > if (!ACE_IS_TIGON_I(ap)) > link |= LNK_TX_FLOW_CTL_Y; > - if (ecmd->autoneg == AUTONEG_ENABLE) > + if (cmd->base.autoneg == AUTONEG_ENABLE) > link |= LNK_NEGOTIATE; > - if (ethtool_cmd_speed(ecmd) != speed) { > + if (cmd->base.speed != speed) { > link &= ~(LNK_1000MB | LNK_100MB | LNK_10MB); > - switch (ethtool_cmd_speed(ecmd)) { > + switch (cmd->base.speed) { > case SPEED_1000: > link |= LNK_1000MB; > break; > @@ -2672,7 +2677,7 @@ static int ace_set_settings(struct net_device *dev, struct ethtool_cmd *ecmd) > } > } > > - if (ecmd->duplex == DUPLEX_FULL) > + if (cmd->base.duplex == DUPLEX_FULL) > link |= LNK_FULL_DUPLEX; > > if (link != ap->link) { >