The driver reports the random_mac_addr capability to upper layer
based on the service bit firmware reported. Driver sets the
spoofed flag in scan_ctrl_flag to firmware if upper layer has
enabled this feature in scan request.
When hardware rfkill is enabled in the firmware it will report the
capability via using WMI_TLV_SYS_CAP_INFO_RFKILL bit in the WMI_SERVICE_READY
event to the host. ath10k will check the capability, and if it is enabled then
ath10k will set the GPIO information to firmware using WMI_PDEV_SET_PARAM. When
the firmware detects hardware rfkill is enabled by the user, it will report it
via WMI_RFKILL_STATE_CHANGE_EVENTID. Once ath10k receives the event it will
send wmi command WMI_PDEV_SET_PARAM to the firmware to enable/disable the radio
and also notifies cfg80211.
We can't power off the device when rfkill is enabled, as otherwise the
firmware would not be able to detect GPIO changes and report them to the
host. So when rfkill is enabled, we need to keep the firmware running.
Tested with QCA6390 PCIe with firmware
WLAN.HST.1.0.1-01230-QCAHSTSWPLZ_V2_TO_X86-1.
When ath11k set HTT_H2T_MSG_TYPE_PPDU_STATS_CFG to firmware by default
when start, firmware not report HTT_T2H_MSG_TYPE_PPDU_STATS_IND without
pkt log enable.
Tested with QCA6390 PCIe with firmware
WLAN.HST.1.0.1-01230-QCAHSTSWPLZ_V2_TO_X86-1.
For the NL80211_REGDOM_SET_BY_USER hint from cfg80211, it set the new
alpha2 to ath11k, for AP based platforms, WMI_SET_INIT_COUNTRY_CMDID
is used to send to firmware, for STA platforms, it use another wmi
WMI_SET_CURRENT_COUNTRY_CMDID.
Tested with QCA6390 PCIe with firmware
WLAN.HST.1.0.1-01230-QCAHSTSWPLZ_V2_TO_X86-1.