From patchwork Wed Jul 1 09:41:03 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tomeu Vizoso X-Patchwork-Id: 490003 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 45DD81402B9 for ; Wed, 1 Jul 2015 19:43:50 +1000 (AEST) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b=AUqgj2Aa; dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753992AbbGAJnk (ORCPT ); Wed, 1 Jul 2015 05:43:40 -0400 Received: from mail-wg0-f44.google.com ([74.125.82.44]:33665 "EHLO mail-wg0-f44.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753818AbbGAJms (ORCPT ); Wed, 1 Jul 2015 05:42:48 -0400 Received: by wgck11 with SMTP id k11so31768745wgc.0; Wed, 01 Jul 2015 02:42:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=3A/gG52YQ76Glfzym518RXxKd/ls1FQk0CNaS71CjJ4=; b=AUqgj2AaPIuhRp4vNIG2SGb7ntJiW6kP5FMGnBPRFZT2stffK44Ng0uzOCw3UOr6bt P+59YYoYFD7L7F73rv4wDOFi2Eqq0+zNYcOcFa/m/qA4gqchXX7CD2WZetq85BOnPUGQ eTikU1gHkIpfn02WXDgBMemnj6/KwpleRgEvzqLUhcc3JEMJB2HwnfneDI9ysY14j74J TU/Yy/t2a1vk8i/boLJggA50LriqdtjHUv3+e11wxXJLS1Biz15y9x250nCQMeXXSAoo ZoTQDDv/6FeZcjDu68HR2UiIo/4tRiTvgjeDRS9sYVu1ExHjj+/r1LfTKNl9IsskCksK aTlA== X-Received: by 10.180.99.71 with SMTP id eo7mr4329711wib.95.1435743766476; Wed, 01 Jul 2015 02:42:46 -0700 (PDT) Received: from cizrna.lan ([109.72.12.160]) by mx.google.com with ESMTPSA id x10sm1992663wjr.25.2015.07.01.02.42.42 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 01 Jul 2015 02:42:44 -0700 (PDT) From: Tomeu Vizoso To: linux-kernel@vger.kernel.org Cc: Mark Brown , linux-acpi@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-fbdev@vger.kernel.org, linux-gpio@vger.kernel.org, devicetree@vger.kernel.org, linux-pwm@vger.kernel.org, "Rafael J. Wysocki" , alsa-devel@alsa-project.org, Tomeu Vizoso , Alan Stern , Thierry Reding , linux-usb@vger.kernel.org, Stephen Warren , linux-tegra@vger.kernel.org, Greg Kroah-Hartman , Alexandre Courbot Subject: [PATCH v2 08/12] USB: EHCI: register dependency parser for firmware nodes Date: Wed, 1 Jul 2015 11:41:03 +0200 Message-Id: <1435743667-11987-9-git-send-email-tomeu.vizoso@collabora.com> X-Mailer: git-send-email 2.4.1 In-Reply-To: <1435743667-11987-1-git-send-email-tomeu.vizoso@collabora.com> References: <1435743667-11987-1-git-send-email-tomeu.vizoso@collabora.com> Sender: linux-gpio-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-gpio@vger.kernel.org So others can find out whether a firmware node depends on a phy as specified in bindings/usb/nvidia,tegra20-ehci.txt. Signed-off-by: Tomeu Vizoso --- Changes in v2: None drivers/usb/host/ehci-tegra.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/drivers/usb/host/ehci-tegra.c b/drivers/usb/host/ehci-tegra.c index 4031b37..3665eaa 100644 --- a/drivers/usb/host/ehci-tegra.c +++ b/drivers/usb/host/ehci-tegra.c @@ -589,6 +589,18 @@ static const struct ehci_driver_overrides tegra_overrides __initconst = { .reset = tegra_ehci_reset, }; +static void tegra_ehci_get_dependencies(struct fwnode_handle *fwnode, + struct list_head *deps) +{ + struct device_node *np; + + np = of_parse_phandle(to_of_node(fwnode), "nvidia,phy", 0); + if (!np) + return; + + fwnode_add_dependency(&np->fwnode, deps); +} + static int __init ehci_tegra_init(void) { if (usb_disabled()) @@ -611,6 +623,8 @@ static int __init ehci_tegra_init(void) tegra_ehci_hc_driver.unmap_urb_for_dma = tegra_ehci_unmap_urb_for_dma; tegra_ehci_hc_driver.hub_control = tegra_ehci_hub_control; + fwnode_add_dependency_parser(tegra_ehci_get_dependencies); + return platform_driver_register(&tegra_ehci_driver); } module_init(ehci_tegra_init); @@ -618,6 +632,8 @@ module_init(ehci_tegra_init); static void __exit ehci_tegra_cleanup(void) { platform_driver_unregister(&tegra_ehci_driver); + + fwnode_remove_dependency_parser(tegra_ehci_get_dependencies); } module_exit(ehci_tegra_cleanup);