Commit Graph

220 Commits

Author SHA1 Message Date
Houston Hoffman
a769ed3ba1 qcacld-3.0: Add wow_nack to TargetSendSuspendComplete api
TargetSendSuspendComplete should take the HTCInitInfo
context as an argument.  The wow_nack should be its
own argument.

Change-Id: Ib13385cf0a04730d066ffcd53c1f669c7a5ced60
CRs-Fixed: 1003793
2016-05-04 21:18:56 -07:00
Abhishek Singh
5ea86536ef qcacld-3.0: Add scenario based BUG report
qcacld-2.0 to qcacld-3.0 propagation

Change to initiate BUG report in case of fatal event
Add INI support to Enable/Disable it.

The fatal event handled are as below:
 - Roaming failed after successful preauth.
 - SME command timeout.
 - PE defer queue is full.
 - CDS run out of message wrapper.
 - HDD level wait for event timeout.

CRs-Fixed: 912560
Change-Id: I64dff8b7d0836340ce3bec5f5985d1919b600c23
2016-05-04 21:18:44 -07:00
Sandeep Puligilla
eca12f2624 qcacld-3.1: Fix NULL pointer dereference
API is trying to access the wmi descriptor
even though it is failed to allocate.

- Add a NULL pointer verification check before
  accessing the wmi descriptor.
- Return failure to UMAC if the wmi failed to
provide the wmi descriptor.

Change-Id: I1ca8670c43e795d874d4e57bca8577b5fb90468a
CRs-Fixed: 1009636
2016-05-04 21:17:59 -07:00
Manishekar Chandrasekaran
cb0521722b qcacld-3.0: Modify set hw mode sequence on channel switch scenarios
Modify the set hardware mode command sequence during channel switch
in the case of SAP/P2P-GO and STA/P2P-CLI as per the latest FW
requirements. This is primarily to accommodate the time take for
calibration during hardware mode change which could lead to
momentary data stalls.

The new sequence is as follows:
    1. Send (E)CSA
    2. Do vdev restart/vdev up
    3. For DBS downgrade:
       a. PM will initiate HW mode change to DBS right away
    4. For single MAC upgrade:
       a. Opportunistic timer is started, PM will check if MCC
          upgrade can be done on timer expiry

The old sequence is as follows:
    For MCC upgrade:
        1. Send (E)CSA
        2. Opportunistic timer is started
        3. vdev restart is initiated on the new channel
        4. PM will check if MCC upgrade can be done on timer expiry
    For single mac upgrade:
        1. Send (E)CSA
        2. PM will initiate HW mode change to DBS right away
        3. vdev restart is initiated on the new channel

Change-Id: I4bce2ee176cae43b6a46c47216ed7ab47a82a54c
CRs-Fixed: 1006992
2016-05-04 21:17:33 -07:00
Manishekar Chandrasekaran
7edffe037b qcacld-3.0: Fix channel number sent in probe response during P2P scans
Fix the channel number sent to fw in probe response during P2P scans.
Current channel number being sent to FW is 0. For the probe response
frame from Host, as there is no channel frequency added, it ends going
on default MAC 0. As in this configuration, FW will do DBS scan for
P2P find, 2G is mapped to MAC1. Hence P2P probe response ends up going
on wrong channel (STA’s 5G channel). Fix this by using the user space
supplied channel in probe response for non beaconing modes and by
using the corresponding session's frequency in probe response for the
beaconing modes.

Change-Id: I3928f8eb2c663b12e40239809e0728d07839317a
CRs-Fixed: 1009549
2016-05-04 21:17:27 -07:00
Manishekar Chandrasekaran
3904436d36 qcacld-3.0: Correct the p2p scan parameters when SAP is beaconing
Correct the p2p scan's active dwell time, passive dwell time and
burst duration when a SAP session is already active. Since the
max duration of CTS-to-self is 32ms, the dwell time for p2p scans
are calculated in such a way that it does not cross 32ms if SAP
is running. This is in line with the existing STA scan parameters
when SAP is active.

Change-Id: I8089e01025ba07cc18684c277c36bb1694264214
CRs-Fixed: 998555
2016-05-04 21:17:11 -07:00
Manishekar Chandrasekaran
05fd26715d qcacld-3.0: Replace soc level references of hw mode transition event
Replace the obsolete WMI event WMI_SOC_HW_MODE_TRANSITION_EVENTID
with WMI_PDEV_HW_MODE_TRANSITION_EVENTID. The new event additionally
carries the pdev id.

Change-Id: Ic5d04ce63fbc582dbecb9052f490189c83094bb5
CRs-Fixed: 989502
2016-05-04 21:17:07 -07:00
Manishekar Chandrasekaran
5d46f70d35 qcacld-3.0: Replace soc level references of set mac config
Replace the WMI command WMI_SOC_SET_DUAL_MAC_CONFIG_CMDID
and event WMI_SOC_SET_DUAL_MAC_CONFIG_RESP_EVENTID with
WMI_PDEV_SET_MAC_CONFIG_CMDID and
WMI_PDEV_SET_MAC_CONFIG_RESP_EVENTID respectively since
the former are obsolete. The new WMI commands and events
additionally carry the pdev id.

Change-Id: I77eab3ead005bbb7f951ce7e077cd661813cb628
CRs-Fixed: 989502
2016-05-04 21:17:03 -07:00
Manishekar Chandrasekaran
d96403461f qcacld-3.0: Replace soc level references of set hw request and response
Replace the obsolete WMI command WMI_SOC_SET_HW_MODE_CMDID with
WMI_PDEV_SET_HW_MODE_CMDID and event WMI_SOC_SET_HW_MODE_RESP_EVENTID
with WMI_PDEV_SET_HW_MODE_RESP_EVENTID respectively. These new WMI
commands and events additionally carry the pdev id and all mac id
references are replaced with pdev id.

Change-Id: If2a3f93dcd1947eedce8d4eac8ed936166f7e078
CRs-Fixed: 989502
2016-05-04 21:14:01 -07:00
Manishekar Chandrasekaran
91152df26b qcacld-3.0: Save the requested scan and fw mode config
Save the requested scan and fw mode config when these
new configs are sent to the firmware for update. This
saved parameter updates the current scan and fw mode
config respectively on getting the response from the
firmware. If this parameter is not saved and updated
in the current scan and fw mode configs, the next
attempt to fetch the current scan and fw mode config
provides the wrong config values.

Change-Id: Iae10d16b29038a8e321ef74ba591b032eedbe425
CRs-Fixed: 1007653
2016-05-02 23:28:09 -07:00
Govind Singh
efc5ccd7ca qcacld-3.0: Replace mac_id with pdev_id in WMI PDEV commands
Replace mac_id with pdev_id for WMI pdev commands and
vdev start response handler to support multi-radio in
converged firmware. In order to maintain backward
compatibility with old fw, host needs to check
WMI_SERVICE_DEPRECATED_REPLACE service id in service
bitmap and needs to fill pdev id or mac id accordingly.

Change-Id: I7e6b40b4c0bd20e967dc0a383b480068e256486f
CRs-Fixed: 994415
2016-05-02 23:28:03 -07:00
Manikandan Mohan
976e756f56 qcacld-3.0: Configure tsf gpio pin
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
2016-05-02 23:27:52 -07:00
Manikandan Mohan
dcc21ba7f6 qcacld-3.0: get tsf from fw
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
2016-05-02 23:27:49 -07:00
Rajeev Kumar
9be537edc0 qcacld-3.0: Fix resume regression caused by QDF convergence
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
2016-04-27 17:00:29 -07:00
Krunal Soni
ab793347f6 qcacld-3.0: Fix incorrect mac addr size while doing mem copy
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
2016-04-27 17:00:22 -07:00
Krunal Soni
eda6d7ec50 qcacld-3.0: Fix memory allocation for zero channel list
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
2016-04-27 17:00:20 -07:00
Manjunathappa Prakash
8b39d2eece qcacld-3.0: Use CDS PKT_TRACE macro CDS_PKT_TRAC_TYPE_MGMT_ACTION
Fix build error, missing definition of NBUF_PKT_TRAC_TYPE_MGMT_ACTION.
Use CDS macro.

Change-Id: I65a169397236177c92b1980397794f6364ad24cb
CRs-Fixed: 1005069
2016-04-25 22:56:14 -07:00
Houston Hoffman
52ec669089 qcacld-3.0: Fix compilation errors for msmcobalt (2/2)
Fix compilation errors when building for msmcobalt.

Change-Id: I2e1d968e967f493fb927440777d1d01f7e3f66b0
CRs-Fixed: 1006068
2016-04-25 22:56:07 -07:00
Manishekar Chandrasekaran
7009f25399 qcacld-3.0: Replace WMI_SOC_SET_PCL_CMDID with WMI_PDEV_SET_PCL_CMDID
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
2016-04-25 22:55:25 -07:00
Rajeev Kumar
daf1c61b87 qcacld-3.0: Increase target ready timeouts
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
2016-04-20 22:24:38 -07:00
Rajeev Kumar
94c9b45b3d qcacld-3.0: Pass IBSS peer mac address received from target
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
2016-04-20 22:24:32 -07:00
Varun Reddy Yeturu
f907f91deb qcacld-3.0: Reduce packet loss while roaming
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
2016-04-20 22:24:17 -07:00
Tushnim Bhattacharyya
7624a18def qcacld-3.0: disallow concurrency with 160Mhz or 80+80Mhz
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
2016-04-20 22:23:34 -07:00
Gupta, Kapil
4cb1d7d032 qcacld-3.0: Add support for beacon filtering
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
2016-04-20 22:23:23 -07:00
Poddar, Siddarth
8390502e2e qcacld-3.0: add ini support for throttling period duty cycles
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
2016-04-20 22:23:19 -07:00
Krishna Kumaar Natarajan
ee4dbedf8f qcacld-3.0: Increase maximum size of oem data request
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
2016-04-20 22:23:11 -07:00
Krishna Kumaar Natarajan
b7f9a35ce8 qcacld-3.0: Fix layering violation while handling management frames
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
2016-04-20 22:23:06 -07:00
Krishna Kumaar Natarajan
3eed86b95d qcacld-3.0: Fix layering violation in sir_api.h
qcacld-2.0 to qcacld-3.0 propagation.

Fix layering violation in sir_api.h by renaming
enumeration prefixed with LIM.

Change-Id: I8b33fbb6d315c54c8cd483bd89685719e460051a
CRs-Fixed: 995039
2016-04-20 22:21:47 -07:00
Krishna Kumaar Natarajan
a96ee0f6ee qcacld-3.0: Fix incorrect buffer handling in OEM response handlers
qcacld-2.0 to qcacld-3.0 propagation.

Fix incorrect buffer handling in OEM response handlers.

This change set will fix,
1. Add appropriate check on the response length before malloc.
2. Add correct check for malloc failure.
3. Copy correct number of bytes into response buffer.

Change-Id: I621e391b9cdadbf01c98fdbf3ac1979373bb963c
CRs-Fixed: 996236
2016-04-20 22:21:42 -07:00
Rajeev Kumar
ef96e1580b qcacld-3.0: Add support for enhance multicast offload
Add supprot for enhance multicast offload feature such that
FW can filter out multicast IP data packets transmitted using
unicast MAC address.

Change-Id: I78066bec094b7b69ba1c2070d23eabb95853f52d
CRs-Fixed: 993496
2016-04-20 22:20:59 -07:00
Rajeev Kumar
c9a50e769f qcacld-3.0: (part-4) Remove obsoleted BTAMP feature
Remove all the code written to support this feature as this feature
has been obsoleted for all next gen projects.

Change-Id: I469841f719ddb43710724013e4b669560f0a008b
CRs-Fixed: 992930
2016-04-20 22:20:32 -07:00
Rajeev Kumar
a3f6c2dc48 qcacld-3.0: Add API to set the bonded channel parameters
Add API to CDS to add bonded channel parameters. Given an
operating channel and channel width, the API would verify and
populate the center frequencies.

Change-Id: Ib2c5029cda567308210b028b628d96419e3fd05c
CRs-Fixed: 988355
2016-04-20 22:19:48 -07:00
Sreelakshmi Konamki
86d79203a7 qcacld-3.0: Fix Suspicious pointer dereference before NULL check
qcacld-2.0 to qcacld-3.0 propagation

Fix to add NULL check before dereference of pointer

Change-Id: I520aca1fc46cf3fbb30d2f068f6da43a2b2986e6
CRs-Fixed: 965800
2016-04-17 18:11:58 -07:00
Kiran Kumar Lokere
830ba16663 qcacld-3.0: Enable UAPSD only when device is in power save
Send UAPSD parameters to FW and enable it only if the device is
in power save mode.

Change-Id: I14ecfc8bace7ec15eebe18296355544cdbdf030e
CRs-Fixed: 991119
2016-04-17 18:11:37 -07:00
Varun Reddy Yeturu
bbbbe237f9 qcacld-3.0: Enable compile time enable/disable for roaming
Enable compile time featurization support for both LFR2.0
and LFR3.0 using WLAN_FEATURE_HOST_ROAM and
WLAN_FEATURE_ROAM_OFFLOAD respectively

CRs-Fixed: 978905
Change-Id: Ib5976cd0cd5a6e117a1334bfc73a043e36e25f77
2016-04-17 18:10:33 -07:00
Srinivas Girigowda
515a9efb36 qcacld-3.0: Remove FEATURE_WLAN_ESE_UPLOAD compile macro
At present and going forward ESE and ESE_UPLOAD will be the
de-facto approach supporting ESE. Hence there is no need of two compile macros
FEATURE_WLAN_ESE and FEATURE_WLAN_ESE_UPLOAD.

Instead Remove FEATURE_WLAN_ESE_UPLOAD and Keep only FEATURE_WLAN_ESE.

Change-Id: If1a04e95211a0d639db7b60a57a6d5f215d26f4e
CRs-Fixed: 950762
2016-04-17 18:07:30 -07:00
Kiran Kumar Lokere
13644679a2 qcacld-3.0: Move the channel width enum to cds
Currently channel width has different enum values in
different modules. Move the channel width enum definition
to CDS to maintain single channel width enum value in
the driver

Change-Id: I6a46d0c02546263080a15a3ec7c52486fc51e98e
CRs-Fixed: 983914
2016-04-17 18:06:59 -07:00
Rajeev Kumar
0a9901ba8c qcacld-3.0: Do not allow crash_inject command in FTM mode
- Subsystem restart is not supported in FTM mode
- Do not allow force crash inject command to test SSR in FTM mode

Change-Id: I743aba2082af5537e627b678b159ba9985986e07
CRs-Fixed: 954374
2016-04-17 18:06:52 -07:00
Amar Singhal
a7bb01b460 qcacld-3.0: Regdomain kernel-doc and other changes
Add kernel documentation for regdomain data structures. Also
rename some of the data structures to better names.

Change-Id: Iae26079ae8a7f06e2670594694ae36c2c2a0a524
CRs-Fixed: 961806
2016-04-17 18:06:17 -07:00
Amar Singhal
2299511d9f qcacld-3.0: Make regdomain code linux style
Fix the data structures of regdomain code; to make it linux style.

Change-Id: If8123370f4ce370adba1a49636b42449c2644144
CRs-Fixed: 961806
2016-04-17 18:05:45 -07:00
Krishna Kumaar Natarajan
0f25bbb0b3 qcacld-3.0: Fix layering violation in wma_get_vht_ch_width
Fix layering violation in wma_get_vht_ch_width by using macros
defined in WMI instead of kernel defined macros.

Use WMI_VHT_CAP_CH_WIDTH_160MHZ and WMI_VHT_CAP_CH_WIDTH_80P80_160MHZ
instead of kernel defined macros.

Change-Id: I7d389c21d8c16fd9528cd06d98f2ec84b84aadf7
CRs-Fixed: 985099
2016-04-17 18:04:34 -07:00
Archana Ramachandran
28ab41212d qcacld-3.0: Fix memory leak in protocol stack due to cdf_mem_free removal
Fix memory leak in protocol stack due to cdf_mem_free removal.

CRs-Fixed: 987178
Change-Id: If2aa813322cbfea68001862098e6c0b18e6921ae
2016-04-17 18:00:34 -07:00
Nirav Shah
93e789e6d5 qcacld-3.0: Fix firmware statistics mask and format
Send prorper firmware statistics mask and fix
firmware statistics format

Change-Id: I786a7a6e3cec46660c497a001b4b39fb1a049b3a
CRs-Fixed: 986060
2016-04-17 17:55:45 -07:00
Vishwajith Upendra
bf673e7258 qcacld-3.0: Add support for SAP DFS-3 160MHz, 80+80MHz NOL
Add support for DFS Master mode NOL channel blacklisting.
In 80+80MHz mode add only the channels to NOL based on the segment
id on which radar has been detected and in 160MHz add all or only
DFS channels skipping the Non-DFS channels,  part of the 160MHz bond.

Acked-by: Rakesh Sunki <rsunki@qca.qualcomm.com>

Change-Id: Ie56d14b17997a86e12eacd0ea86cf1742899feb4
CRs-Fixed: 964262
2016-04-17 17:48:41 -07:00
Amar Singhal
30193a7fa4 qcacld-3.0: Remove obsolete regdomain structures
Remove obsolete regdomain data structures. Also remove the obsolete
fields from REG_DOMAIN and REG_DMN_PAIR_MAPPING data structures.

Change-Id: I1ff906571dfadf9cf6a4dc963d8eef62acc5f6b5
CRs-Fixed: 961806
2016-04-17 17:05:13 -07:00
Amar Singhal
c1f9c1af05 qcacld-3.0: Remove sub-ctl codes.
Firmware does not require the sub-ctl codes from the host. Therefore,
remove the calculation of sub-ctl codes from the host APIs. Also
remove the associated data structures.

Change-Id: Ib5d5f074b45f2dae2bb9a7c172ee7f8750ad5355
CRs-Fixed: 961806
2016-04-17 17:05:12 -07:00
Amar Singhal
76b4132090 qcacld-3.0: Define correct country codes
Define the correct country codes per the data published by the
regulatory compliance team.

Change-Id: I2474acb2657ba1e4a0f62aef013df296aebfcb53
CRs-Fixed: 961806
2016-04-17 17:05:12 -07:00
Archana Ramachandran
fec2481466 qcacld-3.0: Do not send SMPS force mode on dynamic antenna mode switch
When dynamic antenna selection requests to change the number of
TX/RX chains, the FW chain mask manager will take care of sending
the corresponding SMPS action frames to the AP to put the station
in 1x1 or 2x2 mode. The host driver should only handle setting
the right SMPS mode in the HT capabilities of association
or re-association requests.

CRs-Fixed: 931250
Change-Id: I9bedcc5024a98040f571f730ff084f6fe3e3ad00
2016-04-17 17:05:12 -07:00
Archana Ramachandran
20d2e23fca qcacld-3.0: Enable station SMPS only if the session supported NSS > 1
If HT SMPS is enabled and if the session supported NSS > 1
then include SMPS IE in the HT capabilities of the association
and the reassociation management frame.Enabling SMPS with an AP
whose capability is only 1x1 will result in association/reassociation
request being rejected or an unexpected behavior. Send SMPS force mode
to FW to trigger SMPS action frame only if SMPS is enabled in the
INI. For dynamic antenna switch, the chain mask manager will send
the SMPS action frames.

CRs-Fixed: 931250
Change-Id: Ifff2ef2c8790994a68e676b8bba2fb03c21370d4
2016-04-17 17:05:12 -07:00
Archana Ramachandran
a20ef8127d qcacld-3.0: Dynamic antenna selection request/response messages
Add support to request for antenna mode to FW to switch from
1x1 to 2x2 and vice versa dynamically and process the response
status of whether the request was sent successfully.

Change-Id: Ie4b0b36981423f9325c48c7ebad445d5cc1f2a21
CRs-Fixed: 931250
2016-04-17 17:05:12 -07:00