aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>2012-07-09 14:55:28 -0700
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2012-07-09 14:55:28 -0700
commit0a2fbf5bd036fba62bf3613817116aae014f3461 (patch)
treee8210596d7890c29ea93d3d0db88690a4ca486bb
parent13568faf2e3d3df9efabbb20c7a3dbdfd37f42f8 (diff)
downloadltsi-kernel-0a2fbf5bd036fba62bf3613817116aae014f3461.tar.gz
add patches.kzm9g/of-address-add-of_find_matching_node_by_address-helper.patch
This fixes a build error
-rw-r--r--patches.kzm9g/of-address-add-of_find_matching_node_by_address-helper.patch66
-rw-r--r--series1
2 files changed, 67 insertions, 0 deletions
diff --git a/patches.kzm9g/of-address-add-of_find_matching_node_by_address-helper.patch b/patches.kzm9g/of-address-add-of_find_matching_node_by_address-helper.patch
new file mode 100644
index 00000000000000..3b44383d869a99
--- /dev/null
+++ b/patches.kzm9g/of-address-add-of_find_matching_node_by_address-helper.patch
@@ -0,0 +1,66 @@
+From: Grant Likely <grant.likely@secretlab.ca>
+Subject: of/address: Add of_find_matching_node_by_address helper
+
+of_find_matching_node_by_address() can be used to find a device tree
+node for a device at a specific address.
+
+Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
+(cherry picked from commit 90e33f62e027d330485d03598e1b2d8db3ff031c)
+
+Signed-off-by: Simon Horman <horms@verge.net.au>
+---
+ drivers/of/address.c | 18 ++++++++++++++++++
+ include/linux/of_address.h | 4 ++++
+ 2 files changed, 22 insertions(+)
+
+diff --git a/drivers/of/address.c b/drivers/of/address.c
+index b4559c5..da1f4b9 100644
+--- a/drivers/of/address.c
++++ b/drivers/of/address.c
+@@ -577,6 +577,24 @@ int of_address_to_resource(struct device_node *dev, int index,
+ }
+ EXPORT_SYMBOL_GPL(of_address_to_resource);
+
++struct device_node *of_find_matching_node_by_address(struct device_node *from,
++ const struct of_device_id *matches,
++ u64 base_address)
++{
++ struct device_node *dn = of_find_matching_node(from, matches);
++ struct resource res;
++
++ while (dn) {
++ if (of_address_to_resource(dn, 0, &res))
++ continue;
++ if (res.start == base_address)
++ return dn;
++ dn = of_find_matching_node(dn, matches);
++ }
++
++ return NULL;
++}
++
+
+ /**
+ * of_iomap - Maps the memory mapped IO for a given device_node
+diff --git a/include/linux/of_address.h b/include/linux/of_address.h
+index 2feda6ee..bdfc20d 100644
+--- a/include/linux/of_address.h
++++ b/include/linux/of_address.h
+@@ -6,6 +6,10 @@
+ extern u64 of_translate_address(struct device_node *np, const __be32 *addr);
+ extern int of_address_to_resource(struct device_node *dev, int index,
+ struct resource *r);
++extern struct device_node *of_find_matching_node_by_address(
++ struct device_node *from,
++ const struct of_device_id *matches,
++ u64 base_address);
+ extern void __iomem *of_iomap(struct device_node *device, int index);
+
+ /* Extract an address from a device, returns the region size and
+--
+1.7.10.2.484.gcd07cc5
+
+_______________________________________________
+LTSI-dev mailing list
+LTSI-dev@lists.linuxfoundation.org
+https://lists.linuxfoundation.org/mailman/listinfo/ltsi-dev
diff --git a/series b/series
index 595c637789d3b6..db3d0dd6230a3c 100644
--- a/series
+++ b/series
@@ -728,6 +728,7 @@ patches.kzm9g/0139-ARM-mach-shmobile-armadillo800eva-Add-FSI-WM8978-sup.patch
patches.kzm9g/0140-ARM-mach-shmobile-Add-support-for-PINT-though-INTC-m.patch
patches.kzm9g/0141-irq-Track-the-owner-of-irq-descriptor.patch
patches.kzm9g/0142-irq-add-irq_domain-translation-infrastructure.patch
+patches.kzm9g/of-address-add-of_find_matching_node_by_address-helper.patch
patches.kzm9g/0143-dt-irq-add-irq_domain_generate_simple-helper.patch
patches.kzm9g/0144-irq-Add-declaration-of-irq_domain_simple_ops-to-irqd.patch
patches.kzm9g/0145-irq-Fix-check-for-already-initialized-irq_domain-in-.patch