[PATCH v3 00/20] firmware: development for v4.17

From: Luis R. Rodriguez
Date: Sat Mar 10 2018 - 09:15:20 EST


Greg,

Here's a respin of what I have queued up for v4.17 for the firmware API. It
combines the cleanup I've been working on and the addition of the new API call
request_firmware_cache() for fixing a corner case suspend issue on some type of
cards with an optimization in place where the firmware is *not* needed on
reboot.

The cleanup work allows us to test the firmware API with one kernel
configuration. I've addressed Kees' feedback on this respin and
combined the code into drivers/base/firmware_class/.

I've made one new test_firmware change in consideration for one firmware
change, the patch "firmware: ensure the firmware cache is not used on
incompatible calls" requires us to modify our tests scripts to use
the APIs sanely as well.

I've put up these changes on my git tree, refer to the branch
"20180307-firmware-dev-for-v4.17" based on linux-next [0] and
the same name based on Linus' tree [1].

Questions, feedback, and specially rants are always welcomed.

[0] https://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux-next.git/log/?h=20180307-firmware-dev-for-v4.17
[1] https://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux.git/log/?h=20180307-firmware-dev-for-v4.17

Luis R. Rodriguez (20):
test_firmware: add simple firmware firmware test library
test_firmware: enable custom fallback testing on limited kernel
configs
test_firmware: replace syfs fallback check with kconfig_has helper
firmware: enable to split firmware_class into separate target files
firmware: simplify CONFIG_FW_LOADER_USER_HELPER_FALLBACK further
firmware: use helpers for setting up a temporary cache timeout
firmware: move loading timeout under struct firmware_fallback_config
firmware: split firmware fallback functionality into its own file
firmware: move firmware loader into its own directory
firmware: enable run time change of forcing fallback loader
firmware: enable to force disable the fallback mechanism at run time
test_firmware: expand on library with shared helpers
test_firmware: test three firmware kernel configs using a proc knob
rename: _request_firmware_load() fw_load_sysfs_fallback()
firmware: fix checking for return values for fw_add_devm_name()
firmware: add helper to check to see if fw cache is setup
test_firmware: modify custom fallback tests to use unique files
firmware: ensure the firmware cache is not used on incompatible calls
firmware: add request_firmware_cache() to help with cache on reboot
mt7601u: use request_firmware_cache() to address cache on reboot

.../driver-api/firmware/fallback-mechanisms.rst | 2 +-
.../driver-api/firmware/request_firmware.rst | 14 +
MAINTAINERS | 2 +-
drivers/base/Makefile | 2 +-
drivers/base/firmware_loader/Makefile | 7 +
drivers/base/firmware_loader/fallback.c | 674 +++++++++++++++++
drivers/base/firmware_loader/fallback.h | 67 ++
drivers/base/firmware_loader/fallback_table.c | 55 ++
drivers/base/firmware_loader/firmware.h | 115 +++
.../{firmware_class.c => firmware_loader/main.c} | 833 ++-------------------
drivers/net/wireless/mediatek/mt7601u/mcu.c | 2 +-
include/linux/firmware.h | 3 +
kernel/sysctl.c | 11 +
tools/testing/selftests/firmware/Makefile | 2 +-
tools/testing/selftests/firmware/config | 4 +
tools/testing/selftests/firmware/fw_fallback.sh | 65 +-
tools/testing/selftests/firmware/fw_filesystem.sh | 72 +-
tools/testing/selftests/firmware/fw_lib.sh | 194 +++++
tools/testing/selftests/firmware/fw_run_tests.sh | 70 ++
19 files changed, 1332 insertions(+), 862 deletions(-)
create mode 100644 drivers/base/firmware_loader/Makefile
create mode 100644 drivers/base/firmware_loader/fallback.c
create mode 100644 drivers/base/firmware_loader/fallback.h
create mode 100644 drivers/base/firmware_loader/fallback_table.c
create mode 100644 drivers/base/firmware_loader/firmware.h
rename drivers/base/{firmware_class.c => firmware_loader/main.c} (60%)
create mode 100755 tools/testing/selftests/firmware/fw_lib.sh
create mode 100755 tools/testing/selftests/firmware/fw_run_tests.sh

--
2.16.2