summaryrefslogtreecommitdiff
path: root/drivers/base/firmware_class.c
diff options
context:
space:
mode:
authorVikram Mulukutla <markivx@codeaurora.org>2015-03-30 18:24:47 -0700
committerDavid Keitel <dkeitel@codeaurora.org>2016-03-22 11:07:37 -0700
commit2d65cf38d397296a57508736ac747c55419ed58f (patch)
tree9d1c8eba9ab16f6f864b0436c5705773de3687cb /drivers/base/firmware_class.c
parent9c0b572b23bdd9a9d42d556615343bdc101b5ca6 (diff)
firmware_class: Include a size argument in unmap_fw_mem
Some implementations may need to know the size of a region allocated by map_fw_mem in the context of the unmap_fw_mem callback. Add this as an argument to the callback signature. Signed-off-by: Vikram Mulukutla <markivx@codeaurora.org>
Diffstat (limited to 'drivers/base/firmware_class.c')
-rw-r--r--drivers/base/firmware_class.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/drivers/base/firmware_class.c b/drivers/base/firmware_class.c
index bf5d577e5292..8b19f239c1e8 100644
--- a/drivers/base/firmware_class.c
+++ b/drivers/base/firmware_class.c
@@ -147,7 +147,7 @@ struct firmware_buf {
phys_addr_t dest_addr;
size_t dest_size;
void * (*map_fw_mem)(phys_addr_t phys, size_t size, void *data);
- void (*unmap_fw_mem)(void *virt, void *data);
+ void (*unmap_fw_mem)(void *virt, size_t size, void *data);
void *map_data;
#ifdef CONFIG_FW_LOADER_USER_HELPER
bool is_paged_buf;
@@ -179,7 +179,7 @@ struct fw_desc {
phys_addr_t dest_addr;
size_t dest_size;
void * (*map_fw_mem)(phys_addr_t phys, size_t size, void *data);
- void (*unmap_fw_mem)(void *virt, void *data);
+ void (*unmap_fw_mem)(void *virt, size_t size, void *data);
void *map_data;
struct module *module;
void *context;
@@ -351,11 +351,11 @@ static int fw_read_file_contents(struct file *file, struct firmware_buf *fw_buf)
fw_buf->data = buf;
fw_buf->size = size;
if (fw_buf->dest_addr)
- fw_buf->unmap_fw_mem(buf, fw_buf->map_data);
+ fw_buf->unmap_fw_mem(buf, fw_buf->size, fw_buf->map_data);
return 0;
fail:
if (fw_buf->dest_addr)
- fw_buf->unmap_fw_mem(buf, fw_buf->map_data);
+ fw_buf->unmap_fw_mem(buf, fw_buf->size, fw_buf->map_data);
else
vfree(buf);
return rc;
@@ -786,7 +786,7 @@ static int __firmware_data_rw(struct firmware_priv *fw_priv, char *buffer,
memcpy(fw_buf, buffer, count);
*offset += count;
- buf->unmap_fw_mem(fw_buf, buf->map_data);
+ buf->unmap_fw_mem(fw_buf, count, buf->map_data);
out:
return retval;
@@ -1436,7 +1436,7 @@ 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 *data),
- void (*unmap_fw_mem)(void *virt, void *data),
+ void (*unmap_fw_mem)(void *virt, size_t sz, void *data),
void *map_data)
{
struct fw_desc desc;
@@ -1504,7 +1504,7 @@ _request_firmware_nowait(
void (*cont)(const struct firmware *fw, void *context),
bool nocache, phys_addr_t dest_addr, size_t dest_size,
void * (*map_fw_mem)(phys_addr_t phys, size_t size, void *data),
- void (*unmap_fw_mem)(void *virt, void *data),
+ void (*unmap_fw_mem)(void *virt, size_t size, void *data),
void *map_data)
{
struct fw_desc *desc;
@@ -1599,7 +1599,7 @@ request_firmware_nowait_into_buf(
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 *data),
- void (*unmap_fw_mem)(void *virt, void *data),
+ void (*unmap_fw_mem)(void *virt, size_t size, void *data),
void *map_data)
{
return _request_firmware_nowait(module, uevent, name, device, gfp,