From patchwork Thu Jan 18 12:31:39 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Marcin Wojtas X-Patchwork-Id: 10173125 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 06A1D603B5 for ; Thu, 18 Jan 2018 12:36:28 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id F0BCF27C05 for ; Thu, 18 Jan 2018 12:36:27 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id E54D927D29; Thu, 18 Jan 2018 12:36:27 +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 9774927C05 for ; Thu, 18 Jan 2018 12:36:26 +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=lzAaf90weG/rt83XXg1Kn12jPpVK/n2AN7Mw+XkntmU=; b=aCHq63okgeMHu9ls8h9fm1Y/RX c0bFMQoGL8a+fFwQFFTwGVx+mmxf0bNDOoIlaajoC9AsaBqTEd5F7JwyDFmugRoG9+i46dmBEReb4 vIXUz8kbYZoA04UmPvLSh2CrjwT8xnzqdtvljeV/B5+CLjU8IG+KMsTfI93CEUyOcJQ/RPJaK2Koe tzlpAQ9L/L8/Tiq/Zjo9P4n2XwjAH45Vu+opX5+4F3sC3UWxMT89YDjZ0AxGtKgx+SFR08b8Cfwyu fhAbMLCLT3gNcDjexFEc/EW52Sgt1ETiy4JRs5spyMm0Rmj47A2wVRU1QmSb4KStOFd2TG2lpADny BBVhmbxA==; 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 1ec9Qf-0006Ir-36; Thu, 18 Jan 2018 12:36:25 +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 1ec9Ma-0000gk-Tc for linux-arm-kernel@lists.infradead.org; Thu, 18 Jan 2018 12:32:20 +0000 Received: by mail-lf0-x244.google.com with SMTP id k19so6191132lfj.1 for ; Thu, 18 Jan 2018 04:32:02 -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=jKprDKMODG9MbDYI6DimVorOrRWyWIOEnGpxRAChLjU=; b=Eg4aBfDCVy1mhse19VX+M5K0gyNqgnO7i2NYCVTi/Ar0xpypKZeplTCp6POvyJ25Ye UNrvzNqB+2zI1CfizCIj0zV3hDRNoF86jnain9fyaQpzibWe3v0Hp73/si7vZ84flX6v DaKVIEUY7C0upo5Vx9yuhCuJCUr7PLKcqRoGDDafXWAFcQYCXRnx8maQykbpRzpxTtTw YlgBZXXOBIj50vYs93uDRJLUnhdPAXh1f6igp50PwPYG6OFOXUY2Fb/lLceLuBGR4ZGM dre2WNcV3hIY8EgWMb048wURpHjXZFk4HvDb3veSAeCxf6WYcQypS9yefM7a7JMW2Ji3 9luQ== 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=jKprDKMODG9MbDYI6DimVorOrRWyWIOEnGpxRAChLjU=; b=tsK49qx/HZrOOgb8sViFO9tEWAfKkPygt2OmoOUVMWHVYTJlDrD5B3KYaFFVdZD2oI 5mNfY+FrDXeisgm1A3ExB0S3ERW8TK3amJZRqT7jTOHLvon6i9F7TNvhzzROkTMAxYV9 ifxACZYc5YoN6hA6aubAK7OWeu2CWOu9icwDfOckwFuGep1fJyPcufpxKFM3J1QgAYa1 HTFpzcmgNVjvsgrtIYVvZroK1gMREBGvvwKAgPeHtQVaoiiRX8yJCdg8sviMuMwZ9Fdx N/7z7kNQymunboBg/S4dn7/lRII6vUCb2m4Q11gmgyqeNI4JX9lMkplWKluL33jlusTo F9TQ== X-Gm-Message-State: AKwxytfBI1O6DeV3VYnwXFDNQgUuaECUePZYDFxUfvQHZaEQED2fORpJ lcd9o/kjduCcbaTbETnU+Li0fg== X-Google-Smtp-Source: ACJfBotw+tagXtC6HngKH4daiFUEZ8Q1QujbMCUIymiTB/2V8KCUWWnPYPnD4ifvq377LhY6aoEgXA== X-Received: by 10.46.115.22 with SMTP id o22mr6367113ljc.89.1516278720643; Thu, 18 Jan 2018 04:32:00 -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 s23sm1303906ljs.1.2018.01.18.04.31.59 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 18 Jan 2018 04:31:59 -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 v4 2/7] device property: Introduce fwnode_get_phy_mode() Date: Thu, 18 Jan 2018 13:31:39 +0100 Message-Id: <1516278704-17141-3-git-send-email-mw@semihalf.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1516278704-17141-1-git-send-email-mw@semihalf.com> References: <1516278704-17141-1-git-send-email-mw@semihalf.com> 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, tn@semihalf.com, gregory.clement@free-electrons.com, stefanc@marvell.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(