Commit 1b81d663 authored by Adrian Bunk's avatar Adrian Bunk Committed by Linus Torvalds

[PATCH] drivers/base/firmware_class.c: cleanups

- remove the following global function that is both unused and
  unimplemented:
  - register_firmware()

- make the following needlessly global function static:
  - firmware_class_uevent()
Signed-off-by: default avatarAdrian Bunk <bunk@stusta.de>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent ccf06998
...@@ -105,20 +105,3 @@ ...@@ -105,20 +105,3 @@
on the setup, so I think that the choice on what firmware to make on the setup, so I think that the choice on what firmware to make
persistent should be left to userspace. persistent should be left to userspace.
- Why register_firmware()+__init can be useful:
- For boot devices needing firmware.
- To make the transition easier:
The firmware can be declared __init and register_firmware()
called on module_init. Then the firmware is warranted to be
there even if "firmware hotplug userspace" is not there yet or
it doesn't yet provide the needed firmware.
Once the firmware is widely available in userspace, it can be
removed from the kernel. Or made optional (CONFIG_.*_FIRMWARE).
In either case, if firmware hotplug support is there, it can move the
firmware out of kernel memory into the real filesystem for later
usage.
Note: If persistence is implemented on top of initramfs,
register_firmware() may not be appropriate.
...@@ -5,8 +5,6 @@ ...@@ -5,8 +5,6 @@
* *
* Sample code on how to use request_firmware() from drivers. * Sample code on how to use request_firmware() from drivers.
* *
* Note that register_firmware() is currently useless.
*
*/ */
#include <linux/module.h> #include <linux/module.h>
...@@ -17,11 +15,6 @@ ...@@ -17,11 +15,6 @@
#include "linux/firmware.h" #include "linux/firmware.h"
#define WE_CAN_NEED_FIRMWARE_BEFORE_USERSPACE_IS_AVAILABLE
#ifdef WE_CAN_NEED_FIRMWARE_BEFORE_USERSPACE_IS_AVAILABLE
char __init inkernel_firmware[] = "let's say that this is firmware\n";
#endif
static struct device ghost_device = { static struct device ghost_device = {
.bus_id = "ghost0", .bus_id = "ghost0",
}; };
...@@ -104,10 +97,6 @@ static void sample_probe_async(void) ...@@ -104,10 +97,6 @@ static void sample_probe_async(void)
static int sample_init(void) static int sample_init(void)
{ {
#ifdef WE_CAN_NEED_FIRMWARE_BEFORE_USERSPACE_IS_AVAILABLE
register_firmware("sample_driver_fw", inkernel_firmware,
sizeof(inkernel_firmware));
#endif
device_initialize(&ghost_device); device_initialize(&ghost_device);
/* since there is no real hardware insertion I just call the /* since there is no real hardware insertion I just call the
* sample probe functions here */ * sample probe functions here */
......
...@@ -86,17 +86,8 @@ firmware_timeout_store(struct class *class, const char *buf, size_t count) ...@@ -86,17 +86,8 @@ firmware_timeout_store(struct class *class, const char *buf, size_t count)
static CLASS_ATTR(timeout, 0644, firmware_timeout_show, firmware_timeout_store); static CLASS_ATTR(timeout, 0644, firmware_timeout_show, firmware_timeout_store);
static void fw_class_dev_release(struct class_device *class_dev); static void fw_class_dev_release(struct class_device *class_dev);
int firmware_class_uevent(struct class_device *dev, char **envp,
int num_envp, char *buffer, int buffer_size);
static struct class firmware_class = { static int firmware_class_uevent(struct class_device *class_dev, char **envp,
.name = "firmware",
.uevent = firmware_class_uevent,
.release = fw_class_dev_release,
};
int
firmware_class_uevent(struct class_device *class_dev, char **envp,
int num_envp, char *buffer, int buffer_size) int num_envp, char *buffer, int buffer_size)
{ {
struct firmware_priv *fw_priv = class_get_devdata(class_dev); struct firmware_priv *fw_priv = class_get_devdata(class_dev);
...@@ -116,6 +107,12 @@ firmware_class_uevent(struct class_device *class_dev, char **envp, ...@@ -116,6 +107,12 @@ firmware_class_uevent(struct class_device *class_dev, char **envp,
return 0; return 0;
} }
static struct class firmware_class = {
.name = "firmware",
.uevent = firmware_class_uevent,
.release = fw_class_dev_release,
};
static ssize_t static ssize_t
firmware_loading_show(struct class_device *class_dev, char *buf) firmware_loading_show(struct class_device *class_dev, char *buf)
{ {
...@@ -493,25 +490,6 @@ release_firmware(const struct firmware *fw) ...@@ -493,25 +490,6 @@ release_firmware(const struct firmware *fw)
} }
} }
/**
* register_firmware: - provide a firmware image for later usage
* @name: name of firmware image file
* @data: buffer pointer for the firmware image
* @size: size of the data buffer area
*
* Make sure that @data will be available by requesting firmware @name.
*
* Note: This will not be possible until some kind of persistence
* is available.
**/
void
register_firmware(const char *name, const u8 *data, size_t size)
{
/* This is meaningless without firmware caching, so until we
* decide if firmware caching is reasonable just leave it as a
* noop */
}
/* Async support */ /* Async support */
struct firmware_work { struct firmware_work {
struct work_struct work; struct work_struct work;
...@@ -630,4 +608,3 @@ module_exit(firmware_class_exit); ...@@ -630,4 +608,3 @@ module_exit(firmware_class_exit);
EXPORT_SYMBOL(release_firmware); EXPORT_SYMBOL(release_firmware);
EXPORT_SYMBOL(request_firmware); EXPORT_SYMBOL(request_firmware);
EXPORT_SYMBOL(request_firmware_nowait); EXPORT_SYMBOL(request_firmware_nowait);
EXPORT_SYMBOL(register_firmware);
...@@ -19,5 +19,4 @@ int request_firmware_nowait( ...@@ -19,5 +19,4 @@ int request_firmware_nowait(
void (*cont)(const struct firmware *fw, void *context)); void (*cont)(const struct firmware *fw, void *context));
void release_firmware(const struct firmware *fw); void release_firmware(const struct firmware *fw);
void register_firmware(const char *name, const u8 *data, size_t size);
#endif #endif
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment