mirror of
https://github.com/adulau/aha.git
synced 2024-12-28 11:46:19 +00:00
[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: Adrian Bunk <bunk@stusta.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
ccf06998fe
commit
1b81d6637d
4 changed files with 8 additions and 60 deletions
|
@ -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 @@
|
||||||
*
|
*
|
||||||
* 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 @@
|
||||||
|
|
||||||
#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)
|
||||||
|
|
||||||
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,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 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",
|
int num_envp, char *buffer, int buffer_size)
|
||||||
.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)
|
|
||||||
{
|
{
|
||||||
struct firmware_priv *fw_priv = class_get_devdata(class_dev);
|
struct firmware_priv *fw_priv = class_get_devdata(class_dev);
|
||||||
int i = 0, len = 0;
|
int i = 0, len = 0;
|
||||||
|
@ -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)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 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);
|
||||||
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(
|
||||||
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
|
||||||
|
|
Loading…
Reference in a new issue