From patchwork Wed Jan 17 16:55:41 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Marcin Wojtas X-Patchwork-Id: 10170219 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 4104F603ED for ; Wed, 17 Jan 2018 17:06:35 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 29A61285F9 for ; Wed, 17 Jan 2018 17:06:35 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 1E03228609; Wed, 17 Jan 2018 17:06:35 +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 1C355285F9 for ; Wed, 17 Jan 2018 17:06:33 +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=BKP9O5ouPv+QJ0qY4CNEIjod/S hMf2PeRez6vHIgKEG3oEwDNFt+ZUGGa7wEhz+25zLpUBPDGDW55Dl+9qRbeZy911VyJetfpj/7VHP abUbwd5d5Bx/w4blyIBmBpcH8exsdU56wyrn+oSKGPwlK+H5y4MSQXsF61a95UfFraC+BjVUaf729 k7lIguVummUPa3+KxuKWma2n/Dsw9C2fXZtb5O9nVDlBMQYnRbPbWcr9f3IT5FZ9uiiQrijxvfKcd WweZiVnODWsqPx1E7XhxgL0W6heIesQuRg4VwI+4sdIa+hTF453xNDz6uG1Mi86ssmtqahsCPW/xw TpkreHHw==; 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 1ebrAW-0003MJ-DB; Wed, 17 Jan 2018 17:06:32 +0000 Received: from mail-lf0-x241.google.com ([2a00:1450:4010:c07::241]) by bombadil.infradead.org with esmtps (Exim 4.89 #1 (Red Hat Linux)) id 1ebr0X-0005gu-E4 for linux-arm-kernel@lists.infradead.org; Wed, 17 Jan 2018 16:56:17 +0000 Received: by mail-lf0-x241.google.com with SMTP id m8so22861857lfc.6 for ; Wed, 17 Jan 2018 08:56: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=KblEsJYah5DGvaiyG9Rw8yK8dZ33tCs7P/GNdylmVbwXhCmicSqn49ikYIfMC9+Gg4 szGXYvd0ogIkp7xWOJu564+jHBxVYEngWmlLFQQ849PK2GJO4xf8UMPIWz8VLCSllbQL +8lBvVnKADv09qWbyUUc0iwgYvCktI9MiAfIx0z5b8KTB7y73UyASFdQDTVq6Uu7dKPf 7A3Pp2dlHr+rf39GkX4FDEYyMEWmwYdQ3bX3i9qoRB8qVyuISYFpR5uoEt9Dj8iXUyFJ c6bTm6nJ16SW1d9IZAd/bdp9rvq7uadRT8af9tdth0nHsp1tKM4TYKGfMcbFCOVocq2/ i82w== 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=gl9u/LChx5U1BzkPHdWGgleWCNIw5W4OI0Gort/LtnQX7cJH+CyjyprT+vYilbEC+i rrtWHLzpdPzEX5AcbcgisLerVgql87HhnYYjtFTZO2ZpQxWZ8pf8ZIlWM/TT3U6Q7ZdO BXeElC1CbKyw2dNuOxXUPI5Aas9tOs5YVBOc/5JFGz0LS95GC1JcYrPtEN06i+qTm18/ fGQ03u6spKt2GMhWs2sEFfQVxmcSEAw8Qg0ijWimTOO0mV0hXzxgqem6F/D6MdH+NYE6 3Cl1+8aBGUvmqWi/EaWV87AEFrle4Jl818h/AvpctAF1Nk4bYpEQj2UWDBqXWPDOS83y /q8w== X-Gm-Message-State: AKwxytdDrROkDWKAZNHrhip1ZJb6dgBKczOxtzOpJrLERbbd76iQ67ES JG8CpzfxsZl76fGUo6fWcNoOpw== X-Google-Smtp-Source: ACJfBovXMZNNdMAmn5DZBfid6IY7s4EliNlIEmVJ2+oqzq8coOV5HHkdsKCwLKBQTk3AL4COIHHc6g== X-Received: by 10.46.60.7 with SMTP id j7mr1146574lja.6.1516208161249; Wed, 17 Jan 2018 08:56:01 -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 t81sm868347lff.47.2018.01.17.08.55.59 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 17 Jan 2018 08:56:00 -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 v3 2/7] device property: Introduce fwnode_get_phy_mode() Date: Wed, 17 Jan 2018 17:55:41 +0100 Message-Id: <1516208146-4144-3-git-send-email-mw@semihalf.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1516208146-4144-1-git-send-email-mw@semihalf.com> References: <1516208146-4144-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(