Doing the tx desc initialization earlier in ol_tx_hl_base to make sure
all msdu buffers have been mapped before msdu frame is freed if encouter
error.
Change-Id: Iefded014b4a179889e67fa7cc0e0c36e8218dd83
CRs-Fixed: 2337167
this is not required as the session nss has to be 2, which
is expected, and helps to shift back to 2x2 from 1x1, while
hw mode goes to single MAC mode
This reverts commit I54ead1fd26d705a821160b5bc5d816df1d2ab8f4
Change-Id: I3bdcad1df6cc67de2533c89697b8c17d8ac4f573
CRs-Fixed: 2329616
1. Report NL80211_EXT_FEATURE_MGMT_TX_RANDOM_TA to
cfg80211.
2. Indicate Random MAC addr frame to source adapter.
Change-Id: Ica66fb43636fc1609febd87b6e6398dac3af25f3
CRs-Fixed: 2322077
Change "qcacld-3.0: Remove sme_set_freq_band()" (Change-Id
I41eeda85754a4d2cb1971dd53eb07a86e5ff4b87") removed the only caller
of csr_set_band(). Since it is now apparently obsolete, remove it.
Change-Id: Ifcfbeecb28964aef82d6b51942436ba18282f1d7
CRs-Fixed: 2339197
Function sme_set_freq_band() is not used. Since it is apparently
obsolete, remove it.
Change-Id: I41eeda85754a4d2cb1971dd53eb07a86e5ff4b87
CRs-Fixed: 2339196
In wlan_hdd_update_phymode() there are two separate calls to
ucfg_mlme_get_vht_channel_width(). In both cases the return status is
checked, and in case of error the following messages is logged:
"Failed to set channel_width"
Since ucfg_mlme_get_vht_channel_width() is a "getter" and not a
"setter" change the log to:
"Failed to get channel_width"
Change-Id: Ifed249e78e4a64d76eae9310da42ee490756337e
CRs-Fixed: 2338478
Currently if ADD_BSS_REQ vdev_start request times out, the
wma_vdev_resp_timer notifies this as ADD_BSS_RSP with failure status
to the upper layer and the SAP FSM moves from STARTING to DISCONNECTED
state. After this the WMA_DEL_STA_SELF_REQ is sent to the FW which does
a VDEV delete. However in cases where the ADD_BSS_REQ has been sent to the
FW but the response has not been received, the FW has the VDEV in started
state and asserts if a VDEV delete is sent without sending a vdev stop.
Send VDEV stop to the FW in case of ADD_BSS_REQ times our in
wma_vdev_resp_timer.
Change-Id: Ib2b95d38cb7fd36b02a738a73dbc1f8102d2169e
CRs-Fixed: 2323293
csr_scan_get_result API defined 'struct scan_filter' of size
800bytes on stack and larger size memory blocks on stack is not
preferred because the stack size is limited.
Modified the memory allocation to dyanmic for scan filter.
Change-Id: I40cb0d97e0451d50aca3e9485327a4ce709e6020
CRs-Fixed: 2332496
Function wlan_hdd_update_phymode() is called from two ioctl handler
functions, __iw_softap_setparam() and __iw_setint_getnone(). Unlike
most of the ioctl "setter" functions which take two parameters (an
adapter and a value), wlan_hdd_update_phymode() currently takes four
parameters (a net device, a mac handle, an hdd context, and a value).
In addition, currently the HDD function with the highest cyclomatic
complexity is __iw_setint_getnone(). In order to reduce the complexity
of that function all of the switch/case handlers are being refactored,
and in anticipation of eventually using a vtable, the refactored
functions all expect two parameters, an adapter and a value.
In order to align with that goal, refine wlan_hdd_update_phymode() to
expect those same two parameters. Note that the net device, mac
handle, and hdd context that are currently being passed can all be
derived from the adapter.
Change-Id: Ib919e6751aee182e2d8fde90a8446935447123db
CRs-Fixed: 2338381
Currently the HDD function with the highest cyclomatic complexity is
__iw_setint_getnone(). The handing of WE_SET_TM_LEVEL has a complexity
greater than 1, so refactor that logic into a separate function to
help reduce the complexity of __iw_setint_getnone().
Change-Id: Ifa68b6553b6856a008aa37af55d2ca1760da0970
CRs-Fixed: 2338380
Currently the HDD function with the highest cyclomatic complexity is
__iw_setint_getnone(). The handing of WE_SET_MAX_TX_POWER_5_0 has a
complexity greater than 1, so refactor that logic into a separate
function to help reduce the complexity of __iw_setint_getnone().
Change-Id: I3eb942b5bbed7cdc8199c5a4233b4443613023b0
CRs-Fixed: 2338379
gcc-4.8 incorrectly flags the use of @next_mode in __con_mode_handler as
potentially uninitialized, while newer versions do not seem to have a
problem. Work around the compiler quirk by initializing @out_mode in
hdd_parse_driver_mode.
Change-Id: Iee101db6eaded8e856e461458d6a80e8279e9ca1
CRs-Fixed: 2338538
Currently the HDD function with the highest cyclomatic complexity is
__iw_setint_getnone(). The handing of WE_SET_MAX_TX_POWER_2_4 has a
complexity greater than 1, so refactor that logic into a separate
function to help reduce the complexity of __iw_setint_getnone().
Change-Id: Ib6da540f9d96893899ad3865fd1c72e15a1c34bf
CRs-Fixed: 2338378
There are a number of style issues in __con_mode_handler. In preparation
for additional work in this area, lightly refactor __con_mode_handler,
and address low hanging style issues.
Change-Id: I7ec7cfd369bd00a0f8acc612ebf92f7a30a7a360
CRs-Fixed: 2337850
Limit the log rate to avoid excessive logging when host hanlde RX
data with invalid peer.
Change-Id: I5dba430809d7567905e919676d8cd3245906b884
CRs-Fixed: 2336919
Wireless application needs to tune parameters per AC based.
Such as VI/VO queue use the different re-transmission attempts
while other queue keeps the default value. It helps to improve
the video/audio performance in noisy environment. this change
add the ability to config re-transmission attempts of non
aggregation QOS packets.
Change-Id: I95404302463275803e3feff3038f04c900b14705
CRs-Fixed: 2323555
Currently host is caching all the connected sta info
in case of SAP, once the sta count reaches to MAX, below
mentioned issues occurs:
1. Driver can not cache the information of newly connected
stations.
2. Some of the info is cached at the time of connection while
remaining info is cached during disconnection. In the
disconnect path driver tries to cache some of the info
such mc_bc count, disconnect reason code, since driver can't
cache anymore info, it does not find the current station which
is getting disconnected in cache sta info structure leading to
an error, and driver is returning an error without completing
the wait for disconnect event which is resulting in timeout.
Since sta_disconnect comes with rtnl_held, any other process
is not able to get the rtnl_lock until this timeout occurs.
To address this issue below mentioned two measures taken care:
Clear the oldest cached sta information and save the newly connected
station's information.
In the disconnect path, do not return any error and simply proceed
with disconnection as failure to cache the information of sta
should not stop the disconnection process.
Change-Id: Ia955a6774033fdfa91ff1fa7c8832b3ec7e8e1a0
CRs-Fixed: 2333075
Currently the sta_context in add_bss params which is used to send the
peer_assoc command to the FW, the ht_enable and vht_enable are set based
on the AP's capability from the beacon. However, the channel width is
set based on the assoc response frame from the AP.
In a scenario where the AP advertises HT and VHT IEs in the beacon but
does not send HT and VHT IEs in the assoc response frame, we will end up
connecting in VHT/HT mode but with incorrect channel width.
Update the sta_context channel width also based on the AP's capability
from the beacon so that the connection would happen in the right channel
width even if HT/VHT IEs are missing in the assoc response frame.
Change-Id: Idb1907abebf32a34f88e935a30ebb8f1bce1d59c
CRs-Fixed: 2324434
Update NSS command is remove once driver receive the tx completion
event for the beacon. If SAP is in CAC wait state driver will not
get the tx completion for the beacon and the update NSS will timeout
after 30 sec and the serialization cmds queues will get stuck.
To avoid this remove the update NSS command from active queue as
soon as beacon is sent to firmware
Change-Id: I6f5b6bce91bdfacd4621020f313be25f74696b9d
CRs-Fixed: 2332302
Currently if hostapd choose channel 149, enable ieee80211d, and
select country_code JP. Driver will choose random channel after regd
updated to JP got from firmware. Since 149 is invalid for JP
country_code, driver choose random channel in JP channel list.
Driver indicate cfg80211 chandef is changed in hdd_chan_change_notify.
However, if we don't update cfg80211_ap_settings.chandef in
cfg80211_ops.start_ap, cfg80211 will copy old chandef back to
wdev->chandef after cfg80211_ops.start_ap. Then reg_wdev_chan_valid
will return false and cfg80211_leave leads to stop
AP in reg_leave_invalid_chans.
Change-Id: I3f89da46b4172fdea2774703f32b9cbabff41eeb
CRs-Fixed: 2315627
The code to start and stop the idle shutdown timer in HDD is currently
copy-pasted in multiple locations. Abstract this logic behind two new
APIs, and call these APIs where appropriate.
Change-Id: I73b05e603454a4817cb9c1606c1207d7fe68e5ab
CRs-Fixed: 2337755
API hdd_nud_filter_netevent is used to filter netevents for
STA interface. It is the driver's responsibility to
filter and act on event if it is for the net device. However,
the NULL check that is present in hdd_validate_adapter comes
with error logs which flood the console.
Add NULL check for adapter after call to hdd_get_adapter_by_macaddr
in hdd_nud_filter_netevent so that if the event is not for
the net device, ignore the event and return to avoid excessive
logging.
Change-Id: Icfb2f27f97712bf8e1422404a85163e801d43641
CRs-Fixed: 2335081
If there is no scan cache available, csr_roam_connect
will trigger a scan and after scan complete csr will
call csr_roam_issue_connect to connect one of candidate BSS.
And driver only checks the first candidate BSS's channel
for HW mode change after scan complete.
The issue is if connect first candidate failed, the next
or other candidate BSS may require DBS in concurrency
condition and the check
policy_mgr_is_hwmode_set_for_given_chnl will be failed.
To avoid such the hw mode check failed, we need to change hw
mode early if any of BSS requires DBS mode before try to
connect the BSS candidate in list one by one.
Add API csr_scan_get_channel_for_hw_mode_change which returns
DBS required candidate channel in BSS list if available,
otherwise returns the first candidate's channel.
Change-Id: I42862f100ee56ada41d6397346937219d0e688df
CRs-Fixed: 2335075
Currently the HDD function with the highest cyclomatic complexity is
__iw_setint_getnone(). The handing of WE_SET_MAX_TX_POWER has a
complexity greater than 1, so refactor that logic into a separate
function to help reduce the complexity of __iw_setint_getnone().
Change-Id: I9d2390aba4d90f7171de516be68f7073d1f2e4eb
CRs-Fixed: 2336982
Currently the HDD function with the highest cyclomatic complexity is
__iw_setint_getnone(). The handing of WE_SET_TX_POWER has a complexity
greater than 1, so refactor that logic into a separate function to
help reduce the complexity of __iw_setint_getnone().
Change-Id: I91f5da1593d5c8c6bfacbcc76e8595b3957b3ec2
CRs-Fixed: 2336981
Currently the HDD function with the highest cyclomatic complexity is
__iw_setint_getnone(). The handing of WE_SET_WOW_DATA_INACTIVITY_TO
has a complexity greater than 1, so refactor that logic into a
separate function to help reduce the complexity of
__iw_setint_getnone().
Change-Id: Ibe02deaaf0250b434d72da23088ee0aaec311006
CRs-Fixed: 2336980
Currently the HDD function with the highest cyclomatic complexity is
__iw_setint_getnone(). The handing of WE_SET_DATA_INACTIVITY_TO has a
complexity greater than 1, so refactor that logic into a separate
function to help reduce the complexity of __iw_setint_getnone().
Change-Id: Ica3c1c31ac8ae88d02d5d34d2fc1e53aa70508b9
CRs-Fixed: 2336979
Currently the HDD function with the highest cyclomatic complexity is
__iw_setint_getnone(). The handing of WE_SET_MAX_ASSOC has a
complexity greater than 1, so refactor that logic into a separate
function to help reduce the complexity of __iw_setint_getnone().
Change-Id: Ie24b589f2b32ea495cfaba7a600ef77e10d20f9e
CRs-Fixed: 2336978
Currently the HDD function with the highest cyclomatic complexity is
__iw_setint_getnone(). The handing of WE_SET_POWER has a complexity
greater than 1, so refactor that logic into a separate function to
help reduce the complexity of __iw_setint_getnone().
Change-Id: I4a2c08faf7ec88ca35a353c778fa0269f35eb76d
CRs-Fixed: 2336977