Re: [PATCH] of/irq: stub out public API

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 10/31/2012 5:37 PM, Rob Herring wrote:
On 10/31/2012 04:09 PM, Jeffrey Hugo wrote:
Restructure of_irq.h so that the public API is defined as function stubs
when CONFIG_OF_IRQ is not defined.  This allows client drivers to
sucessfully compile in configurations where CONFIG_OF_IRQ is defined and
in configurations where it is not defined.

Do you have an example of where you need this? For many of these drivers
should not be calling them directly as they are intended for core code.

Rob
I'm sorry, I did not realize this was a private API not intended for outside drivers. I've found an alternate API that I can use to accomplish the same tasks. Please disregard this change, and thank you for your time.

Signed-off-by: Jeffrey Hugo <jhugo@xxxxxxxxxxxxxx>
---
  include/linux/of_irq.h |   71 +++++++++++++++++++++++++++++++++++------------
  1 files changed, 53 insertions(+), 18 deletions(-)

diff --git a/include/linux/of_irq.h b/include/linux/of_irq.h
index 1717cd9..1b5771a 100644
--- a/include/linux/of_irq.h
+++ b/include/linux/of_irq.h
@@ -1,8 +1,6 @@
  #ifndef __OF_IRQ_H
  #define __OF_IRQ_H
-#if defined(CONFIG_OF)
-struct of_irq;
  #include <linux/types.h>
  #include <linux/errno.h>
  #include <linux/irq.h>
@@ -10,14 +8,6 @@ struct of_irq;
  #include <linux/ioport.h>
  #include <linux/of.h>
-/*
- * irq_of_parse_and_map() is used by all OF enabled platforms; but SPARC
- * implements it differently.  However, the prototype is the same for all,
- * so declare it here regardless of the CONFIG_OF_IRQ setting.
- */
-extern unsigned int irq_of_parse_and_map(struct device_node *node, int index);
-
-#if defined(CONFIG_OF_IRQ)
  /**
   * of_irq - container for device_node/irq_specifier pair for an irq controller
   * @controller: pointer to interrupt controller device tree node
@@ -57,7 +47,23 @@ static inline int of_irq_map_oldworld(struct device_node *device, int index,
  }
  #endif /* CONFIG_PPC32 && CONFIG_PPC_PMAC */
+#if defined(CONFIG_OF)
+/*
+ * irq_of_parse_and_map() is used by all OF enabled platforms; but SPARC
+ * implements it differently.  However, the prototype is the same for all,
+ * so declare it here regardless of the CONFIG_OF_IRQ setting.
+ */
+extern unsigned int irq_of_parse_and_map(struct device_node *node, int index);
+#else /* !CONFIG_OF */
+static inline unsigned int irq_of_parse_and_map(struct device_node *dev,
+						int index)
+{
+	return 0;
+}
+#endif /* !CONFIG_OF */
+
+#if defined(CONFIG_OF_IRQ)
  extern int of_irq_map_raw(struct device_node *parent, const u32 *intspec,
  			  u32 ointsize, const u32 *addr,
  			  struct of_irq *out_irq);
@@ -74,15 +80,44 @@ extern int of_irq_to_resource_table(struct device_node *dev,
  extern struct device_node *of_irq_find_parent(struct device_node *child);
extern void of_irq_init(const struct of_device_id *matches);
-
-#endif /* CONFIG_OF_IRQ */
-
-#else /* !CONFIG_OF */
-static inline unsigned int irq_of_parse_and_map(struct device_node *dev,
-						int index)
+#else /* !CONFIG_OF_IRQ */
+static inline int of_irq_map_raw(struct device_node *parent, const u32 *intspec,
+			  u32 ointsize, const u32 *addr,
+			  struct of_irq *out_irq)
  {
  	return 0;
  }
-#endif /* !CONFIG_OF */
-
+static inline int of_irq_map_one(struct device_node *device, int index,
+			  struct of_irq *out_irq)
+{
+	return 0;
+}
+static inline unsigned int irq_create_of_mapping(struct device_node *controller,
+					  const u32 *intspec,
+					  unsigned int intsize)
+{
+	return 0;
+}
+static inline int of_irq_to_resource(struct device_node *dev, int index,
+			      struct resource *r)
+{
+	return 0;
+}
+static inline int of_irq_count(struct device_node *dev)
+{
+	return 0;
+}
+static inline int of_irq_to_resource_table(struct device_node *dev,
+		struct resource *res, int nr_irqs)
+{
+	return 0;
+}
+static inline struct device_node *of_irq_find_parent(struct device_node *child)
+{
+	return NULL;
+}
+static inline void of_irq_init(const struct of_device_id *matches)
+{
+}
+#endif /* CONFIG_OF_IRQ */
  #endif /* __OF_IRQ_H */

--
To unsubscribe from this list: send the line "unsubscribe linux-arm-msm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Jeffrey Hugo
--
The Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation.

--
To unsubscribe from this list: send the line "unsubscribe linux-arm-msm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [Linux for Sparc]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux