WMI service handle is not attached for all Pdev with recent
WMI changes. Fix host panic due to missing WMI service handles
for all Pdev.
Change-Id: Ic6107120ea4a49e49b86ebbfe385e440de3f49a9
For TSO packets we get Tx completion for each segment,
whereas nbuf tracking code has only one entry. So remove
nbuf tracking record entry when nbuf->users is 1.
Change-Id: I7f66eb91d802c909ee0c9a0243be6415c82c211e
CRs-Fixed: 2179883
Change HE flags in it_present from 22 to 23.
This expects corresponding change in wireshark also decode correctly.
Change-Id: I2fcbabd7156e8f836440c170e711b6f7f8f4f262
CRs-Fixed: 2177255
Current driver is using pld_wlan_set_dfs_nol() and pld_wlan_get_dfs_nol()
directly through eSAP_DFS_NOL_SET and eSAP_DFS_NOL_GET case statements
respectively within HDD module. These methods are obsoleted as per
new driver design.
Use DFS component's utils_dfs_init_nol() and utils_dfs_save_nol() APIs
instead to get and set DFS NOL respectively.
Change-Id: I63e8adac3f99c2052c26e6b01d19071f098e0a4f
CRs-Fixed: 2178580
For reg no-offload case, it needs to call the
reg_program_chan_list() function directory to apply
the right channel info.
Change-Id: Ieb7acf9f96973a6e56146e2763f455ef92838c4a
CRs-Fixed: 2174286
DFS capability was not set properly for Partial-offload(PO) and
Direct-Attach(DA) radio. Thus radar detection failed.
Change-Id: I5493d7195a57f160792a411653c05bbf220d3561
CRs-Fixed: 2160418
If gDisableDFSChSwitch is configured as 1, channel should not be
changed even radar is found.
Set usenol as 0 when gDisableDFSChSwitch is configured as 1.
Change-Id: I05c4afea3eb9af9c541b2324a2d50ea59c05f7d7
CRs-Fixed: 2168792
Knowing the current and historical state of high level abstractions in
the driver is critical to successful debugging of issues. To assist
these efforts, add info-level logs for the following object manager
psoc/pdev/vdev/peer lifecycle events.
* create
* logical destroy
* physical destroy
Change-Id: Idbb5350e85cb1b452e076a6fece31f83dcc7aafc
CRs-Fixed: 2179681
Due to Rx sensitivity issue, sometime beacons are seen on adjacent
channel so workaround in software is needed. If DS params or HT
info are present driver can get proper channel info from these IEs
and set channel_mismatch so that the older RSSI values are used in
new entry.
For the cases where DS params and HT info is not present, driver
needs to check below conditions to get proper channel and set
channel_mismatch so that the older RSSI values are used in
new entry:
-- The old entry channel and new entry channel are not same
-- RSSI is less than -80, this indicate that the signal has
leaked in adjacent channel
Change-Id: Ie9dc26f938b58b0c5d071ce4f2ba02b8e7fd4f60
CRs-Fixed: 2180012
Add API to return the msdu link descriptor from obtained from NSS back to
host link descriptor pool.
CRs-Fixed: 2178692
Change-Id: Ib4f967ea887e013d6461ba760a45dbda6fd92baa
In the routine sap_ch_params_to_bonding_channels, the channels is set
invalid value 0 if center freq segment0 for channel params is 0.
ch_params->center_freq_seg0 should be set for 2g HT20 mode.
Change-Id: I063f1341da5a4934c97dec4bcda9367101de7cc5
CRs-Fixed: 2179368
Currently DFS object can only be allocated if radio supports 5G.
Rome supports 5G and saves its wireless_mode in hal_reg_cap of
psoc->service_param because Rome FW does not support wmi event
wmi_service_ready_ext_event_id.
Check wireless_modes based on different DFS_SUPPORT.
Change-Id: I0120dde4fcf47bd71f6da512fae64dd62f5f46c8
CRs-Fixed: 2179925
Add a faked WMI layer for OCB unit test on platform does not
support OCB feature.
CRs-Fixed: 2177563
Change-Id: I35b272faa21f3b225eb036c06a15b06ab4b389ae
dp_tx_send_exception is an exception path that transmits frames
through FW by setting DP_TX_DESC_FLAG_TO_FW
Change-Id: Id6abfcd2bf060c4fe3aaca91634f3be501530a7e
CRs-Fixed: 2176814
In current implementation, after radar detection, a new channel is selected
and then radar is disabled on the new channel. The new channel may be a DFS
channel and radar will be disabled on the new channel.
Radar disable should be called for the current channel and not on the new
channel. Therefore, disable the radar first and then select the new
channel.
Change-Id: Ied57f8910b30ee2181406e26ace1e7a44ff691b4
CRs-Fixed: 2172007
The pulse_delta_peak of chirp radar is not zero, which is one more radar
detection rule for ETSI chirp. Driver need delta peak related information
from FW for ETSI chirp radar detection.
Two more fields pulse_delta_peak and pulse_delta_diff are added in
wmi_dfs_radar_event_fixed_param.
Change-Id: Ief8dbea1c1336f45a24195853d5e1356bf3cad27
CRs-Fixed: 2179933
Move the peer Rx activity to PPDU_stats_handler
which is common for both NSS offload and Host datapath modes.
Change-Id: I06c3dd14d117cc291e3b19076ddfc7f3be00e602
CRs-Fixed: 2176385
Every time when dfs_count_the_other_delay_elements is called,
delta_peak_match_count is set to 1, which is not correct.
delta_peak_match_count should be initialized once like numpulses
in dfs_bin_pri_check.
Change-Id: I9cf432cbe7b0ddb42a0c33adcbef07d0c48f42f8
CRs-Fixed: 2165538
For each scan node in db, real delete should be called only once.
If 2 threads are trying to delete a note, only one thread should
mark it delete and decrement the ref count and the other thread
should return. or use after free happens as some other thread is
still using it.
Change-Id: I8cfaea73f28f31406816c9fb38f6b65f6b50428d
CRs-Fixed: 2169890
When HTC packet is sent to CE for physical tx, the tx compl
interrupt can get triggered very quickly, resulting the
HTC buffer being freed at a very early time. Any memory
access into the same HTC buffer after HTC tx compl returns
will be a use-after-free case.
Relocate all HTC packet touching code to places before
it gets populated to CE for tx.
Change-Id: I8bcac16566156104063013c7eb17b2f0debd32e6
CRs-Fixed: 2178880
When start sap+sap with acs concurrently, the first sap usually
choose dfs channel, the second sap will be failed to start.
when check multiple beaconing sessions it only checks in_use sap for
pm_conc_connection_lis which means bss started sap while it has no
started sap at that time, so the second sap can't follow the first sap's
dfs channel and start failed according to current code flow.
Fix is to use no_of_open_sessions to check multiple beaconing sessions.
CRs-Fixed: 2170567
Change-Id: Iada737dffcd826aaff3873b81355018d53485948
Currently WMI handler for WMI_PHYERR_EVENTID is used to handle DFS and
spectral scan phy errors; but Rome FW still uses WMI_PHYERR_EVENTID
and WMI_DFS_RADAR_EVENTID and does not have spectral scan phy errors.
Restore WMI_PHYERR_EVENTID and WMI_DFS_RADAR_EVENTID as Rome FW
requirement.
Change-Id: I16761f6da947619a5969ac8dcd09498d508ad715
CRs-Fixed: 2160954
Currently WMI handler for WMI_PHYERR_EVENTID is used to handle DFS and
spectral scan phy errors, but Rome FW still uses WMI_PHYERR_EVENTID
and WMI_DFS_RADAR_EVENTID and does not have spectral scan phy errors.
Restore WMI_PHYERR_EVENTID and WMI_DFS_RADAR_EVENTID as Rome FW
requirement.
Change-Id: I1bb4d6dcafc831f8ea45f0fa1646db47f291fabe
CRs-Fixed: 2160372
Currently WMI handler for WMI_PHYERR_EVENTID is used to handle DFS and
spectral scan phy errors; but Rome FW still uses WMI_PHYERR_EVENTID
and WMI_DFS_RADAR_EVENTID and does not have spectral scan phy errors.
Restore WMI_PHYERR_EVENTID and WMI_DFS_RADAR_EVENTID as Rome FW
requirement.
Change-Id: I23ca4ff6c9be0ba6a0f21f0e0ef9161b1942f629
CRs-Fixed: 2160431
Currently WMI handler for WMI_PHYERR_EVENTID is used to handle DFS and
spectral scan phy errors; but Rome FW still uses WMI_PHYERR_EVENTID
and WMI_DFS_RADAR_EVENTID and does not have spectral scan phy errors.
Restore WMI_PHYERR_EVENTID and WMI_DFS_RADAR_EVENTID as Rome FW
requirement.
Change-Id: I7a5c4f723bedfdeb477ac36ac1290809ca06fb13
CRs-Fixed: 2160418
Add WMI support for enabling/disabling the FW scheduler APIs and stats
per peer for MU and OFDMA
Change-Id: I185ca6ff5b564fc9b83007fd4e37da82b5c9976e
CRs-Fixed: 2169179
removing Length check temporarily
as existing length check is not applicable for HK.
In HK, CTL bin file size for 5G is 26556 bytes and
for 2G is 5852 bytes. 1.7K is the maximum payload size supported by TLV.
To support, we add header info: seq, endflag, total_len
before each chunks. Total bin files are transferred
as multiple chunks with header info on the top.
Change-Id: I7aedf85d6ee66a99cb4b6dca464dbe02caec371b
Firmware needs 6 seconds timeout for HTC control
messages.
Increase the HTC control message timeout to 6
seconds
Change-Id: I79a843afe028098a9cb7e98c274b54132357c76b
CRs-Fixed: 2170953
QDF_MAC_ADDRESS_STR has been depreciated in favor of
QDF_MAC_ADDR_STR. Replace all usages with the new macro.
Change-Id: I534923783a32288f7861caf9ae52ca3aac965809
CRs-Fixed: 2179126
When a timer callback function is being executed, the kernel still has the
timer object data structure. Therefore, do not free the object from within
the timer callback function. Since there are many DFS NOL timers and the
number of DFS NOL timers are not known at the device object creation time
we cannot allocate static memory for DFS NOL timers. They should be
created and freed dynamically. While waiting for the timer to complete
we should not hold the same lock that is held by the timer callback
function, holding the same lock might lead to deadlock.
Instead of freeing the timer object from within the timer we schedule a
workQueue and the timer object is freed from the workQueue callback
function. While destroying the device object or resetting DFS, we need to
stop the timers and free (cleanup) the DFS NOL timer objects that have
already been added. While waiting for a timer to complete
(qdf_timer_sync_cancel) we do not hold the lock that is used by the timer
function callback to protect the list of DFS NOL timers. This is to avoid
deadlock. The list access is protected by the lock so that either the
cleanup thread or the DFS NOL timer removes a timer object.
Also add fix for unwanted channel addition to precac NOL list when precac
is not enabled.
Change-Id: I1ee935fd15a79579197ccccba0e37c6850fde866
CRs-Fixed: 2171259
Add WMI support to set SU and MU TX beamforming sounding interval on
host driver in addition to enabling/disabling the above ability.
Change-Id: Ic3ea109e47c0df13db2c919bbcdf5fc7d6164698
CRs-Fixed: 2169176
Add min, max, reg max, antenna gain and max tx power to channel
field of WMI command for scan, vdev start. Max tx power is set
to reg max power. It is set to TPC on IE for MCL STA case.
Change-Id: I416b94f68a9c5db925a9ef8c731350ba27caa7a1
QDF_MAC_ADDR_BROADCAST_INITIALIZER has been depreciated in favor of
QDF_MAC_ADDR_BCAST_INIT. Replace all usages with the new macro.
Change-Id: I5214558cd3788eacfe27188c230641edc86b1670
CRs-Fixed: 2176525
For the AP+AP SCC LTE-Coex case, when channel avoidance event
is reported, the channel switch request for SAP will be blocked
by policy manager if the target channel is different with the
operating channel of the existing SAP due to the SCC policy.
Need to update the logic to give higher priority to the channel
avoidance request.
Change-Id: Ie42bab50c1fa92e4e8df9f1b0ce8b8f4f09551b5
CRs-Fixed: 2176250
At present vdev holds ref cnt on pdev.
The wlan_objmgr_pdev_vdev_detach would trigger:
pdev delete.
So, get psoc from pdev firstly before
wlan_objmgr_pdev_vdev_detach, to avoid accessing
pdev content after free.
Change-Id: I7c1acc15a1dfbffaa81f0b7f827a2686ddaa469f
CRs-Fixed: 2171301
Accessing partially created objects are leading to freeing the
objects due to uninitialized ref count
Fix checks the valid object state to
1) invoke the handler on the object for iterate API
2) get reference of the object
Change-Id: I479d68a57e16b0eb679d3a8c3e45cd924a7cff3e
CRs-Fixed: 2161085