summaryrefslogtreecommitdiffstats
path: root/include/linux/firmware.h
diff options
context:
space:
mode:
authorMing Lei <ming.lei@canonical.com>2012-08-04 12:01:22 +0800
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2012-08-16 13:24:21 -0700
commit2887b3959c8b2f6ed1f62ce95c0888aedb1ea84b (patch)
treed8706698f44593c7c0075912c6e2a4b81ebf32a6 /include/linux/firmware.h
parent1f2b79599ee8f5fc82cc73c6c090eb6cdff881d6 (diff)
downloadop-kernel-dev-2887b3959c8b2f6ed1f62ce95c0888aedb1ea84b.zip
op-kernel-dev-2887b3959c8b2f6ed1f62ce95c0888aedb1ea84b.tar.gz
firmware loader: introduce cache_firmware and uncache_firmware
This patches introduce two kernel APIs of cache_firmware and uncache_firmware, both of which take the firmware file name as the only parameter. So any drivers can call cache_firmware to cache the specified firmware file into kernel memory, and can use the cached firmware in situations which can't request firmware from user space. Signed-off-by: Ming Lei <ming.lei@canonical.com> Cc: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'include/linux/firmware.h')
-rw-r--r--include/linux/firmware.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/include/linux/firmware.h b/include/linux/firmware.h
index e85b771..e4279fe 100644
--- a/include/linux/firmware.h
+++ b/include/linux/firmware.h
@@ -47,6 +47,8 @@ int request_firmware_nowait(
void (*cont)(const struct firmware *fw, void *context));
void release_firmware(const struct firmware *fw);
+int cache_firmware(const char *name);
+int uncache_firmware(const char *name);
#else
static inline int request_firmware(const struct firmware **fw,
const char *name,
@@ -65,6 +67,16 @@ static inline int request_firmware_nowait(
static inline void release_firmware(const struct firmware *fw)
{
}
+
+static inline int cache_firmware(const char *name)
+{
+ return -ENOENT;
+}
+
+static inline int uncache_firmware(const char *name)
+{
+ return -EINVAL;
+}
#endif
#endif
OpenPOWER on IntegriCloud