[RFC PATCH 3.7.0-rc4 1/4] of: introduce of_simple_module_id_table macro.

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

 



From: Srinivas Kandagatla <srinivas.kandagatla@xxxxxx>

Most of the drivers have of_device_id table setup with single compatible
entry, this use case is very simple and common.

#ifdef CONFIG_OF
static struct of_device_id xxx_of_match[] = {
	{ .compatible = "yyy,zzz" },
	{ },
};
MODULE_DEVICE_TABLE(of, xxx_of_match);
#endif

This patch adds a macro for this simple type of device table.
Other subsystems like pm, platform, have similar macros in kernel for
simplest cases.
Now the user can just replace the above code with

of_simple_module_id_table(xxx_of_match, "yyy,zzz");

macro without worrrying about ifdef'ng it.

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@xxxxxx>
---
 include/linux/of.h |   10 ++++++++++
 1 files changed, 10 insertions(+), 0 deletions(-)

diff --git a/include/linux/of.h b/include/linux/of.h
index b4e50d5..adb812b 100644
--- a/include/linux/of.h
+++ b/include/linux/of.h
@@ -280,6 +280,15 @@ extern void of_detach_node(struct device_node *);
 
 #define of_match_ptr(_ptr)	(_ptr)
 
+#define of_simple_module_id_table(name, compat) \
+	static struct of_device_id name[] = { \
+	{ \
+		.compatible = compat, \
+	}, \
+	{} \
+}; \
+MODULE_DEVICE_TABLE(of, name)
+
 /*
  * struct property *prop;
  * const __be32 *p;
@@ -438,6 +447,7 @@ static inline int of_machine_is_compatible(const char *compat)
 }
 
 #define of_match_ptr(_ptr)	NULL
+#define of_simple_module_id_table(name, compat)
 #define of_match_node(_matches, _node)	NULL
 #define of_property_for_each_u32(np, propname, prop, p, u) \
 	while (0)
-- 
1.7.0.4

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


[Index of Archives]     [Linux USB Devel]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux