diff options
Diffstat (limited to 'target/linux/generic/patches-3.10/003-11-003-of-pci-Add-of_pci_get_devfn-function.patch')
-rw-r--r-- | target/linux/generic/patches-3.10/003-11-003-of-pci-Add-of_pci_get_devfn-function.patch | 78 |
1 files changed, 0 insertions, 78 deletions
diff --git a/target/linux/generic/patches-3.10/003-11-003-of-pci-Add-of_pci_get_devfn-function.patch b/target/linux/generic/patches-3.10/003-11-003-of-pci-Add-of_pci_get_devfn-function.patch deleted file mode 100644 index 4dd1516..0000000 --- a/target/linux/generic/patches-3.10/003-11-003-of-pci-Add-of_pci_get_devfn-function.patch +++ /dev/null @@ -1,78 +0,0 @@ -From 45ab9702fb47d18dca116b3a0509efa19fbcb27a Mon Sep 17 00:00:00 2001 -From: Thierry Reding <thierry.reding@avionic-design.de> -Date: Thu, 16 May 2013 17:55:18 +0200 -Subject: [PATCH] of/pci: Add of_pci_get_devfn() function - -commit 45ab9702fb47d18dca116b3a0509efa19fbcb27a upstream. - -This function can be used to parse the device and function number from a -standard 5-cell PCI resource. PCI_SLOT() and PCI_FUNC() can be used on -the returned value obtain the device and function numbers respectively. - -Signed-off-by: Thierry Reding <thierry.reding@avionic-design.de> -Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> -Signed-off-by: Jason Cooper <jason@lakedaemon.net> ---- - drivers/of/of_pci.c | 34 +++++++++++++++++++++++++++++----- - include/linux/of_pci.h | 1 + - 2 files changed, 30 insertions(+), 5 deletions(-) - ---- a/drivers/of/of_pci.c -+++ b/drivers/of/of_pci.c -@@ -5,14 +5,15 @@ - #include <asm/prom.h> - - static inline int __of_pci_pci_compare(struct device_node *node, -- unsigned int devfn) -+ unsigned int data) - { -- unsigned int size; -- const __be32 *reg = of_get_property(node, "reg", &size); -+ int devfn; - -- if (!reg || size < 5 * sizeof(__be32)) -+ devfn = of_pci_get_devfn(node); -+ if (devfn < 0) - return 0; -- return ((be32_to_cpup(®[0]) >> 8) & 0xff) == devfn; -+ -+ return devfn == data; - } - - struct device_node *of_pci_find_child_device(struct device_node *parent, -@@ -40,3 +41,26 @@ struct device_node *of_pci_find_child_de - return NULL; - } - EXPORT_SYMBOL_GPL(of_pci_find_child_device); -+ -+/** -+ * of_pci_get_devfn() - Get device and function numbers for a device node -+ * @np: device node -+ * -+ * Parses a standard 5-cell PCI resource and returns an 8-bit value that can -+ * be passed to the PCI_SLOT() and PCI_FUNC() macros to extract the device -+ * and function numbers respectively. On error a negative error code is -+ * returned. -+ */ -+int of_pci_get_devfn(struct device_node *np) -+{ -+ unsigned int size; -+ const __be32 *reg; -+ -+ reg = of_get_property(np, "reg", &size); -+ -+ if (!reg || size < 5 * sizeof(__be32)) -+ return -EINVAL; -+ -+ return (be32_to_cpup(reg) >> 8) & 0xff; -+} -+EXPORT_SYMBOL_GPL(of_pci_get_devfn); ---- a/include/linux/of_pci.h -+++ b/include/linux/of_pci.h -@@ -10,5 +10,6 @@ int of_irq_map_pci(const struct pci_dev - struct device_node; - struct device_node *of_pci_find_child_device(struct device_node *parent, - unsigned int devfn); -+int of_pci_get_devfn(struct device_node *np); - - #endif |