From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753983AbbGAJoo (ORCPT ); Wed, 1 Jul 2015 05:44:44 -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 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-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@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); -- 2.4.1 From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tomeu Vizoso 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> References: <1435743667-11987-1-git-send-email-tomeu.vizoso@collabora.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1435743667-11987-1-git-send-email-tomeu.vizoso@collabora.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: linux-kernel@vger.kernel.org Cc: devicetree@vger.kernel.org, linux-fbdev@vger.kernel.org, linux-tegra@vger.kernel.org, Tomeu Vizoso , linux-gpio@vger.kernel.org, Greg Kroah-Hartman , linux-usb@vger.kernel.org, "Rafael J. Wysocki" , alsa-devel@alsa-project.org, dri-devel@lists.freedesktop.org, linux-acpi@vger.kernel.org, Mark Brown , linux-pwm@vger.kernel.org, Stephen Warren , Alan Stern , Alexandre Courbot List-Id: linux-acpi@vger.kernel.org U28gb3RoZXJzIGNhbiBmaW5kIG91dCB3aGV0aGVyIGEgZmlybXdhcmUgbm9kZSBkZXBlbmRzIG9u IGEgcGh5IGFzCnNwZWNpZmllZCBpbiBiaW5kaW5ncy91c2IvbnZpZGlhLHRlZ3JhMjAtZWhjaS50 eHQuCgpTaWduZWQtb2ZmLWJ5OiBUb21ldSBWaXpvc28gPHRvbWV1LnZpem9zb0Bjb2xsYWJvcmEu Y29tPgotLS0KCkNoYW5nZXMgaW4gdjI6IE5vbmUKCiBkcml2ZXJzL3VzYi9ob3N0L2VoY2ktdGVn cmEuYyB8IDE2ICsrKysrKysrKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCAxNiBpbnNlcnRpb25z KCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvaG9zdC9laGNpLXRlZ3JhLmMgYi9kcml2ZXJz L3VzYi9ob3N0L2VoY2ktdGVncmEuYwppbmRleCA0MDMxYjM3Li4zNjY1ZWFhIDEwMDY0NAotLS0g YS9kcml2ZXJzL3VzYi9ob3N0L2VoY2ktdGVncmEuYworKysgYi9kcml2ZXJzL3VzYi9ob3N0L2Vo Y2ktdGVncmEuYwpAQCAtNTg5LDYgKzU4OSwxOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGVoY2lf ZHJpdmVyX292ZXJyaWRlcyB0ZWdyYV9vdmVycmlkZXMgX19pbml0Y29uc3QgPSB7CiAJLnJlc2V0 CQkJPSB0ZWdyYV9laGNpX3Jlc2V0LAogfTsKIAorc3RhdGljIHZvaWQgdGVncmFfZWhjaV9nZXRf ZGVwZW5kZW5jaWVzKHN0cnVjdCBmd25vZGVfaGFuZGxlICpmd25vZGUsCisJCQkJCXN0cnVjdCBs aXN0X2hlYWQgKmRlcHMpCit7CisJc3RydWN0IGRldmljZV9ub2RlICpucDsKKworCW5wID0gb2Zf cGFyc2VfcGhhbmRsZSh0b19vZl9ub2RlKGZ3bm9kZSksICJudmlkaWEscGh5IiwgMCk7CisJaWYg KCFucCkKKwkJcmV0dXJuOworCisJZndub2RlX2FkZF9kZXBlbmRlbmN5KCZucC0+Zndub2RlLCBk ZXBzKTsKK30KKwogc3RhdGljIGludCBfX2luaXQgZWhjaV90ZWdyYV9pbml0KHZvaWQpCiB7CiAJ aWYgKHVzYl9kaXNhYmxlZCgpKQpAQCAtNjExLDYgKzYyMyw4IEBAIHN0YXRpYyBpbnQgX19pbml0 IGVoY2lfdGVncmFfaW5pdCh2b2lkKQogCXRlZ3JhX2VoY2lfaGNfZHJpdmVyLnVubWFwX3VyYl9m b3JfZG1hID0gdGVncmFfZWhjaV91bm1hcF91cmJfZm9yX2RtYTsKIAl0ZWdyYV9laGNpX2hjX2Ry aXZlci5odWJfY29udHJvbCA9IHRlZ3JhX2VoY2lfaHViX2NvbnRyb2w7CiAKKwlmd25vZGVfYWRk X2RlcGVuZGVuY3lfcGFyc2VyKHRlZ3JhX2VoY2lfZ2V0X2RlcGVuZGVuY2llcyk7CisKIAlyZXR1 cm4gcGxhdGZvcm1fZHJpdmVyX3JlZ2lzdGVyKCZ0ZWdyYV9laGNpX2RyaXZlcik7CiB9CiBtb2R1 bGVfaW5pdChlaGNpX3RlZ3JhX2luaXQpOwpAQCAtNjE4LDYgKzYzMiw4IEBAIG1vZHVsZV9pbml0 KGVoY2lfdGVncmFfaW5pdCk7CiBzdGF0aWMgdm9pZCBfX2V4aXQgZWhjaV90ZWdyYV9jbGVhbnVw KHZvaWQpCiB7CiAJcGxhdGZvcm1fZHJpdmVyX3VucmVnaXN0ZXIoJnRlZ3JhX2VoY2lfZHJpdmVy KTsKKworCWZ3bm9kZV9yZW1vdmVfZGVwZW5kZW5jeV9wYXJzZXIodGVncmFfZWhjaV9nZXRfZGVw ZW5kZW5jaWVzKTsKIH0KIG1vZHVsZV9leGl0KGVoY2lfdGVncmFfY2xlYW51cCk7CiAKLS0gCjIu NC4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmkt ZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo= From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tomeu Vizoso Date: Wed, 01 Jul 2015 09:41:03 +0000 Subject: [PATCH v2 08/12] USB: EHCI: register dependency parser for firmware nodes Message-Id: <1435743667-11987-9-git-send-email-tomeu.vizoso@collabora.com> List-Id: References: <1435743667-11987-1-git-send-email-tomeu.vizoso@collabora.com> In-Reply-To: <1435743667-11987-1-git-send-email-tomeu.vizoso@collabora.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: linux-kernel@vger.kernel.org Cc: devicetree@vger.kernel.org, linux-fbdev@vger.kernel.org, linux-tegra@vger.kernel.org, Tomeu Vizoso , linux-gpio@vger.kernel.org, Greg Kroah-Hartman , linux-usb@vger.kernel.org, "Rafael J. Wysocki" , alsa-devel@alsa-project.org, dri-devel@lists.freedesktop.org, linux-acpi@vger.kernel.org, Mark Brown , linux-pwm@vger.kernel.org, Stephen Warren , Alan Stern , Alexandre Courbot 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); -- 2.4.1