qcacld-2.0 to qcacld-3.0 propagation
Update qcacld to configure only valid GPIO setting if enabled in
INI file. Default TSF Gpio value is set as invalid, so it will not
be set in firmware during driver load.
Change-Id: I0414becbf83718155a9ca51d60f34d0e8ffcd4e3
CRs-fixed: 994569
qcacld-2.0 to qcacld-3.0 propagation
Add configuration of gpio pin used for TSF. FW shall toggle
this gpio when receive capture/get tsf cmd.
Change-Id: I442f2de3af4f3946a20bf3f4a9d8c9b285aa7a7c
CRs-Fixed: 817527
qcacld-2.0 to qcacld-3.0 propagation
Get tsf from fw. Provide ioctl interface cap_tsf/get_tsf.
Driver issue wmi cmd to fw to realize capture/get.
It can be used in station and softap mode. For sta, getting
tsf from connected ap. For softap, it will generate tsf by-
self
Change-Id: I00d30882bce2f49ee3de3fa189e094c04c0d9943
CRs-Fixed: 817527
PLD stands for platform driver. It is a interface between CLD and
CNSS/ICNSS. It hides the CNSS/ICNSS APIs from CLD and provides a set
of common APIs.
Other modules should include pld_common.h if they want to call PLD
APIs.
CRs-Fixed: 979275
Change-Id: I3571fc70f502dc367c65f13b412cd5d37ee41d3c
WMA bus resume returns un-initialized local variable as status
to hdd bus resume callback which does bug on if status is not 0.
Fix WMA bus resume routine to return proper qdf status
and conver it into linux status before returnign it to HDD.
Change-Id: I8f36c11552412b569ac33afa320fd39fa3fedc50
CRs-Fixed: 1008027
During IBSS session tear down, we are hitting a lockup. The issue is
seen as the pdev->peer_ref_mutex is being taken up twice in
ol_txrx_remove_peers_for_vdev and ol_txrx_peer_unref_delete. The later
function gets invoked by the former and hence we are stuck while trying
to acquire the spinlock, the second time.
Fix issue by releasing peer_ref_mutex lock before invoking
callback (wma_remove_peer) in ol_txrx_remove_peers_for_vdev function.
The dmesg signature of the lock-up is as follows
1100.230392: <2> [<ffffffc0002035a4>] el1_irq+0x64/0xd4
1100.235432: <2> [<ffffffbffc17e890>]
ol_txrx_peer_unref_delete+0xc4/0x33c [wlan]
1100.242461: <2> [<ffffffbffc17ecc8>] ol_txrx_peer_detach+0x1c0/0x1e0
[wlan]
1100.249020: <2> [<ffffffbffc160914>] wma_remove_peer+0x7c/0x18c
[wlan]
1100.255141: <2> [<ffffffbffc17dee4>]
ol_txrx_remove_peers_for_vdev+0x170/0x1b0 [wlan]
1100.262606: <2> [<ffffffbffc16311c>]
wma_vdev_stop_resp_handler+0x204/0x460 [wlan]
1100.269816: <2> [<ffffffbffc1886a8>] __wmi_control_rx+0x280/0x2c0
[wlan]
1100.276204: <2> [<ffffffbffc188a34>] wmi_process_fw_event+0x8/0x14
[wlan]
1100.282595: <2> [<ffffffbffc157054>] wma_mc_process_msg+0x80c/0x27fc
[wlan]
1100.289176: <2> [<ffffffbffc13f238>] $x+0x190/0x3f4 [wlan]
1100.294115: <2> [<ffffffc00023d7e8>] kthread+0xac/0xb8
CRs-Fixed: 1006847
Change-Id: Icedeb172bbd6736ab39343391ff0643ddd688444
There are few instance where accidently mac address size got set
to some incorrect value.
Supply correct mac address size macro to resolve the issue.
CRs-Fixed: 1007399
Change-Id: I0bdd7ac0c241d1e22b003576c370b0ce2333a0dd
Current driver try allocate memory when number of channel are passed
as zero which will cause memory allocation failure.
As part of the fix, when number of channels comes as zero then driver
shouldn't allocate memory and let the firmware take care of it.
CRs-Fixed: 1007196
Change-Id: I51d8a6decbe4c21265e88624e490446a48ea4857
qcacld-2.0 to qcacld-3.0 propagation
When creating the reassoc session, HT SMPS value should be copied from
existing session to the reassoc session but the session supported NSS should
be set to default value of true and not copied from exisiting session.
Session supported NSS should be the intersection of NSS supported by STA
and AP that STA will reassoc to.
CRs-Fixed: 991042
Change-Id: Ic1577882aaa9c1923ba1dac2126e0cf11e542e36
qcacld-2.0 to qcacld-3.0 propagation
Peer supported NSS should be updated based on the presence of HT
and VHT capabilities in the beacon/probe response IE from the AP.
Also, update session supported NSS during reassociation. Otherwise,
station will end up sending SMPS action frames to AP which only
supports 1x1 mode.
CRs-Fixed: 979545
Change-Id: Ie2dbfbb577f08c5090101e1330184e72a9f6cd46
qcacld-2.0 to qcacld-3.0 propagation
In platforms that supports LTE coex, When antenna mode is dynamically
switched from 2x2 to 1x1 before station association the SMPS mode is
not set to enabled, static in the HT caps of assoc req management frame.
Although the station will send SMPS action frames with the correct
SMPS mode after association, if the AP did not receive the management
frames then it will continue to transmit in 2x2 rates when station is
in 1x1 mode.
CRs-Fixed: 986388
Change-Id: Ide2eef354ca6a8aa83981a959b029216c2069943
Remove WLAN_FEATURE_NEIGHBOR_ROAMING which is not defined
in the build file.
Also fix the regression that has been introduced by the
change I857f9c16eb73a4b0f72e0a622be47ab756fb70f4.
CRs-Fixed: 1003135
Change-Id: I741fd3cf69a05c346e1bc11498f93e928e5c1244
Update htc_endpoint only for htt tx endpoint to avoid
double freeing of Tx Queue packets as it will be
freed in htt_htc_misc_pkt_pool_free.
Rename htc_endpoint to htc_htt_tx_endpoint to reflect
it's appropriate use.
Change-Id: I736ba08505acc829eb15be30538553dd945695f6
CRs-Fixed: 1006498
If NAPI does not find any instances to create, then it would
return a bitmap of 0. Make this a condition that is reportable
as a warning, but do not break initialization sequence with an
error.
Acked-by: Orhan K AKYILDIZ <oka@qca.qualcomm.com>
Change-Id: I38a7a845c5b9ed3ab5ce691917e981ee2c8f7b1c
CRs-Fixed: 999422
When the feature is not defined, make sure that NAPI API calls
return success (0) so that the callers don't need to add any code
to check return values.
Acked-by: Orhan K AKYILDIZ <oka@qca.qualcomm.com>
Change-Id: Ibfb8d407cb902ecc2b61dd971262904aa25aa9ba
CRs-Fixed: 999422
Enable the packet tracker feature for non performance builds
by enabling the macro QCA_PKT_PROTO_TRACE and set the
default packet tracker log level to dump the DHCP, EAPOL
and management packet details. The necessary log level can
be modified using the ini 'gEnableDebugLog' entry either at
compile time or at run time using the IOCTL 'setDbgLvl'.
The logs are dumped using the same IOCTL 'setDbgLvl'.
e.g.,
To enable all the packet trace features
- iwpriv wlan0 setDbgLvl 0x0f
To dump the packet trace
- iwpriv wlan0 setDbgLvl 9999
Change-Id: I4fe82e0091517f0614baedf620976dd37b94a974
CRs-Fixed: 998642
Replace the obsolete WMI command WMI_SOC_SET_PCL_CMDID with
WMI_PDEV_SET_PCL_CMDID. WMI_PDEV_SET_PCL_CMDID carries the weightage
for all the channels (preferred and non-preferred) in the same order
and length as that of the command WMI_SCAN_CHAN_LIST_CMDID. This is
in contrast to the command WMI_SOC_SET_PCL_CMDID which carries only
the preferred channel list.
Change-Id: I040f4307491d3242d2e9409dbbe8005c4b307bf5
CRs-Fixed: 989502
Forcefully free all TX descriptors during driver unload
which is not freed because of unmap event missing from
firmware to avoid memory leak.
Change-Id: I47ff7e6a8f2aa130c77ac68a92eee9373d152e87
CRs-Fixed: 1001994
During peer unmap handler, while the peer is being deleted, there is a
possible race condition if the OL Rx thread is processing RX packets
and accesses the peer structure after its contents have been nulled.
Remove race condition by -
* Flush all RX packets in ol_txrx_peer_detach function which happens
before peer unmap event is received from firmware
* Avoid use of peer data structures (for example peer->local_id)
outside of peer->info_lock in ol_rx_data_cb function. Use cached
local copies of peer data structures instead
Crash signature due to the race condition:
wlan: [0:E :CDF] TXRX: Deleting peer ffffffc012fd13c0
(02:a0:c6:81:f8:c0)
Unable to handle kernel paging request at virtual address 400000001
pgd = ffffffc0018b4000
[400000001] *pgd=0000000000000000, *pud=0000000000000000
Internal error: Oops: 96000005 [#1] PREEMPT SMP
Modules linked in: wlan(O) [last unloaded: wlan]
CPU: 1 PID: 29506 Comm: cds_ol_rx_threa Tainted: G W O
3.18.20-g5222edf-13780-g2219ed2 #1
Hardware name: Qualcomm Technologies, Inc. MSM 8996 v3 + PMI8996 CD (DT)
task: ffffffc09350d400 ti: ffffffc0556a4000 task.ti: ffffffc0556a4000
PC is at hdd_rx_packet_cbk+0x84/0x224 [wlan]
LR is at hdd_rx_packet_cbk+0x48/0x224 [wlan]
pc : [<ffffffbffdd55b5c>] lr : [<ffffffbffdd55b20>] pstate: 80000145
Change-Id: I4b32313024ec214f33dcdcfc401aadfa8af9d692
CRs-Fixed: 1002081
Enable HTT_DATA2_MSG_SVC and HTT_DATA3_MSG_SVC, using only
rx legs, CE 9 and 10, respectively. Add required CE entries
to the map that gets sent to the FW, and define the latter
service.
Rename htc_endpoint to htc_tx_endpoint in htt_pdev to
represent the role better.
Acked-by: Orhan K AKYILDIZ <oka@qca.qualcomm.com>
Change-Id: I81ae796bdb7e632aa24f15c63a2811791dd29d28
CRs-Fixed: 982728
Fix incorrect handling of encrypted auth managment frame in case of
WEP shared encryption mode.
Authentication frame length is populated based on the auth transaction
sequence number. However this will not hold good for encrypted frame
from which we will not be able to decode the transaction sequence number.
Make use of the flag passed to lim_send_auth_mgmt_frame to decide if
the frame is encrypted or not and take necessary action.
Change-Id: I61df6a3e871965cd35128fe11925855d37bf81b9
CRs-Fixed: 999599
WMA target ready timeout is not large enough for FW response.
Increase WMA target ready timeout value to FW recommended value
of 6 seconds.
Change-Id: I8b05dc79ead4cdae8d1ff44d76b405d6f4df164a
CRs-Fixed: 999277
Propagation from qcacld-2.0 to qcacld-3.0
Pass mac address received from target in IBSS peer info event to
user space. In addition remove pronto specific rate conversion
logic as ROME FW returns data rate in Mbps directly
Change-Id: Id89e9f357831f242c43fc8ce121de18a3180e422
CRs-Fixed: 777960
As soon as the firmware is done with the roaming scan and about to
start hand-off, it will notify the host that the roaming is about
to start using WMI_ROAM_NOTIF_ROAM_START. The host driver will
then notify the upper layers to stop sending the packets and
the host later informs them as part of roam synch propagation
after roaming is done to start sending the packets.
Once the firmware sends the notification and if it fails to roam
for some reason, then it will send another notification
WMI_ROAM_NOTIF_ROAM_ABORT to let the host know the upper layers
to resume sending the packets again.
Introduce an operation code for the CSR roaming callback to determine
what it needs to do when called by the lower layers.
CRs-Fixed: 996949
Change-Id: I674262b95f1781747b34fb675ad179952a8ae4d1
qcacld-2.0 to qcacld-3.0 propagation
Before sending the 11k measurement report, check if there is a
valid scan result or if the measurement is done to send out a
report or cleanup the RRM state machine.
CRs-Fixed: 982133
Change-Id: I3f98450f3d139dd7a7c1548dc80070cf780ada88
qcacld-2.0 to qcacld-3.0 propagation
1) Whenever the beacon request measurement is done, always
send a beacon report despite finding any AP's or not on the
requested channels
2) Send the report always so that it implicitly also cleans up
the RRM context in the LIM and enables to process the
subsequent requests. Otherwise, the cleanup is not done and
RRM processing will be stuck
CRs-Fixed: 982133
Change-Id: I3ce023fbd4aa9d18f8d025a220a5c1d979a555f5
Enable LFR3(Firmware based roaming) feature by default
in the runtime configuration files.
Change-Id: Id9e4b496596c7c7fa3d1f62376cbc1f3edafc18c
CRs-Fixed: 991784
Ensure that the vdev to mac mapping, tx and rx spatial stream
parameters are updated in the connection info table as part of set
hardware mode change response for all the possible scenarios.
Currently these parameters are not getting updated during hidden
ssid and channel switch connection update. Due to this the
connection info table is not reflecting the correct spatial streams
for the above mentioned scenarios, after hw mode change.
Change-Id: I42bbb40a6c99b68aa2038d3e5357580e616c76c9
CRs-Fixed: 996090
Provide correct cds concurrency action when M2M limitation enabled and
channel switch is happening from 5G to 2G band.
Change-Id: I2e7c82831afa6a19d7716980e95951cbfc60457d
CRs-Fixed: 997785
With recent changes in firmware, emulation platform will now support
MCC on same mac. So, revert the restriction on adrastea emulation
platform.
Original change id:I17a92dce695ee30f7994f040d4bc612a38680f3e
Change-Id: I77e03328a20bd9c211484705aa573df7dac7fe15
CRs-Fixed: 997785
When there is a VHT160 or VHT80+80 connection present disallow
concurrency as no other connection is supported in VHT160/80+80
mode.
Change-Id: I6ec6fe3e7883cef34d141ee78311c1d8a0966208
CRs-Fixed: 996928
In HDD, hdd_wlan_startup which is called by probe is beast of a
function to maintain. Over time it has grown to such an extent
that it is almost 800 lines of code with in a single function.
Divide the beast into logical smaller functions.
Create separate function for Netlink service init and exit.
Change-Id: I3271784f06ad2a365c4b0ce767a2ba6df67f0b4d
CRs-fixed: 996332
qcacld-2.0 to qcacld-3.0 propagation
In case of DFS channels and EBT is disabled, beacons are
forwarded to host in every 50msecs which increase power consumption.
Add the changes to set beacon filter once DUT connect to AP.
CRs-Fixed: 973958
Change-Id: I1a9379eacbd13f8dc7fae08923cd91f087d1b2b2
qcacld-2.0 to qcacld-3.0 propagation
Provide support to configure duty cycle by adding ini item for
different level duty cycle.
CRs-Fixed: 990798
Change-Id: I95e4f4af669fd50c5b9fc10ffc61fa5d447b5bcf
Increase maximum size of oem data request from 280 to 500. This
change set also remove the following unused macros in UMAC
- OEM_DATA_REQ_SIZE
- OEM_DATA_RSP_SIZE
Change-Id: I768da4dd03c2de618c528cb72b86a5df72dd2efe
CRs-Fixed: 997085
Fix layering violation while handling management frames. Currently
LIM data structures are accessed before dropping Assoc, Disassoc and
Deauth packets to avoid DoS attacks. Since the LIM data structures
are accessed in different thread context, data present in them are
out of sync resulting in a crash.
Fix the layering violation by doing appropriate check in WMA instead
of doing the same in LIM
Change-Id: I8876a4d4b99948cd9ab3ccec403cf5e4050b1cff
CRs-Fixed: 977773
Add an INI item to disable dynamic tcp delayed ack feature.
By default, the dynamic delayed ack is always enabled
Change-Id: I64b551ff294afc876fe46538d364e0c39add76ac
CRs-Fixed: 865144
Enable 160 MHz bandwidth for World regulatory rules.
11ac allows channel bandwidth upto 160 MHz. So enable
160 MHz bandwidth if the rule allows for that much bandwidth.
Change-Id: Ib12085f61f31322047cb3594e70ca13ffeeb1d11
CRs-Fixed: 995088
qcacld-2.0 to qcacld-3.0 propagation
While suspending threads suspend complete event is set before
resume wait event is initialized.
In case resume is followed by suspend there might arise a condition
where resume wait event is set even before its initialization.
Thus after initializing the wait event thread will keep on waiting
on the event and thus get stuck.
To avoid this initialize the thread resume wait event before
setting the suspend event.
Change-Id: Iaffacd23f363f386fbaef4de066784cfd4d9e139
CRs-Fixed: 972287