cfg80211 requests regulatory.db once at ~1.3s — before /vendor mounts at
~2.5s — and caches the failure forever (regdb = ERR_PTR in
net/wireless/reg.c), leaving the kernel stuck in the world regulatory
domain: every 5GHz channel PASSIVE-SCAN, TX capped at 20dBm, and no way
to apply the US country code hint from the framework. On a network whose
AP sits on a DFS channel (ch 144 here) the adapter may never actively
probe, causing intermittent scan misses and multi-minute connects. No
runtime recovery is possible without root (NL80211_CMD_RELOAD_REGDB).
Similarly, an mt7921u adapter present at power-on requests its firmware
pre-/vendor, fails, and wastes ~31s in an MCU retry loop ('Failed to get
patch semaphore') before wireless_reprobe.sh can rebind it post-mount.
Embedded firmware is checked before any filesystem path, so both load
deterministically at first probe regardless of partition mount order.
Files live under firmware/ (CONFIG_EXTRA_FIRMWARE_DIR is srctree-relative);
firmware/.gitignore un-ignores them from the root *.bin exclusion. Adds
~890KB to the Image. Other USB adapters still use the reprobe fallback.
4 lines
211 B
Text
4 lines
211 B
Text
# Firmware blobs embedded into the kernel via CONFIG_EXTRA_FIRMWARE
|
|
# (see arch/arm64/configs/tart_defconfig). The kernel's root .gitignore
|
|
# excludes *.bin, which would silently drop these from commits.
|
|
!*.bin
|