^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) =====================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) Firmware lookup order
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) =====================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) Different functionality is available to enable firmware to be found.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) Below is chronological order of how firmware will be looked for once
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) a driver issues a firmware API call.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) * The ''Built-in firmware'' is checked first, if the firmware is present we
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) return it immediately
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) * The ''Firmware cache'' is looked at next. If the firmware is found we
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) return it immediately
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) * The ''Direct filesystem lookup'' is performed next, if found we
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) return it immediately
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) * The ''Platform firmware fallback'' is performed next, but only when
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) firmware_request_platform() is used, if found we return it immediately
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) * If no firmware has been found and the fallback mechanism was enabled
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) the sysfs interface is created. After this either a kobject uevent
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) is issued or the custom firmware loading is relied upon for firmware
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) loading up to the timeout value.