summaryrefslogtreecommitdiff
path: root/include/linux/firmware.h
diff options
context:
space:
mode:
authorVikram Mulukutla <markivx@codeaurora.org>2014-04-10 20:23:30 -0700
committerDavid Keitel <dkeitel@codeaurora.org>2016-03-22 11:07:36 -0700
commit9c0b572b23bdd9a9d42d556615343bdc101b5ca6 (patch)
tree2d9b3ad15a83309a9590d245792a45b1e4ac5fdf /include/linux/firmware.h
parent53adc478c89511d5614940fd7580e8225160d007 (diff)
firmware_class: Allow private data in [unmap|map]_fw_mem
Some callers of request_firmware_direct may need additional context to be able to map firmware memory. Allow private data to be passed in with request_firmware_direct, and send this data along with the [unmap|map]_fw_mem callbacks. Change-Id: I05a15eb46cc663a4476b784e30e80182a28e10c3 Signed-off-by: Vikram Mulukutla <markivx@codeaurora.org> [joshc: dropped PIL portions, fixed trivial conflict in firmware.h due to API rename] Signed-off-by: Josh Cartwright <joshc@codeaurora.org> [vmulukut: adjusted for upstream merge conflicts] Signed-off-by: Vikram Mulukutla <markivx@codeaurora.org>
Diffstat (limited to 'include/linux/firmware.h')
-rw-r--r--include/linux/firmware.h19
1 files changed, 11 insertions, 8 deletions
diff --git a/include/linux/firmware.h b/include/linux/firmware.h
index bb31b5ad09f7..7a49a0976f06 100644
--- a/include/linux/firmware.h
+++ b/include/linux/firmware.h
@@ -51,15 +51,16 @@ int request_firmware_direct(const struct firmware **fw, const char *name,
int request_firmware_into_buf(const char *name, struct device *device,
phys_addr_t dest_addr, size_t dest_size,
void * (*map_fw_mem)(phys_addr_t phys,
- size_t size),
- void (*unmap_fw_mem)(void *virt));
+ size_t size, void *data),
+ void (*unmap_fw_mem)(void *virt, void *data),
+ void *data);
int request_firmware_nowait_into_buf(
struct module *module, bool uevent,
const char *name, struct device *device, gfp_t gfp, void *context,
void (*cont)(const struct firmware *fw, void *context),
phys_addr_t dest_addr, size_t dest_size,
- void * (*map_fw_mem)(phys_addr_t phys, size_t size),
- void (*unmap_fw_mem)(void *virt));
+ void * (*map_fw_mem)(phys_addr_t phys, size_t size, void *data),
+ void (*unmap_fw_mem)(void *virt, void *data), void *data);
void release_firmware(const struct firmware *fw);
#else
static inline int request_firmware(const struct firmware **fw,
@@ -73,8 +74,10 @@ static inline int request_firmware_into_buf(const char *name,
phys_addr_t dest_addr,
size_t dest_size,
void * (*map_fw_mem)(phys_addr_t phys,
- size_t size),
- void (*unmap_fw_mem)(void *virt))
+ size_t size, void *data),
+ void (*unmap_fw_mem)(void *virt,
+ void *data),
+ void *data)
{
return -EINVAL;
}
@@ -90,8 +93,8 @@ static inline int request_firmware_nowait_into_buf(
const char *name, struct device *device, gfp_t gfp, void *context,
void (*cont)(const struct firmware *fw, void *context),
phys_addr_t dest_addr, size_t dest_size,
- void * (*map_fw_mem)(phys_addr_t phys, size_t size),
- void (*unmap_fw_mem)(void *virt))
+ void * (*map_fw_mem)(phys_addr_t phys, size_t size, void *data),
+ void (*unmap_fw_mem)(void *virt, void *data), void *data)
{
return -EINVAL;
}