Idle restart needs to prevent system suspend and hence, add new
reason code for idle restart.
Change-Id: I15f7be551f00bd910a61080c087a8f85dd2fe7da
CRs-Fixed: 2490992
The host driver serialization module currently supports upto 4
commands in non scan pending queue. This is calculated at the
wlan_serialization_vdev_create_handler() as:
max_pending_cmds = (WLAN_SER_MAX_PENDING_CMDS /
WLAN_SER_MAX_VDEVS)
But in SAP case, if multiple STA sends deauth at the same time,
4 pending commands in non scan pending queue is not sufficient
and will result in only disassoc from the first 4 STA getting
honored.
The current host wlan driver supports 3 SAP mode and
2 STA vdevs amounting to a total of 5 vdevs supported.
So calculate the total non scan pending commands for
serialization based on the total peers supported for each
mode to fix this issue.
In SAP case, maximum 32 peer are supported and for STA case,
maximum 4 pending commands for serialization. So change the
max pending commands calculation as:
max_pending_cmds = (No. of sap modes supported * 32) +
(No .of STA modes supported *4 )
For MCL case the definition of WLAN_SER_MAX_PENDING_CMDS
will be moved to Kbuild.
For WIN case, the existing maximum count will be retained.
Change-Id: Iff1d9430b45e26812b600560b08e85e6040eafef
CRs-Fixed: 2483520
Change Idbde9d70c64bc131813f5789c0453c9b3736228b has added
a logic to parse a string to uint16 array, there is no test
case written for this in unit test case infrastructure.
Add a unit test case to verify the logic written with the change
Idbde9d70c64bc131813f5789c0453c9b3736228b.
Change-Id: I38d6a0d6003807de7f5ec654926bd75da8b0996c
CRs-fixed: 2478274
Initialize type specific data in process_tx_info
while processing full tx pktlog messages.
Change-Id: Icbdd20e7e4604f117912e5a4402f7aa5048e671e
CRs-Fixed: 2468471
In wifi_pos_parse_req(), payload sections of nl attributes ATTR_DATA and
ATTR_META_DATA are type casted to driver internal structures tAniMsgHdr
and wifi_pos_field_info respectively without validating payload lengths
which can lead to buffer overread if the payload lengths are less than
size of internal structures.
To fix this, avoid type-cast and return error if payload lengths of nl
attributes ATTR_DATA and ATTR_META_DATA are less than size of tAniMsgHdr
and wifi_pos_field_info respectively.
Change-Id: Ie9e3197f2cd3852b394e834991aa8d3a5b530d85
CRs-Fixed: 2471275
The existing hex dump API dumps hex data only.
Add API so that the ascii data can also be
dumped along with hex dump
Change-Id: Icbe74b26f47601a249e3d7ac701f2a19d70fb83b
CRs-Fixed: 2464738
Reducing the log level of debug log to avoid console logging
and instead get it on the cnss diag log.
Change-Id: Ie5a1eb6f45ffa97790d91528a173b16319ec760b
CRs-Fixed: 2486057
Check if host is reaping a descriptor which is
already reaped then drop RX desc processing instead of asserting.
Macro DUP_RX_DESC_WAR added before dp_rx_dump_info_and_assert function
which does not assert for the case WAR is enabled.
Change-Id: I4f3c1cc16de79f2483cd415582970e093e81d465
CRs-Fixed: 2486057
Defines QDF APIs for abstraction of cpumask_clear, cpumask_set_cpu,
and cpumask_setall.
Change-Id: I1678c600c7043b1d4a19e0479ceab9af0ce83d01
CRs-Fixed: 2478893
Remove CONFIG_MCL for Beacon buf send WMI command APIs.
And move them under WLAN_WMI_BCN.
Change-Id: Ie5053334bd7498cb9dd84dbc515ffd3414a4ad32
CRs-Fixed: 2483567
Target firmware Assert are at times related to Host Driver
interaction with the firmware. To debug these issues, host
driver dump is mandatory. The feature provides memory dump
of data structures registed with this framework. The dumps
are saved which can later be loaded using gdb and analysed.
Add apis support for the feature.
Change-Id: I41c5126a49a698969f24b17187f78f4b4db7a51e
CRs-Fixed: 2478139
Enable TLV support for vdev delete all
peer request which will replace individual peer
delete of peers under a vdev during vdev down.
Change-Id: I777bd3dfb4ed8d8493456d3a0fbc90edd8fc75a2
CRs-Fixed: 2477601
Add API to support cancellation of a non-scan command to match with the
vdev and is a non-blocking serialization command.
Change-Id: I31556ea8f35b9caf314f10eba0f0f655e3fce806
CRs-Fixed: 2481935
Update regdb with QCA regulatory database version 29 with following
changes:
1) Create new full RD Def: APL9_MKKC and change Korea Country mapping to
APL9_MKKC.
2) Change APL9 to CTL Region MKK.
3) Change APL9 power to 23 for all 5GHz subbands.
4) Create new 2GHz RD Def: KRRA and Full RD Def: APL9_KRRA.
5) Create new MKK17_MKKC for Japan: Same as MKK5 but with added
channel 144 (Japan country code remains mapped to MKK5_MKKC for now).
6) Change Japan MKK5 lower bands to "indoor".
7) Change Canada in LA country table to FCC6_FCCA.
8) Change Georgia to ETSI1_World.
9) Change Dominican Republic to FCC3_FCCA.
10) Change Kenya to ETSI13_WORLD.
11) Change Kazakhstan to MKK5_MKKC.
12) New Countries added Aland Islands, Andorra, Antigua and Barbuda,
Cameroon, Cook Islands, Falkland Islands, Faroe Islands, French
Southern Territories, Georgia, Guernsey, Heard Island, Holy See, Isle
of Man, Jersey, Montserrat, New Caledonia, Niue, Norfolk Island, Saint
Helena, San Marino, Sao Tome, Sint Maarten, Svalbard, United States
Minor Outlying Islands and Virgin Islands (British).
Change-Id: Ic64ac96fa3e0828f628fecced66297ce176b3d3a
CRs-Fixed: 2475613 2454185
Currently, driver sets BSS peer and self peer to NULL
only in case of PEER AP/GO. It nither set BSS peer nor self peer
to NULL for GO/AP while de-attaching peers. This results in bss peer
use after free issue while stopping soft AP.
In order to fix this issue, the driver should set bss peer and self
peer to NULL for GO/AP as well.
Fix is to set bss peer and self peer to NULL for both PEER and AP
cases.
Change-Id: I055573c062c5a4e71fef2a699131e10fb6d97d71
CRs-Fixed: 2488371
The EN302_502 radar pattern is applicable in a predefined list of
regulatory domains (defined in DFS component). During radar table attach,
the current regulatory domain is checked if it is one of the
applicable regulatory domains.
The predefined EN302_502 applicable domains are:
ETSI11_WORLD
ETSI12_WORLD
ETSI13_WORLD
ETSI14_WORLD
Predefining these regulatory domain pair values in DFS component will
affect future regulatory updates that modify/add regulatory domains
to this list. Also, as per regulatory update #27, ETSI13_WORLD is not
EN302_502 applicable and ETSI15_WORLD is EN302_502 applicable.
Introduce a regulatory API(is_regdmn_en302502_applicable()) that finds if
the current regulatory domain pair is one of the EN302_502
applicable domains.
Modify the EN302_502 applicable regulatory domains as follows:
ETSI11_WORLD
ETSI12_WORLD
ETSI14_WORLD
ETSI15_WORLD
CRs-Fixed: 2390875
Change-Id: I78839a796eeb53a6b06b9fe66e8cae58de8838fa
In register select window if the register offset falls
in the last stored register window in driver, register
window remap is not done. There is a case if platform
driver accesses the hardware registers and remaps the
register window, then driver wont be aware of this and
have the wrong cached register window. So when driver
tries to write or read it selects the wrong register
window and accesses wrong register address. So fix this
by always doing the register window remap.
Change-Id: Ic38cc8cc3d9d82a3534f5ea356027db324c9fe13
CRs-Fixed: 2477771
When pktlog feature is disabled then the target CE11 attributes
should be set to CE_ATTR_DISABLE_INTR. Currently, the target ce configs
are attached unconditionally. This leads to incorrect attribute set for
CE11 in case when pktlog feature is disabled and thereby abortion of
HWDTIM in target as target checks host_ie for CE11. Currently host_ie
is not set for CE11, this results in aborting of suspend mode as
target assumes that host is using CE11.
To mitigate this issue, attach the target ce configs based on pktlog
feature. When pktlog feature is disabled then set the host_ie for
CE11 which will indicate to target that host is not using CE11 and
target will not abort HWDTIM mode.
Change-Id: I331d3bd8eda0c2aba9d86fb7601ac2b74c9e2c31
CRs-Fixed: 2459887
When radar is found on Agile detector, the channels are not added to
NOL list and are only added to preCAC NOL list.
Add the radar affected channels, in Agile detector, to NOL list and to
preCAC NOL list based on the detector ID of the radar event received.
For subchannel marking, use agile channel instead of current operating
channel to the NOL when radar is found on agile detector.
Change-Id: Ifa61feeddbaaa81fe405972aa5826994a1383c00
CRs-Fixed: 2464929
In the current Agile DFS design it is assumed that the agile detector's
bandwidth is always 80Mhz. However, the agile detector inherits the
bandwidth of the current operating channel with the following
mapping:
Current Chan BW --- > AGILE BW
20 20
40 40
80/80+80/160 80
Provide support for Agile DFS on 20/40/80MHz channels based on the
current channel's bandwidth. Maintain a Binary Search Forest,
with each Binary Search Tree (BSTree) rooted by an 80MHz channel
structure. These BSTrees are connected by the preCAC list.
The primary key (identifier) of each node in the BSTree is an IEEE
channel. Each level of the BSTree has a unique bandwidth.
Remove the three existing precac lists: precac_required_list,
precac_done_list, precac nol_list.
Maintain
1) regular CAC and preCAC
2) regular NOL and preCAC NOL
information in the same Binary Search Forest.
Modify the following APIs to support the new framework.
1. Pick a channel for preCAC / Agile CAC.
(dfs_get_chan_from_precac_list, dfs_find_chan_for_agile_precac)
2. Reset the preCAC lists. (dfs_reset_precaclists)
3. If preCAC is done on a channel. (dfs_is_precac_done_on_ht20_40_80_chan,
dfs_is_precac_done_on_ht8080_ht160_chan)
4. Mark the channel as preCAC done / NOL. (dfs_mark_precac_nol,
dfs_mark_precac_done)
CRs-Fixed: 2464929
Change-Id: I6029ed919bd2275f46c4712ce1637ede4995557f
Spectral scan for QCA6018 failed due decoding the FFT bin in 2 bytes.
HWS team confirmed that for QCA6018, the FFT bin is in 4 bytes
representation.
Fixing this by modify the fftbin size WAR for QCA6018 to decode
4 bytes FFT bins.
Change-Id: I60e07370f7191544269d52640ae072f2a41f3833
CRs-Fixed: 2487055
Added new hal folder for pine. Included hkv2 functions whereever possible
to make sure there is not much code duplication.
Change-Id: I13247beb1af0b250f8e1bf182005f2513bdf9902
This command is used to send OEM data binary blobs
from application/service to firmware.
Change-Id: Id806638bf8c53c65b32177969d965290da5701b9
CRs-Fixed: 2477337
There are macro defined differenly for WIN and MCL
to pick up default INI value either for WIN or MCL.
The macro name uses WIN and MCL and also enabling the
right macro is controlled by CONFIG_MCL.
Replace the macro with CONFIG_AP_PLATFORM.
Change-Id: Ib5663532d45534cce1715ef06447116e2654e709
CRs-Fixed: 2484959
dp_reo_cmdlist_destroy frees any pending reo_cmds.
Each reo_cmd is associated with a handler which takes
reo_cmd->data as an input. This reo_cmd->data is a pdev
for dp_rx_bar_stats_cb. So validate pdev before
accessing it further.
Change-Id: I1c2d46d3e3f5ede4491500978153f501ebdeee87
CRs-Fixed: 2478910
During abrupt channel change (e.g. iwconfig), the vap is brought
down and then brought back up. Now if the Agile detector is running
during this period, the detector is turned off as part of vap down.
When the vap comes back up, as part of starting the Agile detector,
a status of OCAC_SUCCESS and frequency of dfs->dfs_agile_precac_freq
is sent to the API (dfs_start_agile_precac_timer). The
dfs_agile_precac_freq variable was meant to be 0 as part of starting
the timer but since it was never cleared, that freq was moved to
Agile CAC done state immediately.
Clear the dfs_agile_precac_freq as part of vap down in addition to
stopping the Agile precac timer.
Change-Id: Ife117277a5d85911ae310e19a406f88fb9a544f0
CRs-Fixed: 2467077
This is to remove CONFIG_MCL in wlan_flush_host_logs_for_fatal.
And move condition cds_is_log_report_in_progress to qcacld code.
Change-Id: Ie231e966229789bcd8fa69aef1bc20e9b07a88ae
CRs-Fixed: 2484897
This is to remove CONFIG_MCL in qcacmn code.
This change cleans CONFIG_MCL in wlan_logging_set_fw_flush_complete.
Change-Id: Ia417c90060b20b004b1e5408be654ff392a8113d
CRs-Fixed: 2484838
Add a QCA vendor sub command QCA_NL80211_VENDOR_SUBCMD_OEM_DATA
with attributes qca_wlan_vendor_attr_oem_data_params to support
OEM data. It is used to send OEM data binary blobs from
application/service to firmware. The attributes defined in enum
qca_wlan_vendor_attr_oem_data_params are used to deliver the
parameters.
Change-Id: I05ce91345c60ca8d194e70549608530e3ee8ec41
CRs-Fixed: 2477322
htt_command_record, htt_event_record, htt_wbm_event_record
function is used to log command,event, wbm event to
in-memory data-structure.
We call these function from htt path.
Change-Id: Ib3e18b895485c84f0010f8c3ba95c2da85b00bde
CRs-Fixed: 2428742
MCL needs the interface type to query policy mgr for PCL
when selecting random channel. The existing API
utils_dfs_get_random_channel doesn't provide the vdev
type. Add new utils_dfs_get_vdev_random_channel
with vdev parameter to support P2P GO random channel
selection.
Change-Id: I0c6841b1692baca92730a6be73653282c98f1682
CRs-Fixed: 2467871
The hw_nac support flag is used for HKv2 only
for indicating monitor direct feature in HKv2
HW. This is not required for HKv1 and was added
for test purpose only.
Change-Id: If44b2acc06d5bf65fcb1934fab2e68c5c7e0f651
Crs-Fixed: 2485142
A radio level parameter for configuring if external channel selection on
the radio is in progress is required to reduce the number of external
channel selection requests by the radio.
Add the parameter OL_ATH_EXT_ACS_REQUEST_IN_PROGRESS for this purpose.
Change-Id: I30ce066e840b11fe23158b896977fbf3924dbbf3
CRs-Fixed: 2483737
Replace macro CONFIG_MCL with FEATURE_PKTLOG for
pktlog related code.
Add some macro changes to ensure the following 3
functions' declarations are enclosed by the right
macros:
wlan_deregister_txrx_packetdump
wlan_register_txrx_packetdump
wlan_pkt_stats_to_logger_thread
Change-Id: I900de3be28faee8403923a5e4bd326e69895d998
CRs-Fixed: 2406250
For 3rd party platform, without CNSS module, PCIe card failed
to enable.
Function hif_pci_enable_bus() should call hif_enable_pci_nopld(),
not hif_enable_pci_pld(). So, checking platform driver supported
or not before enable bus. If platform driver is not supported,
return false in function hif_is_pld_based_target().
CRs-Fixed: 2439335
Change-Id: I57a1272f082e7ba1fbeee43d58a81997f3d0e6d7