[PATCH 0/5] firmware: Add support for loading compressed files

From: Takashi Iwai
Date: Mon May 20 2019 - 05:29:32 EST


this is a patch set to add the support for loading compressed firmware

The primary motivation is to reduce the storage size; e.g. currently
the amount of /lib/firmware on my machine counts up to 419MB, and this
can be reduced to 130MB file compression. No bad deal.

The feature adds only fallback to the compressed file, so it should
work as it was as long as the normal firmware file is present. The
f/w loader decompresses the content, so that there is no change needed
in the caller side.

Currently only XZ format is supported. A caveat is that the kernel XZ
helper code supports only CRC32 (or none) integrity check type, so
you'll have to compress the files via xz -C crc32 option.

The patch set begins with a few other improvements and refactoring,
followed by the compression support.

In addition to this, dracut needs a small fix to deal with the *.xz

Also, the latest patchset is found in topic/fw-decompress branch of my
sound.git tree:




Takashi Iwai (5):
firmware: Free temporary page table after vmapping
firmware: Unify the paged buffer release helper
firmware: Use kvmalloc for page tables
firmware: Factor out the paged buffer handling code
firmware: Add support for loading compressed files

drivers/base/firmware_loader/Kconfig | 18 +++
drivers/base/firmware_loader/fallback.c | 63 ++--------
drivers/base/firmware_loader/firmware.h | 16 ++-
drivers/base/firmware_loader/main.c | 212 +++++++++++++++++++++++++++++---
4 files changed, 235 insertions(+), 74 deletions(-)