In the current implementaion, if multivdev restart req is not sent
due to error cases, then the multivdev restart timer gets restarted
after every timeout and the vdev sm is stuck in same state.
Add multivdev restart timeout wait counter and assert after the wait
timeout expires.
Change-Id: I5e249583e309660281b4a9cd7253b0731c5483cd
CRs-Fixed: 2621230
Setting max vdev count per psoc to 60 as max client qwrap
mode has max vdev count per psoc as 60 for 2 pdevs.
Similarly increased max vdev count per pdev to 30.
Change-Id: I1b6858f1461dfe05e11695435d52958083322345
On receiving multi-vdev restart response from FW, the bit map size
indicates the size in words. Due to which when extracting the info
into host data structure only 2bytes are copied as against 2words.
Fix by extracting the complete contents of the TLV.
Change-Id: Ibc5de7c2b1d74e0fbcd2317e57955915f2dc0c3d
CRs-Fixed: 2619141
A new flag "is_cfr_rcc_capable", is introduced to enable RCC.
Currently, this flag is enabled only for QCA6018.
Change-Id: Ifdd1922c655c0bb743147e3f51d3ca32cac3dd2e
Add counters for following scenarios -
1. Ucode aborts DMA of CFR data when a higher priority TX/RX activity
needs to be scheduled, add counters in host to identify the no. of
aborts.
2. Add counters to track the total no. of TX-based CFR captures since
wifi up.
Change-Id: I3c0e0e68651348c3484a14dfcd1f664962c8647f
1. Remove the handler that flushes all pending DBR and txrx
events, since that is not being used.
2. PPDU TLV subscribe logic is integrated with ol stats layer,
remove redundant subscriber alloc.
3. Downgrade debug level of timer prints, as error handling timer
fires every 3 secs.
Change-Id: I2a5d2ae10ebee069dd30c1ed87d6560b30f77427
In CFR error handling lut ageout timer, following fixes are made -
1. Fire error handling timer every 3 secs
2. Start/Stop timer only when pdev->cfr_rcc_mode transitions from enable
to disable and vice versa
3. Stop/Free timer during deinit of pdev, incase user issues wifi down
without disabling cfr
Change-Id: I2f9819706d1440d675edfdd933839dbc3ebddbb0
37th bit is being set as an exchange between FW and ucode
to indicate that it is a DDR address to PCSS module.
As a result of which Cookie lookup fails while comparing
all 40 bits, since the physical address of DBR buffer
does not match with the physical address of the received
buffer.
Since lower 36bits represents physical address,
Use only 4 least significant bits from higher 32bits along
with lower 32 bits while programming the physical address in
DBR SRNG. Format: ( low32 + 4 bits of high32 ).
Change-Id: I2cb09c00a9942966266ba81f56f0c6c173671e2f
Do not flush the DBR event for which the corresponding
TX/RX event is yet to be received.
Once the new PPDU TLV is received, flush the previous
pending DBR events.
Change-Id: I4495a45db139128d2af01f79744021c6ad6bf322
rx ack does not get created for tx failed frames.
this is done with a check for completion status on the previous frame.
Change-Id: Idfff8aa8165542bb2ca2cf1370a201ccb057997e
Send bcn_tx_rate as vdev start paramter.
This will avoid sending individual wmi
command for the same during vdev up.
Change-Id: I890d89e7c607bc24d2726ded7e51d4dd19ca3359
Enable vlan hardware acceleration support in Rx path
if multipass feature enabled.
It is expected for a packet to have vlan header in-placed
and vlan_id is padded with zero. If not, drop the frame with
proper error updation.
Update vlan_id if frame comes with special peer and has vlan
header in placed and vlan_id padded with 0.
Change-Id: Ife7a371dcca20634b0dc99f00cb02551dbff611f
CRs-Fixed: 2584007
Lithium HW can parse each MSDU when packets are enqueued to transmit
classifier and each MSDU can get enqueued to different MSDU-Queue.
By default, there are 2 queues per TID – UDP and NON-UDP. Based on
the flow parsing, packets will be queued to either of them.
Enterprise customers uses RAW mode frames which transmit classifier
would not be able to identify L4 protocol for UDP or NON-UDP queue
for encrypted frames.
Customer can also have different application based packets which needs
to be enqueued to differently prioritized queues. They can choose to
tag each MSDU based on application DPI and derive the flow priority
as below –
• UDP
• NON-UDP
• HI-PRIO
• LOW-PRIO
Customer needs API support from host which will provide an ast-index
based on a particular flow id given peer mac address. Based on the mac
address, host will find the associated peer and return the ast_index &
cache set number corresponding to the flow id from peer flow based ast
entry table. Customer will then program this ast-index and ast override
in transmit classifier CMD ring to enqueue MSDU to a specific
flow-queuein TQM.
Host API:
Input parameter – uint8_t *macaddress,uint8_t flowid,uint8_t tid
Output – uint16_t ast_index
Change-Id: I62b2308510ee7a43b153e125dc3bee6abbad0848