Skip to content

Commit

Permalink
[PATCH] drivers/base/firmware_class.c: cleanups
Browse files Browse the repository at this point in the history
- 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: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
  • Loading branch information
AdrianBunk authored and Linus Torvalds committed May 21, 2006
1 parent ccf0699 commit 1b81d66
Show file tree
Hide file tree
Showing 4 changed files with 8 additions and 60 deletions.
17 changes: 0 additions & 17 deletions Documentation/firmware_class/README
Original file line number Diff line number Diff line change
Expand Up @@ -105,20 +105,3 @@
on the setup, so I think that the choice on what firmware to make
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.

11 changes: 0 additions & 11 deletions Documentation/firmware_class/firmware_sample_driver.c
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,6 @@
*
* Sample code on how to use request_firmware() from drivers.
*
* Note that register_firmware() is currently useless.
*
*/

#include <linux/module.h>
Expand All @@ -17,11 +15,6 @@

#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 = {
.bus_id = "ghost0",
};
Expand Down Expand Up @@ -104,10 +97,6 @@ static void sample_probe_async(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);
/* since there is no real hardware insertion I just call the
* sample probe functions here */
Expand Down
39 changes: 8 additions & 31 deletions drivers/base/firmware_class.c
Original file line number Diff line number Diff line change
Expand Up @@ -86,18 +86,9 @@ firmware_timeout_store(struct class *class, const char *buf, size_t count)
static CLASS_ATTR(timeout, 0644, firmware_timeout_show, firmware_timeout_store);

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 = {
.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)
static int firmware_class_uevent(struct class_device *class_dev, char **envp,
int num_envp, char *buffer, int buffer_size)
{
struct firmware_priv *fw_priv = class_get_devdata(class_dev);
int i = 0, len = 0;
Expand All @@ -116,6 +107,12 @@ firmware_class_uevent(struct class_device *class_dev, char **envp,
return 0;
}

static struct class firmware_class = {
.name = "firmware",
.uevent = firmware_class_uevent,
.release = fw_class_dev_release,
};

static ssize_t
firmware_loading_show(struct class_device *class_dev, char *buf)
{
Expand Down Expand Up @@ -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 */
struct firmware_work {
struct work_struct work;
Expand Down Expand Up @@ -630,4 +608,3 @@ module_exit(firmware_class_exit);
EXPORT_SYMBOL(release_firmware);
EXPORT_SYMBOL(request_firmware);
EXPORT_SYMBOL(request_firmware_nowait);
EXPORT_SYMBOL(register_firmware);
1 change: 0 additions & 1 deletion include/linux/firmware.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,5 +19,4 @@ int request_firmware_nowait(
void (*cont)(const struct firmware *fw, void *context));

void release_firmware(const struct firmware *fw);
void register_firmware(const char *name, const u8 *data, size_t size);
#endif

0 comments on commit 1b81d66

Please sign in to comment.