From patchwork Mon Dec 18 09:17:58 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Marcin Wojtas X-Patchwork-Id: 10118583 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 6EE9960390 for ; Mon, 18 Dec 2017 09:31:16 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 64F0528BEB for ; Mon, 18 Dec 2017 09:31:16 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 596BE28CAA; Mon, 18 Dec 2017 09:31:16 +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 BA95528BEB for ; Mon, 18 Dec 2017 09:31:15 +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=Z+DQYcTfrE6gN3q2BoNx8tuub1 xY514Cy7ZRr5pqvKbm5riLillrhtFn/HKjga8UKs8PQo60RFkz9Xunk84Qd6584v0w72CSaPFEj2l wXWAZBuFYKYo2ppV9ALtOCzFpCvJUlZWZvdviqBMqhOqOmCMF/CCOhbBZ5gQB/tDt97i5CxPVtceM /g8fPutWjMW7fpiSVdxlc6tAVEdQZCx7BLoPg7RiweOHoyugLr5tdavMHbQoquRDsRYrgQaXbvkPP AC/cGISqkWLpIUv9bhe9pPqvRDBYqo6fYmc6so1DPK1eOu9wQ3To1OE9YczeC34J1CdAGqF5RzLd5 JS/vErIQ==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.87 #1 (Red Hat Linux)) id 1eQrlS-0006G3-Ip; Mon, 18 Dec 2017 09:31:14 +0000 Received: from mail-lf0-x243.google.com ([2a00:1450:4010:c07::243]) by bombadil.infradead.org with esmtps (Exim 4.87 #1 (Red Hat Linux)) id 1eQrZD-0005Lh-F0 for linux-arm-kernel@lists.infradead.org; Mon, 18 Dec 2017 09:18:40 +0000 Received: by mail-lf0-x243.google.com with SMTP id x204so16905054lfa.11 for ; Mon, 18 Dec 2017 01:18:16 -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=vEGlVfvIc8Me8213FBUuOYrBfLWE3dhnd655ix3a1o81O5LADBCyQPAe4Hwz10Q3fl 8VeQ49+xTaabpPpqX4Jsltqo4JZ/cBnY99YroO4AxxUrxcaJmBrfQpdjsTRjCITMrSBj WTc4jqfPj426mjHHB0CMeV7PFb9qUYIHNHQBRFDPi5dMctVhx5lXFSjkj5YwS0GFFGXn 4ppxOlT2Y7Z2LTFee2GCd+PaUrB/2TiA+ryhErgEVnEzNZWfmoQYhOoam8uWf1RulG/O YZ5cO2FNjWVwrFXjXAgmba7uIUaaH1U0tp85nXuPIxIqWo7k0c3YDC3lPnRcFZm5Qkqs RLuw== 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=CiRsCOMUKpMMLKQS327XAQkxsAhe+nY7XlyLFpvss2XeDnXPTYxZO43cnC5QAogY87 s2/T1PBqwUZXmxHVJB9JaMl4qB4OwhKytIGXghcPKpL/9B7tWbSWlgJj+yXpBkSlZHYg CyIDi9QKPSpOijEQvpKTroQqfaqj44f+hlIKTHGhxBAOokE3gZuXXDOxjxSZxgjdDdsI 22+DaohIkTXlQvCfJypR31RMvhqhOo3+8LJvS5jkf3u6Nrp29Z4AouU61uBbIy6ynokb /dUnzgSWdsT+wgPyK/sXpQPbCQBgdH1k9zJaBwb54l8IkrnegFL95lVg3C0jxNV9DvwK UY1w== X-Gm-Message-State: AKGB3mKzlTblrefutX8QWRMMW0zzjXu7vrrCEw8y+aQiSN7V1CYZD03E ZetmuxMBkzsTSb9dyWBXC0wU/g== X-Google-Smtp-Source: ACJfBosqjVKT7GvsY2a44/ODq9lzaSQzVZTbym9qUIp2tlE78a78s68VGRkZP1Z4cl9JIz9jTKQ7RA== X-Received: by 10.46.4.2 with SMTP id 2mr10762096lje.133.1513588695006; Mon, 18 Dec 2017 01:18:15 -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 r16sm2407186ljd.18.2017.12.18.01.18.13 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 18 Dec 2017 01:18:14 -0800 (PST) From: Marcin Wojtas To: linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, netdev@vger.kernel.org Subject: [net-next: PATCH 2/8] device property: Introduce fwnode_get_phy_mode() Date: Mon, 18 Dec 2017 10:17:58 +0100 Message-Id: <1513588684-15647-3-git-send-email-mw@semihalf.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1513588684-15647-1-git-send-email-mw@semihalf.com> References: <1513588684-15647-1-git-send-email-mw@semihalf.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20171218_011835_766250_118DE562 X-CRM114-Status: GOOD ( 11.31 ) 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, linux@arm.linux.org.uk, ard.biesheuvel@linaro.org, jaz@semihalf.com, antoine.tenart@free-electrons.com, rafael.j.wysocki@intel.com, 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 --- 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(