forked from luck/tmp_suning_uos_patched
1f2b79599e
This patch always let firmware_buf own the pages buffer allocated inside firmware_data_write, and add all instances of firmware_buf into the firmware cache global list. Also introduce one private field in 'struct firmware', so release_firmware will see the instance of firmware_buf associated with the current firmware instance, then just 'free' the instance of firmware_buf. The firmware_buf instance represents one pages buffer for one firmware image, so lots of firmware loading requests can share the same firmware_buf instance if they request the same firmware image file. This patch will make implementation of the following cache_firmware/ uncache_firmware very easy and simple. In fact, the patch improves request_formware/release_firmware: - only request userspace to write firmware image once if several devices share one same firmware image and its drivers call request_firmware concurrently. 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> |
||
---|---|---|
.. | ||
power | ||
regmap | ||
attribute_container.c | ||
base.h | ||
bus.c | ||
class.c | ||
core.c | ||
cpu.c | ||
dd.c | ||
devres.c | ||
devtmpfs.c | ||
dma-buf.c | ||
dma-coherent.c | ||
dma-contiguous.c | ||
dma-mapping.c | ||
driver.c | ||
firmware_class.c | ||
firmware.c | ||
hypervisor.c | ||
init.c | ||
isa.c | ||
Kconfig | ||
Makefile | ||
map.c | ||
memory.c | ||
module.c | ||
node.c | ||
platform.c | ||
soc.c | ||
syscore.c | ||
topology.c | ||
transport_class.c |