Path: csiph.com!news.mixmin.net!news.unit0.net!news.panservice.it!bofh.it!news.nic.it!robomod From: Philippe Reynes Newsgroups: linux.kernel Subject: [PATCH] net: xgbe: use new api ethtool_{get|set}_link_ksettings Date: Sun, 06 Nov 2016 15:00:02 +0100 Message-ID: X-Original-To: thomas.lendacky@amd.com, davem@davemloft.net Dkim-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id; bh=PgPKNGd0qs6j7vkeVUYKUFLdp+azZpHkr488dkk4Vi8=; b=UTicPl1qiVWHGqcxMDfLMhhymBVm7WyJDGUL89yKjMOcsywSOeNf/IROGVU1fKhDkR Lm2OHiNfn57xera8YErhu20fiJazPWxTY0rroGW7d6N/NdH3eaeXyZ2ONNu3x6SOnbE/ A2SvB4IBFSx9FtX1u5lFzJg2K87jaBgRyxf3wx1cr65pOizgQUcMX7P0f4nPBCpAnBxL nK0xQafI/GpWmVIICaZlbU5Zt3p9SbyLQQPB+4o84Om/zbNYGryoz+g34rvks8Mgo8dE aMJA74ndRjrbZVgyt1NG0K9pBR7yB7xBlpL+Db9ufbDnU5a4243cYYSm4wPp6+sPPjae EXFw== X-Google-Dkim-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=PgPKNGd0qs6j7vkeVUYKUFLdp+azZpHkr488dkk4Vi8=; b=HJ5tQdYkRm5wuqLrIFJAQ4bOLAT2ii50xaKNnspn3iZpQwt5UTtWd1361VsFZ+fqUk R1V0FA1w5nHH9jAVM0Ol7m6vrax3g5RIlkTyuoy5mIQpqBQ2JBGOTrjdNS/+EKWvrTeq qlM9FvFh28bSAs6a5i9ZRzut45H1M/PPO4mEr+WtoFqM7bJLt5cIhfVYQezkHZc9gS7U Ug92L0h0Gl0aj8rG8BEB/hQMm70p1sIEg1xzATfhjfaidVbT0PTp7Fm/1uzjrHrs1hIy e5tKGdtI6mFnYBjWQ8mAz0+9OdjIoIvBc1/gDUqT+vnx3UIavsQ79jbZS3tMMNK/LpSM dGgA== X-Gm-Message-State: ABUngvcZkke/FFCyeuw3x/y1lqmepzgfztQCTRut707hmD7A3TqI7eTtpYTlmlwCMQE4cA== X-Received: by 10.28.72.3 with SMTP id v3mr4763935wma.20.1478440631620; Sun, 06 Nov 2016 05:57:11 -0800 (PST) X-Mailer: git-send-email 1.7.4.4 Sender: robomod@news.nic.it List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Approved: robomod@news.nic.it Lines: 148 Organization: linux.* mail to news gateway X-Original-Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Philippe Reynes X-Original-Date: Sun, 6 Nov 2016 14:57:04 +0100 X-Original-Message-ID: <1478440624-23565-1-git-send-email-tremyfr@gmail.com> X-Original-Sender: linux-kernel-owner@vger.kernel.org Xref: csiph.com linux.kernel:1515700 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/amd/xgbe/xgbe-ethtool.c | 68 ++++++++++++++------------ 1 files changed, 37 insertions(+), 31 deletions(-) diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-ethtool.c b/drivers/net/ethernet/amd/xgbe/xgbe-ethtool.c index 46c959b..920566a 100644 --- a/drivers/net/ethernet/amd/xgbe/xgbe-ethtool.c +++ b/drivers/net/ethernet/amd/xgbe/xgbe-ethtool.c @@ -272,80 +272,86 @@ static int xgbe_set_pauseparam(struct net_device *netdev, return ret; } -static int xgbe_get_settings(struct net_device *netdev, - struct ethtool_cmd *cmd) +static int xgbe_get_link_ksettings(struct net_device *netdev, + struct ethtool_link_ksettings *cmd) { struct xgbe_prv_data *pdata = netdev_priv(netdev); - cmd->phy_address = pdata->phy.address; + cmd->base.phy_address = pdata->phy.address; - cmd->supported = pdata->phy.supported; - cmd->advertising = pdata->phy.advertising; - cmd->lp_advertising = pdata->phy.lp_advertising; + ethtool_convert_legacy_u32_to_link_mode(cmd->link_modes.supported, + pdata->phy.supported); + ethtool_convert_legacy_u32_to_link_mode(cmd->link_modes.advertising, + pdata->phy.advertising); + ethtool_convert_legacy_u32_to_link_mode(cmd->link_modes.lp_advertising, + pdata->phy.lp_advertising); - cmd->autoneg = pdata->phy.autoneg; - ethtool_cmd_speed_set(cmd, pdata->phy.speed); - cmd->duplex = pdata->phy.duplex; + cmd->base.autoneg = pdata->phy.autoneg; + cmd->base.speed = pdata->phy.speed; + cmd->base.duplex = pdata->phy.duplex; - cmd->port = PORT_NONE; - cmd->transceiver = XCVR_INTERNAL; + cmd->base.port = PORT_NONE; return 0; } -static int xgbe_set_settings(struct net_device *netdev, - struct ethtool_cmd *cmd) +static int xgbe_set_link_ksettings(struct net_device *netdev, + const struct ethtool_link_ksettings *cmd) { struct xgbe_prv_data *pdata = netdev_priv(netdev); + u32 advertising; u32 speed; int ret; - speed = ethtool_cmd_speed(cmd); + speed = cmd->base.speed; - if (cmd->phy_address != pdata->phy.address) { + if (cmd->base.phy_address != pdata->phy.address) { netdev_err(netdev, "invalid phy address %hhu\n", - cmd->phy_address); + cmd->base.phy_address); return -EINVAL; } - if ((cmd->autoneg != AUTONEG_ENABLE) && - (cmd->autoneg != AUTONEG_DISABLE)) { + if ((cmd->base.autoneg != AUTONEG_ENABLE) && + (cmd->base.autoneg != AUTONEG_DISABLE)) { netdev_err(netdev, "unsupported autoneg %hhu\n", - cmd->autoneg); + cmd->base.autoneg); return -EINVAL; } - if (cmd->autoneg == AUTONEG_DISABLE) { + if (cmd->base.autoneg == AUTONEG_DISABLE) { if (!pdata->phy_if.phy_valid_speed(pdata, speed)) { netdev_err(netdev, "unsupported speed %u\n", speed); return -EINVAL; } - if (cmd->duplex != DUPLEX_FULL) { + if (cmd->base.duplex != DUPLEX_FULL) { netdev_err(netdev, "unsupported duplex %hhu\n", - cmd->duplex); + cmd->base.duplex); return -EINVAL; } } + ethtool_convert_link_mode_to_legacy_u32(&advertising, + cmd->link_modes.advertising); + netif_dbg(pdata, link, netdev, "requested advertisement %#x, phy supported %#x\n", - cmd->advertising, pdata->phy.supported); + advertising, pdata->phy.supported); - cmd->advertising &= pdata->phy.supported; - if ((cmd->autoneg == AUTONEG_ENABLE) && !cmd->advertising) { + advertising &= pdata->phy.supported; + if ((cmd->base.autoneg == AUTONEG_ENABLE) && !advertising) { netdev_err(netdev, "unsupported requested advertisement\n"); return -EINVAL; } ret = 0; - pdata->phy.autoneg = cmd->autoneg; + pdata->phy.autoneg = cmd->base.autoneg; pdata->phy.speed = speed; - pdata->phy.duplex = cmd->duplex; - pdata->phy.advertising = cmd->advertising; + pdata->phy.duplex = cmd->base.duplex; + pdata->phy.advertising = advertising; - if (cmd->autoneg == AUTONEG_ENABLE) + if (cmd->base.autoneg == AUTONEG_ENABLE) pdata->phy.advertising |= ADVERTISED_Autoneg; else pdata->phy.advertising &= ~ADVERTISED_Autoneg; @@ -585,8 +591,6 @@ static int xgbe_get_ts_info(struct net_device *netdev, } static const struct ethtool_ops xgbe_ethtool_ops = { - .get_settings = xgbe_get_settings, - .set_settings = xgbe_set_settings, .get_drvinfo = xgbe_get_drvinfo, .get_msglevel = xgbe_get_msglevel, .set_msglevel = xgbe_set_msglevel, @@ -604,6 +608,8 @@ static int xgbe_get_ts_info(struct net_device *netdev, .get_rxfh = xgbe_get_rxfh, .set_rxfh = xgbe_set_rxfh, .get_ts_info = xgbe_get_ts_info, + .get_link_ksettings = xgbe_get_link_ksettings, + .set_link_ksettings = xgbe_set_link_ksettings, }; const struct ethtool_ops *xgbe_get_ethtool_ops(void) -- 1.7.4.4