From patchwork Sun Dec 31 11:58:37 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Marcin Wojtas X-Patchwork-Id: 10138105 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 4B503603EE for ; Sun, 31 Dec 2017 12:01:48 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 31D6128844 for ; Sun, 31 Dec 2017 12:01:48 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 2422628846; Sun, 31 Dec 2017 12:01:48 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-4.2 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_DNSWL_MED autolearn=unavailable version=3.3.1 Received: from bombadil.infradead.org (bombadil.infradead.org [65.50.211.133]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id AC6FD28844 for ; Sun, 31 Dec 2017 12:01:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:MIME-Version:Cc:List-Subscribe: List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:References: In-Reply-To:Message-Id:Date:Subject:To:From:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Owner; bh=P7d0RvDSCx0SfesVRxDmDFUmO94MM4jFZho7eEMVm6w=; b=VQeW6TzFzSNOPQ0wjZsXpdZ2iM H725kL/rnWCdbNZtVJgKXk3yOrVWtrSC4mxQQEuFJUQpUxa78GQowjO5YNEJ+NjwCRiWb+4xsDBHN exzeuRx5M9Ml3wCvynYK2BgtOTXw/jkqPdlEcOp92reDl8tyoefcvQRLvTA40vjH5TqgoOonZ/4AN u8se4qtpgY97r61YD2SJz17zYUrBsgMs0Yv/8mkhaUXo3TDzNBL8mAoKq1238xQNFnIAHDENzJdkW 63Xo13CQiQ4VgGg0CBw0NoHpPGPyFaWjOIt1i1Ub4AKZNAq5DtR8HMYdxO8ErWZAidbVclBrU/9jS DwC46HlA==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.89 #1 (Red Hat Linux)) id 1eVcJB-0002H9-86; Sun, 31 Dec 2017 12:01:41 +0000 Received: from mail-lf0-x244.google.com ([2a00:1450:4010:c07::244]) by bombadil.infradead.org with esmtps (Exim 4.89 #1 (Red Hat Linux)) id 1eVcGi-0007qp-S2 for linux-arm-kernel@lists.infradead.org; Sun, 31 Dec 2017 11:59:12 +0000 Received: by mail-lf0-x244.google.com with SMTP id m20so38718907lfi.6 for ; Sun, 31 Dec 2017 03:58:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=semihalf-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=bNAT0y0tuLP3KP1q1q4PpjvzgVJR2LG8mUxU6Y+V3J8=; b=Oswlm4Q7+hpomGDeCJRhxbhtS0gPidP5zdk3/HB/RWG8Y6Gm29igmyjx6fylRZQJTZ srSFZohdsz2148FuzJzmxH+k0dg0np4lb3Tr2FjMSwfNXeYcPKMvClZ+7LXRMTOvA4tI wh/OuQPWoB5yZQdWa2mIWW8PVM8ckr3No3Gbz1CNSVuf0eWqUBjcuRGUiWcj/6+hpAGY agPqno+JvODvM7g7SPN3IoubIlcPGAx4bWdDtYEBgcbWMDNfv8GjdHjF9Uvd3kJdN+o4 Nzq/kexuab1aAkULKQ3kcXOUh4wr95B+tos+hpAkpD3b5Ilygx5FelReDCL3FtNL73xC Hayg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=bNAT0y0tuLP3KP1q1q4PpjvzgVJR2LG8mUxU6Y+V3J8=; b=Z/utiVWUEKsrsrIJdMZMyqv1FebOkMn0z13P9SbqoXFDyPluItEAODztFGDMSVsxrk O+lwYcXhu/44Xok28yPbxQzAcElsxVVRvPCeRytGdB1N/xyeDQft/4R06+pyG9SoILHS 2F19Vioz80k5L4lvOp1ev9IMJKzz+w8XN4N03C0CLPRbXcB84+4WKeZtsGFLjHzEqcw9 yTfM40hlrgAZgRHXhaezaaD4rSSrEhMk2nCdO1hHXX0naV3vpKNqEJ0a6fEaYSO9dqt0 TWUh5dkwXuUANAapkMjzN/H+MaoZmNfp0MqO+MKkQ8B5KCridscATRiKLqjVb9j5PJmX AOtA== X-Gm-Message-State: AKGB3mKmjad0fjQZ8afm7cs/HwKwQeEKMpUWopvTykdM13txni+eJbWn Hq0+ASwOE5MFrzOUi3L2B0x9jQ== X-Google-Smtp-Source: ACJfBoup7ovxMEtg8pxT9Oq62RjUTLmq0D2ixli9oupXGnQSxP0HkNZnW8aNGQbxnZjII4cdICn9zw== X-Received: by 10.46.46.3 with SMTP id u3mr1582856lju.117.1514721534220; Sun, 31 Dec 2017 03:58:54 -0800 (PST) Received: from gilgamesh.semihalf.com (31-172-191-173.noc.fibertech.net.pl. [31.172.191.173]) by smtp.gmail.com with ESMTPSA id f10sm8646298lff.56.2017.12.31.03.58.52 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Sun, 31 Dec 2017 03:58:53 -0800 (PST) From: Marcin Wojtas To: linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, netdev@vger.kernel.org, linux-acpi@vger.kernel.org Subject: [net-next: PATCH v2 2/5] device property: Introduce fwnode_get_phy_mode() Date: Sun, 31 Dec 2017 12:58:37 +0100 Message-Id: <1514721520-18964-3-git-send-email-mw@semihalf.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1514721520-18964-1-git-send-email-mw@semihalf.com> References: <1514721520-18964-1-git-send-email-mw@semihalf.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20171231_035909_065269_5C7BE790 X-CRM114-Status: GOOD ( 11.36 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: thomas.petazzoni@free-electrons.com, andrew@lunn.ch, f.fainelli@gmail.com, graeme.gregory@linaro.org, ard.biesheuvel@linaro.org, jaz@semihalf.com, antoine.tenart@free-electrons.com, rafael.j.wysocki@intel.com, linux@armlinux.org.uk, nadavh@marvell.com, neta@marvell.com, ezequiel.garcia@free-electrons.com, tn@semihalf.com, gregory.clement@free-electrons.com, mw@semihalf.com, davem@davemloft.net MIME-Version: 1.0 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Virus-Scanned: ClamAV using ClamSMTP Until now there were two almost identical functions for obtaining network PHY mode - of_get_phy_mode() and, more generic, device_get_phy_mode(). However it is not uncommon, that the network interface is represented as a child of the actual controller, hence it is not associated directly to any struct device, required by the latter routine. This commit allows for getting the PHY mode for children nodes in the ACPI world by introducing a new function - fwnode_get_phy_mode(). This commit also changes device_get_phy_mode() routine to be its wrapper, in order to prevent unnecessary duplication. Signed-off-by: Marcin Wojtas Acked-by: Rafael J. Wysocki --- drivers/base/property.c | 24 ++++++++++++++++---- include/linux/property.h | 1 + 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/drivers/base/property.c b/drivers/base/property.c index f261d1a..7c4a53d 100644 --- a/drivers/base/property.c +++ b/drivers/base/property.c @@ -1126,21 +1126,21 @@ enum dev_dma_attr device_get_dma_attr(struct device *dev) EXPORT_SYMBOL_GPL(device_get_dma_attr); /** - * device_get_phy_mode - Get phy mode for given device - * @dev: Pointer to the given device + * fwnode_get_phy_mode - Get phy mode for given firmware node + * @fwnode: Pointer to the given node * * The function gets phy interface string from property 'phy-mode' or * 'phy-connection-type', and return its index in phy_modes table, or errno in * error case. */ -int device_get_phy_mode(struct device *dev) +int fwnode_get_phy_mode(struct fwnode_handle *fwnode) { const char *pm; int err, i; - err = device_property_read_string(dev, "phy-mode", &pm); + err = fwnode_property_read_string(fwnode, "phy-mode", &pm); if (err < 0) - err = device_property_read_string(dev, + err = fwnode_property_read_string(fwnode, "phy-connection-type", &pm); if (err < 0) return err; @@ -1151,6 +1151,20 @@ int device_get_phy_mode(struct device *dev) return -ENODEV; } +EXPORT_SYMBOL_GPL(fwnode_get_phy_mode); + +/** + * device_get_phy_mode - Get phy mode for given device + * @dev: Pointer to the given device + * + * The function gets phy interface string from property 'phy-mode' or + * 'phy-connection-type', and return its index in phy_modes table, or errno in + * error case. + */ +int device_get_phy_mode(struct device *dev) +{ + return fwnode_get_phy_mode(dev_fwnode(dev)); +} EXPORT_SYMBOL_GPL(device_get_phy_mode); static void *fwnode_get_mac_addr(struct fwnode_handle *fwnode, diff --git a/include/linux/property.h b/include/linux/property.h index 35620e0..9b13332 100644 --- a/include/linux/property.h +++ b/include/linux/property.h @@ -279,6 +279,7 @@ int device_get_phy_mode(struct device *dev); void *device_get_mac_address(struct device *dev, char *addr, int alen); +int fwnode_get_phy_mode(struct fwnode_handle *fwnode); void *fwnode_get_mac_address(struct fwnode_handle *fwnode, char *addr, int alen); struct fwnode_handle *fwnode_graph_get_next_endpoint(