xref: /openbmc/linux/drivers/base/firmware.c (revision b0d78e5549b44b3d64bf8b3ffe95280025ed102e)
11da177e4SLinus Torvalds /*
21da177e4SLinus Torvalds  * firmware.c - firmware subsystem hoohaw.
31da177e4SLinus Torvalds  *
41da177e4SLinus Torvalds  * Copyright (c) 2002-3 Patrick Mochel
51da177e4SLinus Torvalds  * Copyright (c) 2002-3 Open Source Development Labs
61da177e4SLinus Torvalds  *
71da177e4SLinus Torvalds  * This file is released under the GPLv2
81da177e4SLinus Torvalds  *
91da177e4SLinus Torvalds  */
101da177e4SLinus Torvalds 
111da177e4SLinus Torvalds #include <linux/kobject.h>
121da177e4SLinus Torvalds #include <linux/module.h>
131da177e4SLinus Torvalds #include <linux/init.h>
14a1bdc7aaSBen Dooks #include <linux/device.h>
15a1bdc7aaSBen Dooks 
16a1bdc7aaSBen Dooks #include "base.h"
171da177e4SLinus Torvalds 
18*b0d78e55SGreg Kroah-Hartman static struct kset *firmware_kset;
191da177e4SLinus Torvalds 
20823bccfcSGreg Kroah-Hartman int firmware_register(struct kset *s)
211da177e4SLinus Torvalds {
22*b0d78e55SGreg Kroah-Hartman 	s->kobj.kset = firmware_kset;
233514facaSGreg Kroah-Hartman 	s->kobj.ktype = NULL;
241da177e4SLinus Torvalds 	return subsystem_register(s);
251da177e4SLinus Torvalds }
261da177e4SLinus Torvalds 
27823bccfcSGreg Kroah-Hartman void firmware_unregister(struct kset *s)
281da177e4SLinus Torvalds {
291da177e4SLinus Torvalds 	subsystem_unregister(s);
301da177e4SLinus Torvalds }
311da177e4SLinus Torvalds 
321da177e4SLinus Torvalds int __init firmware_init(void)
331da177e4SLinus Torvalds {
34*b0d78e55SGreg Kroah-Hartman 	firmware_kset = kset_create_and_add("firmware", NULL, NULL);
35*b0d78e55SGreg Kroah-Hartman 	if (!firmware_kset)
36*b0d78e55SGreg Kroah-Hartman 		return -ENOMEM;
37*b0d78e55SGreg Kroah-Hartman 	return 0;
381da177e4SLinus Torvalds }
391da177e4SLinus Torvalds 
401da177e4SLinus Torvalds EXPORT_SYMBOL_GPL(firmware_register);
411da177e4SLinus Torvalds EXPORT_SYMBOL_GPL(firmware_unregister);
42