From patchwork Fri Jan 31 05:41:05 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Max Filippov X-Patchwork-Id: 315517 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 83C8B2C00BE for ; Fri, 31 Jan 2014 16:52:57 +1100 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751419AbaAaFvy (ORCPT ); Fri, 31 Jan 2014 00:51:54 -0500 Received: from mail-lb0-f171.google.com ([209.85.217.171]:62194 "EHLO mail-lb0-f171.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751101AbaAaFvP (ORCPT ); Fri, 31 Jan 2014 00:51:15 -0500 Received: by mail-lb0-f171.google.com with SMTP id c11so3176851lbj.30 for ; Thu, 30 Jan 2014 21:51:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=1I4lFngz3+0LT/156qV+hjzuUxbbt5eHKtoe6ASQjRo=; b=GRE2EPpQEThPSV5nuKtm4M1sshzq4FaC5oVfV2X+mKM2Glzw3H+loGIUfLeF0+jKf+ SlMDgBVDICUM0sCtu4WdN5CD58NJmAOGbBCA90eiQr1K6Qfuvu2g4gQ5h7c3O86d5DtW zkBWGppFPlkas1hg4WzP8WOFCQlRw8kbHaoycFyy1CMAI4i9XTDaqh2bB/WaraD7lXxn D4Ub9lfaKizyp98pHQUEq+RY/Uh8CwGKOp4CYmCwUCjjT/frfCKFLsOEj4QHcuzg4lR3 9Zsqp1hZVxW0j40WTMi4dL6t6XrMrSP6kvspBNk/UP0TcQDPvLowIb8sjdYI8NCXFFVl cJSA== X-Received: by 10.152.203.193 with SMTP id ks1mr12348182lac.0.1391147473549; Thu, 30 Jan 2014 21:51:13 -0800 (PST) Received: from octofox.metropolis ([188.134.19.124]) by mx.google.com with ESMTPSA id z3sm12379172lag.10.2014.01.30.21.51.12 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 30 Jan 2014 21:51:12 -0800 (PST) From: Max Filippov To: netdev@vger.kernel.org, linux-kernel@vger.kernel.org Cc: "David S. Miller" , Ben Hutchings , Florian Fainelli , Marc Gauthier , Max Filippov Subject: [PATCH v2 2/4] net: ethoc: implement ethtool get/set settings Date: Fri, 31 Jan 2014 09:41:05 +0400 Message-Id: <1391146867-30508-3-git-send-email-jcmvbkbc@gmail.com> X-Mailer: git-send-email 1.8.1.4 In-Reply-To: <1391146867-30508-1-git-send-email-jcmvbkbc@gmail.com> References: <1391146867-30508-1-git-send-email-jcmvbkbc@gmail.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Signed-off-by: Max Filippov Reviewed-by: Ben Hutchings --- Changes v1->v2: - fix {get,set}_settings return code in case there's no PHY. drivers/net/ethernet/ethoc.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/drivers/net/ethernet/ethoc.c b/drivers/net/ethernet/ethoc.c index 0623c20..779d3c3 100644 --- a/drivers/net/ethernet/ethoc.c +++ b/drivers/net/ethernet/ethoc.c @@ -890,7 +890,31 @@ out: return NETDEV_TX_OK; } +static int ethoc_get_settings(struct net_device *dev, struct ethtool_cmd *cmd) +{ + struct ethoc *priv = netdev_priv(dev); + struct phy_device *phydev = priv->phy; + + if (!phydev) + return -EOPNOTSUPP; + + return phy_ethtool_gset(phydev, cmd); +} + +static int ethoc_set_settings(struct net_device *dev, struct ethtool_cmd *cmd) +{ + struct ethoc *priv = netdev_priv(dev); + struct phy_device *phydev = priv->phy; + + if (!phydev) + return -EOPNOTSUPP; + + return phy_ethtool_sset(phydev, cmd); +} + const struct ethtool_ops ethoc_ethtool_ops = { + .get_settings = ethoc_get_settings, + .set_settings = ethoc_set_settings, .get_link = ethtool_op_get_link, .get_ts_info = ethtool_op_get_ts_info, };