The Driver Synchronization Core (DSC) is a set of synchronization
primitives for use by the driver's orchestration layer. It provides APIs
for ensuring safe state transitions (including bring up and tear down)
of major driver objects: a single driver, associated psocs, and their
associated vdevs.
APIs are divided into two categories: mutual exclusion of conflicting
transitions, and operation tracking, blocking, and waiting capabilities.
For part 3, add the psoc-level implementation.
Change-Id: I30406c61e89cc220a2697e13f38289554985a7bf
CRs-Fixed: 2290260
The Driver Synchronization Core (DSC) is a set of synchronization
primitives for use by the driver's orchestration layer. It provides APIs
for ensuring safe state transitions (including bring up and tear down)
of major driver objects: a single driver, associated psocs, and their
associated vdevs.
APIs are divided into two categories: mutual exclusion of conflicting
transitions, and operation tracking, blocking, and waiting capabilities.
For part 2, add the driver-level implementation.
Change-Id: I86630edfe11e89cc035974ae76ed3908cf68cde4
CRs-Fixed: 2290260
The Driver Synchronization Core (DSC) is a set of synchronization
primitives for use by the driver's orchestration layer. It provides APIs
for ensuring safe state transitions (including bring up and tear down)
of major driver objects: a single driver, associated psocs, and their
associated vdevs.
APIs are divided into two categories: mutual exclusion of conflicting
transitions, and operation tracking, blocking, and waiting capabilities.
For part 1, add common infrastructure and headers.
Change-Id: Id290e66d2dccd28b89fed5f285d3692ff3c814e7
CRs-Fixed: 2290260
Check PF_WAKE_UP_IDLE macro defined to determine the presence of
kernel scheduler APIs for wake up on an idle CPU.
If not, call dummy functions instead.
Change-Id: I34065aa244dc132e228c6e9f764c8eae90d81261
CRs-Fixed: 2168716
In monitor mode, current implementation
uses the preample type, vht_sig_a_1 and vht_sig_a_1
values associated with each mpdu, instead of reusing
the values from the first mpdu, to calculate data rates.
This is causing incorrect rates to be recorded in monitor mode logs
Reuse preample type, vht_sig_a_1 and vht_sig_a_1 of first
mpdu till the last mpdu is reached.
Change-Id: Ia6e5c1b3b0cc8d8b27f16cdfbd469fdba5c4a8f2
CRs-Fixed: 2276766
Separate out HL and LL Rx Data Path in different files
to compile out features cleanly
Change-Id: Ifc0e2d7e740142f0115d1fcd53db2936f7a30979
CRs-Fixed: 2287351
Separate out HL and LL Tx Data Path in different files
to compile out features cleanly.
Change-Id: I9033a5bc83bbc95ff00be3f46dc6eda65eab9e71
CRs-Fixed: 2287346
When the scan is rejected, driver saves the scan reject reason and the
rejected time by converting the jiffies to msec. In case when
HZ is 100 while converting jiffies to msec, jiffies_to_msecs() return
wrapped value of jiffies(in msec). This result value of the current jiffies
(return value of jiffies_to_msecs API) becomes greater than scan reject
time (pHddCtx->last_scan_reject_timestamp) and __wlan_hdd_cfg80211_scan
trigger SSR in case of scan rejection.
Fix is to Use jiffiy directly instead of using jiffies_to_msecs()
while updating scan reject time(pHddCtx->last_scan_reject_timestamp).
Change-Id: Ib86830456fdc48143bf282779216ab94aed11923
CRs-Fixed: 2289992
Currently in driver we are advertising LRO Support as part of
hdd_init_station_mode() with dev->features |= NETIF_F_LRO.
This is not tied up with INI param "LROEnable", to advertise LRO
to kernel. Add INI check for "LROEnable" before advertising LRO.
Change-Id: I6a3940b65e72ae12015d0303c573456d44e1ac9c
CRs-Fixed: 2269590
Per protocol definition, the ssid length in OWE bss’s IE is zero
when in OWE transition mode. And the api wlan_hdd_get_sta_stats
thinks it is invalid ssidlen and returns directly. It causes the
uplayer can not get stats info.
Change-Id: I20eb7aa79ce25a4b66d9be093510eb414d4fca42
CRs-Fixed: 2285542
With the latest android upgrade after the sap is turned off
change interface will switch netdev back to original mode and
starting the adapter in this state will create resources even
when the upper layer is not using the netdev.
Do not start the adapter from the change interface.
Change-Id: I763879ecc84dca4115bca0e4e805b8b4b6108bb8
CRs-Fixed: 2270730
The PLD probe event handler does both probe and reinit. However, the
probe and reinit logics are quite different. Split this shared logic
into two handler functions, one for probe and one for reinit. Update the
PLD probe event handler to invoke the correct handler function based on
the reinit flag received as part of the event.
Change-Id: Id48d18aee0d449b6849297848c2bab96c6e008ae
CRs-Fixed: 2290221
The HDD bus bandwidth infrastructure init/deinit sequence is currently
very sporadic. Startup and re-init initialize it at different point, and
failed to de-initialize it in the case of failure. Likewise, exit and
shutdown de-initialize it at different points. Update the HDD bus
bandwidth init/deinit sequence so that it is uniform and symmetrical in
all situations.
Change-Id: I5312bd340d885aafb8d4e809672eb02afc199781
CRs-Fixed: 2290237
wlan_hdd_cfg80211_sched_scan_stop() currently does not validate the
given adapter or the hdd context. Validate both before performing a
scheduled scan stop operation on said adapter.
Change-Id: I4e0370ad059fbb0371a38300f33dfae7a9f8106d
CRs-Fixed: 2289411
Currently driver allocates buffer of size 10KB which is
getting filled completely in some cases when size of
ll_stats is more than 10KB. Because of this driver
ignores some of the stats and user space does not
get the complete stats.
To address this issue increase the size of the buffer
to 12 KB.
Change-Id: I8c5500545a3c69ecb5ba3b1bb3e7f3338a61714f
CRs-Fixed: 2279495
Use new cfg API for P2P and TDLS WNI configures, and cleanup related
legacy codes. Remove two not use P2P INI configures.
Change-Id: Ie37fd5e598ececba561581952a23601595607b2e
CRs-Fixed: 2286387
When the Nss is set to 2,MCS0-11 is used as default HE MCS config
for 2x2 mode which may not be same as 1x1 HE MCS config.
Use the 1x1 MCS config for Nss setting to 2 to keep the MCS
config same for both streams.
Change-Id: I76157357667696979976983e81f014182dfe769e
CRs-Fixed: 2284467
If any WMA request is queued in wma hold req/vdev resp queue after fw
has crashed and sent the corresponding uevent to HOST, request will
timeout and if at the same time, SSR is also going on, it may lead to
various issues and crashes.
Check whether target is ready or not before queuing any request
in wma hold req/vdev resp queue.
Change-Id: I26b5746e9ba4f57f46b3a5a486bd85ef150d0ee7
CRs-Fixed: 2289004
Change the BA buffer size attribute value to 16-bit to set
the 256 BA buffer size. Define the max supported BA buffer
size and advertise the max supported buffer size if the
user configures the value greater than supported.
Change-Id: I5efdee60517e02572386e9751706722987f44261
CRs-Fixed: 2284461
Add state machine changes to Addba request handling
in order to include IN_PROGRESS state until addba
response tx is not successfully completed. If response
tx is successful, move tid to ACTIVE state.
CRs-Fixed: 2254887
Change-Id: I09f9d8aa09bbb3fb98e0873657d1b8072371f0d8
No frame length check when extract 11w transaction id from SA
query request and response action frame, if frame length is
shorter than expected, buffer overflow will happen
Change-Id: Iddefa809023da244564cfd227ccfe8c2de5717c0
CRs-Fixed: 2263320
A number of HDD and IPA logs are generally unnecessary and have been
identified as contributing to log spam. Reduce these log messages to the
debug level.
Change-Id: I2f92bb4caec5adc65fdad0146298aa5f88b43def
CRs-Fixed: 2288430
Reduce error logs in __hdd_netdev_notifier_call which do not alway
indicate an error.
Change-Id: I7386cb26993877ed86802b60240cd04b85dd4e8b
CRs-Fixed: 2287681
Support of ini to control driver acs is removed, therefore remove
related code which is no longer used.
Change-Id: I3d279de67ee5f36b785e4516edd9f14484311f5c
CRs-Fixed: 2284253
SARv1 to SARv2 upgrade can have the following problem:
1) Userspace application was written to use SARv1 BDF entries
2) Product is configured with SAR V2 BDF entries
So introduce WLAN_FEATURE_SARV1_TO_SARV2 which has the logic:
If this feature is enabled, and if the firmware is configured with SAR
V2 support, and if the incoming request is to enable a SAR V1 BDF
entry, then the WMI command is generated to actually configure a SAR
V2 BDF entry.
CRs-Fixed: 2282071
Change-Id: I1f4c65d0315b56af6646ca1d5491eaa9c1f732a5
SAR version information is now being populated in struct wma_tgt_cfg.
Keep a copy of the information in the HDD context for local reference.
Change-Id: I7bc943fc71b651baeb56e4966d97efca2cccbf4e
CRs-Fixed: 2282071
HDD needs to know the SAR version running in firmware so add that
information to struct wma_tgt_cfg.
Change-Id: Idcb79921cb417a923ced8b6cfed2672bee03eaf1
CRs-Fixed: 2282071
HDD currently reset various txrx handles during the deinit of an access
point (AP) interface, but fails to do so for station interfaces. This
can lead to a user-after-free while changing the interface mode from
station to something else. Reset the txrx handles during deinit for
station interfaces.
Change-Id: I189089fabefb9c430da493c0c99473179d02b5cd
CRs-Fixed: 2283532