summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/base/Makefile5
-rw-r--r--drivers/base/firmware.c32
2 files changed, 35 insertions, 2 deletions
diff --git a/drivers/base/Makefile b/drivers/base/Makefile
index a3e459cc1f6e..6fcb7331ddef 100644
--- a/drivers/base/Makefile
+++ b/drivers/base/Makefile
@@ -2,13 +2,14 @@
obj-y := core.o sys.o interface.o power.o bus.o \
driver.o class.o intf.o platform.o \
- cpu.o
+ cpu.o firmware.o
obj-y += fs/
obj-$(CONFIG_HOTPLUG) += hotplug.o
export-objs := core.o power.o sys.o bus.o driver.o \
- class.o intf.o platform.o cpu.o
+ class.o intf.o platform.o cpu.o \
+ firmware.o
include $(TOPDIR)/Rules.make
diff --git a/drivers/base/firmware.c b/drivers/base/firmware.c
new file mode 100644
index 000000000000..8e146ebfdd91
--- /dev/null
+++ b/drivers/base/firmware.c
@@ -0,0 +1,32 @@
+/*
+ * firmware.c - firmware subsystem hoohaw.
+ */
+
+#include <linux/kobject.h>
+#include <linux/module.h>
+#include <linux/init.h>
+
+static struct subsystem firmware_subsys = {
+ .kobj = { .name = "firmware" },
+};
+
+int firmware_register(struct subsystem * s)
+{
+ s->parent = &firmware_subsys;
+ return subsystem_register(s);
+}
+
+void firmware_unregister(struct subsystem * s)
+{
+ subsystem_unregister(s);
+}
+
+static int __init firmware_init(void)
+{
+ return subsystem_register(&firmware_subsys);
+}
+
+core_initcall(firmware_init);
+
+EXPORT_SYMBOL(firmware_register);
+EXPORT_SYMBOL(firmware_unregister);