Commit Graph

1230 Commits

Author SHA1 Message Date
Anurag Chouhan
5de8d17671 qcacld-3.0: Add BSS status caching
Add BSS status caching to get the BSS Information
when disconnect happens.

Change-Id: I41b74700b161277bc454d8bb8978f4e1e92faea8
CRs-Fixed: 1013475
2016-07-15 04:23:12 -07:00
Naveen Rawat
696a930c25 qcacld-3.0: Fix start BSS failure
In function csr_roam_join_handle_profile, add NULL pointer check for
"result" after call to csr_roam_select_bss rather than before
csr_roam_join_handle_profile, since it is called for BSS role as well.

Change-Id: I800891fd66d5c851537968515e43eadbe38a2ae8
CRs-Fixed: 1038237
2016-07-14 18:50:50 -07:00
Naveen Rawat
a395d25d53 qcacld-3.0: Fix NULL pointer dereference in csr_roam_join_next_bss
Add NULL pointer check for "result" after call to csr_roam_select_bss.
This function can return a NULL value for variable "result", which is
later dereference in the function csr_roam_join_handle_profile.

Change-Id: I5e1f017de49301a14b899692b888f7694e979bf1
CRs-Fixed: 1027725
2016-07-14 18:50:50 -07:00
Arif Hussain
fbf5068ddd qcacld-3.0: Fix uninitialised variable use
Initialize packet pointer with NULL to avoid wild pointer dereferencing.

Change-Id: Iff756659ed463e15796350d0a73486923b92e19f
CRs-Fixed: 1027693
2016-07-14 17:33:52 -07:00
Yuanyuan Liu
90fd18c141 qcacld-3.0: Fix null qdf_dev pointer in ramdump handler
Container_of returns invalid ol_ctx pointer which leads to a null
pointer of qdf_dev. Fix this by directly request qdf_dev pointer
from cds.

Change-Id: I08910bb798b7992d550c9e061eed04a9b6f140d1
CRs-Fixed: 1033518
2016-07-14 16:53:12 -07:00
Yuanyuan Liu
a1679b62b9 qcacld-3.0: Return correct failure code
Return correct failure code for pld_register_driver.

Change-Id: I2f441db9a817ffce9d278c4672a0f68476c11b5c
CRs-Fixed: 1039663
2016-07-14 16:07:27 -07:00
Vishwajith Upendra
037bbf6a0d Release 5.1.0.22A
Release 5.1.0.22A

Change-Id: I599796f0e1c018908f13f3be9aac7d688e7b12c2
CRs-Fixed: 688141
2016-07-14 13:26:56 -07:00
Varun Reddy Yeturu
823e9c2e0d qcacld-3.0: Fix incorrect channel list passed to firmware
Fix the occupied channel list that is being passed from CSR to
WMA to WMI to firmware.There is a conversion happening in
WMA from channel number to frequency which is the root of the
issue.

CRs-Fixed: 1039020
Change-Id: I8e10df6dd4d09b12ff700ab865f6722f4fbfaf8d
2016-07-14 12:36:08 -07:00
Rajeev Kumar
b6045f60c4 qcacld-3.0: Increase bus suspend/resume log levels
Bus suspend/resume log messages are logged with info log
level which is by default not logged in kernel log buffer.
Increase bus suspend/resume log level to error such that
this critical log message is logged in kernel message.

Once wlan suspend/resume feature becomes more stable this
log message can be reduced back to info log level.

Change-Id: Ic78900d5b111637d4d8d1b26e18fa298fbbd893f
CRs-Fixed: 1041335
2016-07-13 18:02:33 -07:00
Jeff Johnson
c327332c92 qcacld-3.0: Convert wlan_hdd_power.c to unified logging
Currently the HDD code uses a variety of logging APIs.  In
qcacld-3.0 HDD should converge on a unified set of logging APIs.
Update wlan_hdd_power.c to use the unified set of APIs.

Change-Id: Iba049d8734436c916efce4d3c1fa2c55ac09c333
CRs-Fixed: 937685
2016-07-13 17:22:16 -07:00
Jeff Johnson
5f735d5e89 qcacld-3.0: Convert wlan_hdd_ocb.c to unified logging
Currently the HDD code uses a variety of logging APIs.  In
qcacld-3.0 HDD should converge on a unified set of logging APIs.
Update wlan_hdd_ocb.c to use the unified set of APIs.

Change-Id: I7ec58632a781024fedba46ff25baa873ac52bd9a
CRs-Fixed: 937672
2016-07-13 17:22:15 -07:00
Jeff Johnson
e2d30d000c qcacld-3.0: Convert wlan_hdd_hostapd.c to unified logging [7/7]
Currently the HDD code uses a variety of logging APIs.  In qcacld-3.0
HDD should converge on a unified set of logging APIs.  Update
wlan_hdd_hostapd.c to use the unified set of APIs.  Since there are a
large number of changes in this file, perform the conversion in
phases.

For phase 7 set the HDD_DISALLOW_LEGACY_HDDLOG flag so that no future
changes can introduce new instances of legacy logging.

Change-Id: Ia76d147a57bbc2f1361f8574d226447d0e4c8408
CRs-Fixed: 937661
2016-07-13 17:22:14 -07:00
Jeff Johnson
b90586c3bc qcacld-3.0: Convert wlan_hdd_hostapd.c to unified logging [6/7]
Currently the HDD code uses a variety of logging APIs.  In qcacld-3.0
HDD should converge on a unified set of logging APIs.  Update
wlan_hdd_hostapd.c to use the unified set of APIs.  Since there are a
large number of changes in this file, perform the conversion in
phases.

For phase 6 update the following functions:
__wlan_hdd_cfg80211_stop_ap()
__wlan_hdd_cfg80211_start_ap()
__wlan_hdd_cfg80211_change_beacon()

Change-Id: I173579cb7ba6fc1baa7e6667f06bf642e961b5bb
CRs-Fixed: 937661
2016-07-13 17:22:13 -07:00
Jeff Johnson
ecd884eb91 qcacld-3.0: Convert wlan_hdd_hostapd.c to unified logging [5/7]
Currently the HDD code uses a variety of logging APIs.  In qcacld-3.0
HDD should converge on a unified set of logging APIs.  Update
wlan_hdd_hostapd.c to use the unified set of APIs.  Since there are a
large number of changes in this file, perform the conversion in
phases.

For phase 5 update the following functions:
__iw_softap_stopbss()
hdd_softap_get_sta_info()
__iw_softap_get_sta_info()
__iw_set_ap_genie()
__iw_get_softap_linkspeed()
hdd_init_ap_mode()
hdd_wlan_create_ap_dev()
hdd_register_hostapd()
hdd_unregister_hostapd()
wlan_hdd_set_channel()
wlan_hdd_add_ie()
wlan_hdd_add_hostapd_conf_vsie()
wlan_hdd_add_extra_ie()
wlan_hdd_cfg80211_alloc_new_beacon()
wlan_hdd_cfg80211_update_apies()
wlan_hdd_config_acs()
wlan_hdd_setup_driver_overrides()
wlan_hdd_cfg80211_start_bss()

Change-Id: Ibaf0dbb2af0928bf4dce5a475df7e536d85d1451
CRs-Fixed: 937661
2016-07-13 17:22:13 -07:00
Jeff Johnson
b849189e6d qcacld-3.0: Convert wlan_hdd_hostapd.c to unified logging [4/7]
Currently the HDD code uses a variety of logging APIs.  In qcacld-3.0
HDD should converge on a unified set of logging APIs.  Update
wlan_hdd_hostapd.c to use the unified set of APIs.  Since there are a
large number of changes in this file, perform the conversion in
phases.

For phase 4 update the following functions:
__iw_softap_getparam()
__iw_softap_modify_acl()
__iw_softap_set_max_tx_power()
__iw_softap_set_tx_power()
__iw_softap_getassoc_stamacaddr()
__iw_softap_disassoc_sta()
wlan_hdd_set_force_acs_ch_range()
__iw_softap_get_channel_list()
__iw_get_genie()
__iw_get_wpspbc_probe_req_ies()
__iw_set_auth_hostap()
__iw_set_ap_encodeext()
__iw_softap_setwpsie()

Change-Id: If2388fbdaf5988bd1864443f58594098c44bf837
CRs-Fixed: 937661
2016-07-13 17:22:12 -07:00
Jeff Johnson
edff0d92af qcacld-3.0: Convert wlan_hdd_hostapd.c to unified logging [3/7]
Currently the HDD code uses a variety of logging APIs.  In qcacld-3.0
HDD should converge on a unified set of logging APIs.  Update
wlan_hdd_hostapd.c to use the unified set of APIs.  Since there are a
large number of changes in this file, perform the conversion in
phases.

For phase 3 update the following functions:
__iw_softap_setparam()
__iw_softap_get_three()

Change-Id: I5db86f54bcc978d7935873423fa1e91bc83d7a2e
CRs-Fixed: 937661
2016-07-13 17:22:11 -07:00
Jeff Johnson
fb33cf59d4 qcacld-3.0: Convert wlan_hdd_hostapd.c to unified logging [2/7]
Currently the HDD code uses a variety of logging APIs.  In qcacld-3.0
HDD should converge on a unified set of logging APIs.  Update
wlan_hdd_hostapd.c to use the unified set of APIs.  Since there are a
large number of changes in this file, perform the conversion in
phases.

For phase 2 update the following functions:
hdd_softap_unpack_ie()
hdd_softap_set_channel_change()
__iw_softap_set_ini_cfg()
__iw_softap_get_ini_cfg()
__iw_softap_set_two_ints_getnone()

Change-Id: Ia755a63c7154253a02b395fa60f8d3ef82628bba
CRs-Fixed: 937661
2016-07-13 17:22:10 -07:00
Jeff Johnson
cfb85837d3 qcacld-3.0: Convert wlan_hdd_hostapd.c to unified logging [1/7]
Currently the HDD code uses a variety of logging APIs.  In qcacld-3.0
HDD should converge on a unified set of logging APIs.  Update
wlan_hdd_hostapd.c to use the unified set of APIs.  Since there are a
large number of changes in this file, perform the conversion in
phases.

For phase 1 update the following functions:
hdd_hostapd_channel_allow_suspend()
hdd_hostapd_channel_prevent_suspend()
__hdd_hostapd_open()
__hdd_hostapd_stop()
__hdd_hostapd_uninit()
hdd_set_sap_ht2040_mode()
hdd_hostapd_inactivity_timer_cb()
hdd_clear_all_sta()
hdd_stop_bss_link()
hdd_issue_stored_joinreq()
hdd_send_radar_event()
hdd_hostapd_sap_event_cb()

Change-Id: I5ba28609a7859472bfe08517260364f286f068f4
CRs-Fixed: 937661
2016-07-13 17:22:09 -07:00
Gupta, Kapil
8a605e1b59 qcacld-3.0: Correct len size of oem data request
qcacld-2.0 to qcacld-3.0 propagation.

oem data request len size should be of 4 byte instead of
1 byte.
Add changes to correct len size in oem data structure across the
layers.

Change-Id: I9b377420c50ff1160964f94be5eaa0072df0f63d
CRs-Fixed: 1013488
2016-07-13 15:27:49 -07:00
Vishwajith Upendra
5db81c93fc Release 5.1.0.22
Release 5.1.0.22

Change-Id: I8b5c9595128030e430d5d8fbf1130c3f760e9689
CRs-Fixed: 688141
2016-07-13 14:02:38 -07:00
Leo Chang
bc24e6177e qcacld-3.0: ipa data path bug fix
WDI RX ring size should be larger than RX buffer count
RX2 ring free bug fix
WDI HTT message free bug fix

Change-Id: Ib3dda42ab46d07fab1847e2590d815c851524960
CRs-fixed: 1037977
2016-07-13 13:14:23 -07:00
Vishwajith Upendra
4d2ec9a8b8 Release 5.1.0.21
Release 5.1.0.21

Change-Id: I90f4c0c00d4ca85d890bfc01b5bdb3571c235aba
CRs-Fixed: 688141
2016-07-12 14:21:16 -07:00
Tushnim Bhattacharyya
f44a9d86cd qcacld-3.0: Fix chain mask & nss in policy manager connection table
The chain mask in policy manager connection table needs to be updated
with the capability that HW advertises at load time intersected with
related ini configuration on host. The dynamic change of the chain
mask & NSS values will be handled only by chain mask manager in
firmware.

Change-Id: I250668c93920a63c9278aefe93491cb5aaa91ca7
CRs-Fixed: 1037816
2016-07-12 10:02:49 -07:00
Manishekar Chandrasekaran
0575beee56 qcacld-3.0: Set CT window size while enabling P2P opportunistic power save
Allow setting of CT window size while enabling P2P opportunistic power
save using the DRIVER command 'P2P_SET_PS'. This removes the need to send
two commands to set CT window size: 'P2P_SET_PS 1 1 -1' to first enable
opportunistic power save followed by 'P2P_SET_PS -1 -1 30' to set the
window size. Now, the same can be achieved using 'P2P_SET_PS 1 1 30'. The
change is still backward compatible with user space entities which send
two DRIVER commands to achieve this functionality.

Change-Id: I5f3dbe00f64df123d6947e29bb62b0f8f1524080
CRs-Fixed: 1039946
2016-07-12 09:22:12 -07:00
Himanshu Agarwal
10415ce039 qcacld-3.0: Add NULL check before dereferencing pdev
Add NULL check before dereferencing pdev in wma_mgmt_tx_completion_handler.

Change-Id: If7e06e2e46436f96a18d6c6b9ad6fc6afd7a4d8b
CRs-fixed: 1034746
2016-07-12 07:06:01 -07:00
Dhanashri Atre
41c0d28570 qcacld-3.0: Check inputs during vdev register
Change to ensure that the vdev and txrx operations passed to
data path during vdev registration are valid.

Change-Id: I912194184ae65229ddd7243afa58c56f4579959a
CRs-Fixed: 1035414
2016-07-11 19:27:44 -07:00
Naveen Rawat
e21103f6f2 qcacld-3.0: Fix null pointer dereference in wlan_hdd_nan_datapath.c
Fix null pointer dereference in wlan_hdd_nan_datapath.c

Change-Id: Ic968e441411033c3eeb9ec39aff4fc308b80bce8
CRs-Fixed: 962367
2016-07-11 17:34:04 -07:00
Naveen Rawat
c45d162627 qcacld-3.0: Remove IBSS from MAX_IBSS_PEERS macro
Remove IBSS from MAX_IBSS_PEERS, since this is a generic macro.

Change-Id: Ic50205e84890e6a3bda603ad0f54bebfb2a727ea
CRs-Fixed: 1039559
2016-07-11 16:59:53 -07:00
Naveen Rawat
ba4f661f6a qcacld-3.0: Use hdd_err and hdd_info instead of legacy hddLog api
Remove use of hddLog api calls and use newer hdd logging apis:
hdd_err and hdd_info

Change-Id: Ic9a9dbe393a9a7582a31aa613fb812034819a821
CRs-Fixed: 962367
2016-07-11 16:15:24 -07:00
Peng Xu
82e4e64c6d qcacld-3.0: Fix vendor ID for P2P listen offload
Correct vendor ID used for P2P listen offload start and stop commands.

Change-Id: I63ad3268e56aa143818ca691634d0edae45ae61f
CRs-fixed: 1040150
2016-07-11 15:38:40 -07:00
Vishwajith Upendra
cfc4bd0439 Release 5.1.0.20
Release 5.1.0.20

Change-Id: I0286ed7be3f9b420fc0beaa98fafc537a2033c17
CRs-Fixed: 688141
2016-07-11 14:33:31 -07:00
Mohit Khanna
b477e0ba22 qcacld-3.0: Revert [qca-cld]Fix for UDP-UL data-stall on ROME3.1
qcacld-2.0 to qcacld-3.0 propagation

This reverts change Id461e72919911dff2f93ea7210cb41f643a19b33

The existing code is checking for headroom in the skb coming to HDD from
TCP/IP stack and ends up allocating a new skb and skb->data in case there
is not enough headroom. Headroom is not needed to process outgoing TX
packets in qca_cld3.0 converged code for ROME and ihelium.
Besides a CPU hit, the re-allocation is also causing ROME based products
to use bounce buffers when the new skb(data) is mapped for DMA, since the API
for headroom allocation does not use GFP_DMA flag.

Remove the skb headroom/re-alloc logic to fix the issue.

Keep the existing skb_unshare code as it affects TCP TX for ihelium.
Needs further analysis.

Change-Id: I4980e047aa158c5de0f4f2a557c83f4555bca840
CRs-Fixed: 851524
2016-07-11 13:34:37 -07:00
Chandrasekaran Manishekar
54521c86b2 qcacld-3.0: Fix compilation error on disabling MCC to SCC switch feature
Fix compilation error on disabling the MCC to SCC switch feature flag
FEATURE_WLAN_MCC_TO_SCC_SWITCH.

Change-Id: Id741f86d2e514c5dc5bfa8164ff37f56cd1ca630
CRs-Fixed: 1037396
2016-07-11 06:37:51 -07:00
Poddar, Siddarth
21e7bf0a3a qcacld-3.0: Move NULL check before dereferencing pdev
Move NULL check before dereferencing pdev in ol_tx_create_flow_pool

Change-Id: I42398c9473690a0a8f70f35cc7d5aac87c4ec7e7
CRs-fixed: 1034748
2016-07-11 04:59:47 -07:00
Kabilan Kannan
44f6586a20 qcacld-3.0: Add validation to avoid buffer overflow
Buffer overflow condition is not validated correctly in function
sme_update_tdls_peer_state(). This may result in erratic program
behavior.
Add buffer over flow validation to avoid memory access errors,
incorrect results, a crash, or a breach of system security.

Change-Id: I793bd056b32924b484ce7cb264b22c74c8c4cca4
CRs-Fixed: 1035656
2016-07-08 17:26:54 -07:00
Vishwajith Upendra
07f95f3098 Release 5.1.0.19
Release 5.1.0.19

Change-Id: I2e8b08920704cb243886aefd8a8029823783232b
CRs-Fixed: 688141
2016-07-08 14:00:06 -07:00
Govind Singh
5b48620c03 qcacld-3.0: Add host changes for latest fw common changes
FW common files needs to be in sync with host and fw.
Add changes to compile successfully with latest version
of FW interface file.

Change-Id: I487a18185c406da5c2fb07e2a95cafe4793578aa
CRs-Fixed: 1012542
2016-07-08 06:12:10 -07:00
Govind Singh
8c46db9759 qcacld-3.0: Correct fw common references in dp layer
FW common files needs to be in sync with host and fw.
Correct fw common references in dp layer with latest copy
of fw common files.

Change-Id: I194c25045ca978634027a94bc74f22253b1afc86
CRs-Fixed: 1012542
2016-07-08 06:12:06 -07:00
Manjeet Singh
f82ed071d0 qcacld-3.0: Add support for WMI_PDEV_WAL_POWER_DEBUG_CMD
Add support for WMI POWER DEBUG command to control mac_core power features
for run time debugging.

Change-Id: I77ad747843cae31de1705b7ce8fa80e18c9ca53e
CRs-Fixed: 1007598
2016-07-08 05:14:42 -07:00
Manishekar Chandrasekaran
371e5af0bd qcacld-3.0: Use interval field provided by DRIVER command P2P_SET_NOA
Ensure that the interval field provided by the DRIVER command
P2P_SET_NOA is used while populating the NoA parameters. Make sure
that the interval and duration fields are in TU units.

Change-Id: I9e1e60a0019e90deab36df5d8ba7822dfa4dcae0
CRs-Fixed: 1036494
2016-07-07 22:15:24 -07:00
Sandeep Puligilla
707386ec00 qcacld-3.0: Update log level related to PNO
PNO kernel debug logs are too frequent.

Reduced the log level of PNO messages from error to info

Change-Id: I27166f542889e0d5071ae8c558e0227c51064c5f
CRs-Fixed: 1022820
2016-07-07 22:15:23 -07:00
Vishwajith Upendra
54963e5289 Release 5.1.0.18
Release 5.1.0.18

Change-Id: I86ea662a598263979f62f5b9882e8e95269b2b98
CRs-Fixed: 688141
2016-07-06 23:30:03 -07:00
Yuanyuan Liu
8052806008 qcacld-3.0: Add NULL check for ol_ctx in bmi_download_firmware
ol_ctx is NULL by default if NO_BMI is defined. Hence, add NULL
check for ol_ctx in bmi_download_firmware so that this NULL pointer
could be handled properly in BMI and NO_BMI cases.

Change-Id: I17b6a7e266e41b1f9135bb81bf4329c1ae460862
CRs-Fixed: 1038414
2016-07-06 22:44:40 -07:00
Archana Ramachandran
dc7f2c9c2f qcacld-3.0: Fix NULL pointer dereferencing in p2p TX MGMT
Fix dereferencing channel struct pointer without verifying the
validity.

CRs-Fixed: 1034743
Change-Id: I7a49467c3fdbe85c7255fcce7f135e53658eef63
2016-07-06 14:42:58 -07:00
Varun Reddy Yeturu
e20ffc05d0 qcacld-3.0: Enable early stop scan by default
Enable the early stop scan feature by default and also
modify the default values as per the request from the
firmware

CRs-Fixed:  1036474
Change-Id: I0f2596633084ea97e64fb2c7d9975052d1ac98fb
2016-07-06 13:35:43 -07:00
Varun Reddy Yeturu
83ccb9b38b qcacld-3.0: Fix the invalid SNR value in Host
qcacld-2.0 to qcacld-3.0 propagation

Firmware sends 0x127 as the invalid snr value when it is in a
state of unable to get it from either a beacon or data packet

CRs-Fixed: 939255
Change-Id: Ia45a8c4acd6a54ff3e56b192c11cea0df97eadaf
2016-07-06 13:34:48 -07:00
Vishwajith Upendra
2a9318a7e9 Release 5.1.0.17
Release 5.1.0.17

Change-Id: I3b342d728cc280e434833a07b6d8ed6d1d19b98d
CRs-Fixed: 688141
2016-07-06 13:33:12 -07:00
Kabilan Kannan
91765b4a34 qcacld-3.0: Remove TDLS wider bandwidth support from VHT IE
TDLS wider band width is not yet supported, but it is
incorrectly advertised in TDLS action frames.
Remove the wider bandwidth advertisement from VHT IE
in TDLS action frames.

Change-Id: I66f0e5d147af93100a7780b14636ba6438330584
CRs-Fixed: 1028205
2016-07-06 13:33:08 -07:00
Kabilan Kannan
7ae4d60284 qcacld-3.0: Fix the incorrect PHY mode problem in TDLS
The channel width of the TDLS direct link
on the base channel shall not exceed the
channel width of the BSS to which the
TDLS peer STAs are associated.
Add changes in the host driver to restrict
TDLS channel width to equal to BSS channel
width

Change-Id: I5c640164b3c747a55bde3efc553d2861057ebf42
CRs-Fixed: 1028201
2016-07-06 13:33:03 -07:00
Sandeep Puligilla
a8d4eec7d9 qcacld-3.0: Fix to avoid acquiring mutex in atomic context
Propagation from qcacld-2.0 to qcacld-3.0

When a radar is indicated from WMA to HDD,  it happens in a soft
irq context and the dfs_radar_found flag is set by acquiring
a mutex which leads to apps crash.  The crash happens if the mutex for
dfs_radar_found flag is being held by the main thread and as a result
the soft irq thread seeking the same mutex will be put in the kernel
sleep queue leading to apps crash as sleeping is not allowed in soft irq
context.

Fix the issue by using spinlock instead of mutexes.  An exception
has been made to use the spinlock in the main thread context to
work around the complications involving for radar indication
callback to happen in worker thread context instead of soft
irq context.

Change-Id: I4bc01ac8991c593ffcaf6ee532f4594cb8beba16
CRs-Fixed: 928394
2016-07-06 13:32:53 -07:00