From patchwork Thu Apr 14 22:34:59 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Philippe Reynes X-Patchwork-Id: 610689 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 3qmFrx05Ryz9sDb for ; Fri, 15 Apr 2016 08:36:33 +1000 (AEST) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b=OZv232aq; dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753298AbcDNWgL (ORCPT ); Thu, 14 Apr 2016 18:36:11 -0400 Received: from mail-wm0-f68.google.com ([74.125.82.68]:33755 "EHLO mail-wm0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752508AbcDNWfM (ORCPT ); Thu, 14 Apr 2016 18:35:12 -0400 Received: by mail-wm0-f68.google.com with SMTP id y144so1564364wmd.0; Thu, 14 Apr 2016 15:35:11 -0700 (PDT) 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=zeHTU1PJ6VeIBhiVd+L93U8WMJKa04U6+iHSbNYbGVY=; b=OZv232aqsWcY2Y3M9eIM4IZDJsV0mb3HZIE6Q+dtLqZfQ0YgHWEcnWX9Q44LiW6TXu 9E02561EKEew9eBUzF5PJVfSUj/Vu4zmGF8T9yo12z8alE/RKE6KAznEJuknZ8RAGXYr WLq2GVeUNNyX3uNWg1R1SkynkkM4Mbzd7tOhmeeS2xubC8B9EXFtPGBfH/f8KuWMKPhA qJT1s1TlFVd0jQAYoOnf90UEePEILcw+wBL9h0zlYQjci8US428ejSdVJmXlO7AhzT4P GzgkDXVMzBMJWH1sYS2JtsCcW47aix/XNMskrToA+hNn/f1n5b1VVNRP75JDUeXxUXt1 xVWw== 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:in-reply-to :references; bh=zeHTU1PJ6VeIBhiVd+L93U8WMJKa04U6+iHSbNYbGVY=; b=SZZhbAQdXWxGYtkk5wMxg1YDAd3VHA7FgK0sgJd3o0vCAvYdXiVVpfLZCSSNy2Te97 Bk4K+V7tJZCsXYPvpeWK/tMyDjWTVY5rVgmttO3X2e2T5vr8Kao1TQ1lNC3pWQWigTab fWHy7fDA5FGlPTgp7zaZ6ttTCxCDQXpXXNVgMJ3yrUCc1RQ9CNWGMPYfY4jGHEKq2HlC e7uIXBhNQIH3c4iDiaIGlWDz5Y0IpgAHXsrfi+od7dw8rvsr4OnCxNTMN0YsyocyQAr2 jYBtrW/eJ/5KKfvkDUGFKppvTVxEiLCorbmn74QTrDOfOFQTmQXn6VqAOgoZ3xLHqEA8 7I9Q== X-Gm-Message-State: AOPr4FWvdVWCy1V2gCb+z/G3GZq83I5wKJVTxyNKJMlYFzSSb3+MfbMGsSBRTQlujBPsaw== X-Received: by 10.28.153.203 with SMTP id b194mr873744wme.3.1460673310988; Thu, 14 Apr 2016 15:35:10 -0700 (PDT) Received: from localhost.localdomain (bny93-7-88-161-33-221.fbx.proxad.net. [88.161.33.221]) by smtp.gmail.com with ESMTPSA id 188sm8647548wmk.6.2016.04.14.15.35.09 (version=TLSv1/SSLv3 cipher=OTHER); Thu, 14 Apr 2016 15:35:10 -0700 (PDT) From: Philippe Reynes To: davem@davemloft.net, decot@googlers.com, f.fainelli@gmail.com, fugang.duan@nxp.com Cc: linux-kernel@vger.kernel.org, netdev@vger.kernel.org, Philippe Reynes Subject: [PATCH 1/3] net: ethtool: export conversion function between u32 and link mode Date: Fri, 15 Apr 2016 00:34:59 +0200 Message-Id: <1460673301-10599-2-git-send-email-tremyfr@gmail.com> X-Mailer: git-send-email 1.7.4.4 In-Reply-To: <1460673301-10599-1-git-send-email-tremyfr@gmail.com> References: <1460673301-10599-1-git-send-email-tremyfr@gmail.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org The function convert_legacy_u32_to_link_mode and convert_link_mode_to_legacy_u32 may be used outside of ethtool.c. We rename them to ethtool_convert_... and export them, so we could use them in others drivers and modules. Signed-off-by: Philippe Reynes --- include/linux/ethtool.h | 7 +++++++ net/core/ethtool.c | 21 ++++++++++++--------- 2 files changed, 19 insertions(+), 9 deletions(-) diff --git a/include/linux/ethtool.h b/include/linux/ethtool.h index e2b7bf2..9ded8c6 100644 --- a/include/linux/ethtool.h +++ b/include/linux/ethtool.h @@ -150,6 +150,13 @@ extern int __ethtool_get_link_ksettings(struct net_device *dev, struct ethtool_link_ksettings *link_ksettings); +void ethtool_convert_legacy_u32_to_link_mode(unsigned long *dst, + u32 legacy_u32); + +/* return false if src had higher bits set. lower bits always updated. */ +bool ethtool_convert_link_mode_to_legacy_u32(u32 *legacy_u32, + const unsigned long *src); + /** * struct ethtool_ops - optional netdev operations * @get_settings: DEPRECATED, use %get_link_ksettings/%set_link_ksettings diff --git a/net/core/ethtool.c b/net/core/ethtool.c index f426c5a..81e3082 100644 --- a/net/core/ethtool.c +++ b/net/core/ethtool.c @@ -387,15 +387,17 @@ static int __ethtool_set_flags(struct net_device *dev, u32 data) return 0; } -static void convert_legacy_u32_to_link_mode(unsigned long *dst, u32 legacy_u32) +void ethtool_convert_legacy_u32_to_link_mode(unsigned long *dst, + u32 legacy_u32) { bitmap_zero(dst, __ETHTOOL_LINK_MODE_MASK_NBITS); dst[0] = legacy_u32; } +EXPORT_SYMBOL(ethtool_convert_legacy_u32_to_link_mode); /* return false if src had higher bits set. lower bits always updated. */ -static bool convert_link_mode_to_legacy_u32(u32 *legacy_u32, - const unsigned long *src) +bool ethtool_convert_link_mode_to_legacy_u32(u32 *legacy_u32, + const unsigned long *src) { bool retval = true; @@ -415,6 +417,7 @@ static bool convert_link_mode_to_legacy_u32(u32 *legacy_u32, *legacy_u32 = src[0]; return retval; } +EXPORT_SYMBOL(ethtool_convert_link_mode_to_legacy_u32); /* return false if legacy contained non-0 deprecated fields * transceiver/maxtxpkt/maxrxpkt. rest of ksettings always updated @@ -437,13 +440,13 @@ convert_legacy_settings_to_link_ksettings( legacy_settings->maxrxpkt) retval = false; - convert_legacy_u32_to_link_mode( + ethtool_convert_legacy_u32_to_link_mode( link_ksettings->link_modes.supported, legacy_settings->supported); - convert_legacy_u32_to_link_mode( + ethtool_convert_legacy_u32_to_link_mode( link_ksettings->link_modes.advertising, legacy_settings->advertising); - convert_legacy_u32_to_link_mode( + ethtool_convert_legacy_u32_to_link_mode( link_ksettings->link_modes.lp_advertising, legacy_settings->lp_advertising); link_ksettings->base.speed @@ -482,13 +485,13 @@ convert_link_ksettings_to_legacy_settings( * __u32 maxrxpkt; */ - retval &= convert_link_mode_to_legacy_u32( + retval &= ethtool_convert_link_mode_to_legacy_u32( &legacy_settings->supported, link_ksettings->link_modes.supported); - retval &= convert_link_mode_to_legacy_u32( + retval &= ethtool_convert_link_mode_to_legacy_u32( &legacy_settings->advertising, link_ksettings->link_modes.advertising); - retval &= convert_link_mode_to_legacy_u32( + retval &= ethtool_convert_link_mode_to_legacy_u32( &legacy_settings->lp_advertising, link_ksettings->link_modes.lp_advertising); ethtool_cmd_speed_set(legacy_settings, link_ksettings->base.speed);