Implement linux firmware KPI compat code.
This includes: request_firmware() request_firmware_nowait(),
firmware_request_nowarn(), and release_firmware().
We do not currently defer loading in the "nowait" case.
Given we will try to map requested names from natively ported
or full-linuxkpi using drivers to a firmware(9) auto-loading
format in which we can handle the .ko file and image name
we quieten firmware(9) and print success or failure (unless
the _nowarn() version was called) on the linuxkpi implementation.
At the moment we try up-to 4 different naming combinations,
with path stripped, original name, and requested name with '/'
or '.' replaced.
Sponsored by: The FreeBSD Foundation
Sponsored by: Rubicon Communications, LLC (d/b/a "Netgate") (firmware(9) update)
Changes since the last version ( D26277, D26598 ): addressed kib's comments, fixed a bug when returning fw pointer in error case not being initialized to zero [as some drivers will use any results], implement the _nowarn() version needed by iwlwifi now, and ath10k(athp once switched), make use of firmware(9) NOWARN flag to quieten attempts possibly confusing users and add our own printfs (respecting the linux _nowarn() version).
Let me know in case I need to bump __FreeBSD_version.