Commit Graph

80 Commits

Author SHA1 Message Date
Vikram Kandukuri
c83feb6cbf qcacmn: Static and Dynamic chain mask selection
Host support for Static and Dynamic chain mask selection.
parse new TLVs from ext service ready,copy tables to
wlan_objmgr_soc object.

CRs-Fixed: 2016643.
Change-Id: Ia4735eb4c7774c381df01f56696e8c86fc6c56ab
2017-04-17 02:13:26 -07:00
Rajeev Kumar
a0f4e9333c qcacmn: Migrate WMI from shared work queue to dedicated work queue
WMI RX event processing is very critical for WLAN driver and today
we are using kernel's shared event work queue. Shared event work
queue is used by many drivers and if any work submitted in shared
work queue takes longer time to finish then it directly impacts WLAN
control path processing.

Define a dedicated work queue for WMI RX event processing and use
it for WMI RX event handling.

Change-Id: I8ee6ca5b4b20c3357d46f8b56943078a0a76977f
CRs-Fixed: 2029775
2017-04-11 11:04:40 -07:00
Abhishek Singh
d418466478 qcacmn: Add WMI changes for PNO for converged scan
Add WMI changes for PNO for converged scan

Change-Id: I8133030502f63f458164f705aa88ebadf446ae60
CRs-Fixed: 1095299
2017-04-11 11:04:34 -07:00
Kiran Venkatappa
25c4702998 qcacmn: Add WMI APIs to send and extract offchan data tx
Add API to send offchan data TX command and extract API to get offchan
data tx completion params.

Change-Id: I1e04d50810e43cec2c700476581e518b394db582
2017-04-11 11:04:32 -07:00
Dustin Brown
e58fbc7c82 qcacmn: Implement WMI/Credit History log print APIs
Create output agnostic log print APIs for WMI and Credit History to
enhance the debugging experience.

Change-Id: Ie89a9cb3b54c373ac2610d62003e940da17696d8
CRs-Fixed: 2028762
2017-04-11 11:04:24 -07:00
Om Prakash Tripathi
91452bf413 qcacmn: Enable converged scan component
Update WMI layer to adopt to converged scan module
and enable converged scan component init/deinit

Change-Id: I4f9da95f90f737ac8bdcaa54f9eb4e154f37d3de
CRs-Fixed: 1095299
2017-03-29 09:09:24 -07:00
Baila, Shashikala Prabhu
6bad19799f qcacmn: Re-factor processing of WMI_REG_CHAN_LIST_CC_EVENTID
Due to different layers, TLV processing is confined to WMI folder.
Therefore, move the TLV layer processing of WMI_REG_CHAN_LIST_EVENTID
to the wmi folder.

Change-Id: I7e7182997a9506035030f33d2f81a403fbe97a2f
CR-Fixed: 2019750
2017-03-27 06:07:47 -07:00
Soumya Bhat
49a8481745 qcacmn: Add new WMI API
Add new API to allow components to move to common eventid space.

Change-Id: Ieab2019a0fb96817833266236073cffb3aaeab2c
CRs-Fixed: 2023157
2017-03-24 06:21:06 -07:00
Wu Gao
07ba6b4732 qcacmn: WMI changes for P2P component
Update WMI layer to adopt to converged P2P component.

Change-Id: Ia031476f7ee6071d2e15010fc3f7c998df9995dd
CRs-Fixed: 2011217
2017-03-22 19:21:34 -07:00
Kiran Venkatappa
129bd1aea2 qcacmn: Move max_event_idx and ctx_lock to wmi_soc
WMI event handlers are maintained in soc level WMI structure. Move
corresponding event_idx and ctx lock to soc level structure.

Change-Id: Ib78d26279028a8cf12f59446ae6139e3dfd1f875
2017-03-21 22:01:29 -07:00
Arif Hussain
85604fb297 qcacmn: Add support for DFS_PHYERR_OFFLOAD commands
Add support for below wmi commands
WMI_PDEV_DFS_PHYERR_OFFLOAD_ENABLE_CMDID
WMI_PDEV_DFS_PHYERR_OFFLOAD_DISABLE_CMDID

Change-Id: I5cfcfac428ce076d42f186752c967f67ffa1879f
CRs-Fixed: 2017481
2017-03-15 13:59:33 -07:00
Kapil Gupta
f6eb731669 qcacmn: Changes for PER based roaming
DUT should be able to roam to a better access point if current
AP is having congestion/packet error.

This roam also devise a new selection logic for candidate
selection which considers channel congestion and AP capabilities.

Change-Id: I6cffbf0de059a218e971be32fbdc1a0092ceea9d
CRs-Fixed: 1090934
2017-03-10 02:18:15 -08:00
Dustin Brown
4def31691f qcacmn: Add APIs to configure Active BPF Mode
Active Mode Berkeley Packet Filter (Active BPF) is a new feature that
allows firmware to apply BPF even while the Apps processor is active.
There are 3 modes:
 * Disabled: do not apply BPF in active mode
 * Enabled: apply BPF to all packets in active mode
 * Adaptive: apply BPF up to some threshold to avoid performance impact

Add WMI APIs and related logic to support configuration of Active BPF
Mode.

Change-Id: I8c0778b3fa73d148422aa103b0fc0950433fec95
CRs-Fixed: 1111400
2017-03-09 11:02:48 -08:00
Rajeev Kumar
0b6b285e34 qcacmn: Remove duplicate (ext)service ready structures from WMI
Object manager psoc service ready api provides host (ext)service ready
data structures hence remove duplicate copy from wmi_unified_param.h
and change WMI to use psoc service ready data structures.

Change-Id: Iaec20e9b818077ed1ca58754c4b1bc6deaedd761
CRs-Fixed: 2002016
2017-03-03 04:20:32 -08:00
Kiran Venkatappa
3d5149868c qcacmn: Add extract APIs for qvit event
Add extarct API to get QVIT event data.

Change-Id: I7777946a34f176dabb96f98ab3062222bc02b202
CRs-Fixed: 2003898
2017-03-01 20:35:13 -08:00
Mukul Sharma
ba196f56f4 qcacmn: Refactor the wmi code for PMO component adaption
Currently, Host maintain multiple data structure at different
layers for offload related features like arp/ns/gtk etc.
Instead of using many structure use single data structure across
all layers for offload related feature (arp/ns/gtk) which is now
exposed by PMO. Hence to include PMO header's in WMI, refactor the
WMI code for PMO component by carving out PMO specific functionality
separatley.

Change-Id: I8314d5ece49bf6972fbe706d635385ae22d11b2e
CRs-Fixed: 2004523
2017-02-28 16:21:27 -08:00
Sathish Kumar
907a746ad5 qcacmn: Add WMI APIs to support CSA for beacon offload
Add multiple vdev restart command request WMI command API and
extraction API for CSA count status event to support CSA implementation
for beacon offload.

Change-Id: Ic309f592137dc725e04590dc0093f30b481ebf9b
CRs-Fixed: 2000449
2017-02-27 20:47:21 -08:00
Kiran Venkatappa
929dd29d7d qcacmn: Support per mac CE for WMI commands
Firmware requires WMI commands to be sent on different copy engine for
each MAC. Add support in WMI to use different endpoints for each pdev.

Change-Id: Ie0dfe71043275ac694362f88b625219f089b5303
CRs-Fixed: 2005214
2017-02-22 11:13:18 -08:00
Kiran Venkatappa
af1dae38ef qcacmn: Add support to send hw_mode in init cmd
Support to add hw_mode in init command is added by FW
to let host choose the mode to be use. Change init cmd
send API to enable upper layer to send the hw_mode selected.
Since this is new TLV in init command, init cmd send API
needs to be changed to accommodate this parameter.

Change-Id: I172d8d737425599c36666d9fec8a6cdd48085097
CRs-Fixed: 2004652
2017-02-22 11:13:14 -08:00
Kiran Venkatappa
3f061a9d37 qcacmn: Add pdev_id in Pdev AST reserve event
pdev_id is required to identify the pdev object on which this event is
recieved. Add pdev_id in the event extract API.

Change-Id: Ia910d42af6a9d6099da1b7781601b0320dff80ba
CRs-Fixed: 2003898
2017-02-22 11:13:11 -08:00
Rajeev Kumar
5d8497b415 qcacmn: WMI service ready convergence changes
Converge on common WMI event handling for (ext)service ready
such that common PSOC object can be populated after common parsing.
Legacy (ext)service ready handlers continue to co-exist to support
legacy modules. Legacy service ready handlers can be removed once
legacy modules are also componentized and start using new object
model of PSOC, PDEV, VDEV and PEER.

To support multiple SoCs register for various psoc objects via legacy
callback registration routine during psoc probe and populate common
psoc object once WMI (ext)service ready event is parsed.

CRs-Fixed: 1110768
Change-Id: I966b8f7c775a19ac6e51ad5217a2dd0287acfada
2017-02-21 15:44:05 -08:00
Rajeev Kumar
45fdf7f69c qcacmn: Change WMI API's event_buf length type to uint32_t
Change all the WMI API's event buf length param to
uint32_t to adjust to event buf length param type
in the wmi_unified_event_handler().These changes are
needed to converge on the common service ready handlers.

Change-Id: I553bab579f514c356b59b003c0ec66c17e60e26f
CRs-Fixed: 1110768
2017-02-17 18:18:12 -08:00
Himanshu Agarwal
53d526b8f6 qcacmn: Change signature of mgmt rx frame related APIs
Change signature of tgt_mgmt_txrx_rx_frame_handler API
and mgmt_frame_rx_callback by replacing rx params of type
void pointer with that of struct mgmt_rx_event_params
pointer.

Change-Id: Idfa54f1c9bfec22a2cf2e98740765dcd797513df
CRs-Fixed: 1103247
2017-02-16 13:07:10 -08:00
Sathish Kumar
612d0c29b4 qcacmn: Add wmi support for 4-wire coex configuration
This patch adds support of new WMI command WMI_COEX_VERSION_CFG_CMID
for 4-wire coex configuration in non_tlv_ops.

Change-Id: I63da2c7ae99c38d297f7f13a8086611263f7fc5b
Acked-by: Daniel Kim <kimdan@codeaurora.org>
CRs-Fixed: 1081065
2017-02-13 21:31:46 -08:00
Vijay Pamidipati
add0ba7846 qcacmn: Synchronize VDEV_DELETE and VDEV_DOWN with peer delete response
Hold additional reference to BSS node during node allocation, and free
it in delete response. This ensures BSS Node Freed event is sent to MLME
only after receving peer delete response for BSS node.

Change-Id: I384eac54f437000a1c09eb53751ad8b8e26617ad
CRs-Fixed: 1112381
2017-02-09 15:50:08 -08:00
Mukul Sharma
36d159b91c qcacmn: Add WMI reference in PSOC and PSoc reference in WMI
Add WMI reference in PSOC and PSoc reference in WMI.

Change-Id: I6841bec1748447c6c98a81417365cf6e8d228b54
CRs-Fixed: 2002025
2017-02-08 04:43:36 -08:00
Gurumoorthi Gnanasambandhan
0d28328321 qcacmn: Setkey convergence for TLV and non-TLV boards
Changes to use single structure for setkey in TLV and non-TLV cases.

Change-Id: I4cb249ec15beeced5223d8593a3a7fdb5645462c
CRs-fixed: 1117377
2017-02-03 10:03:49 -08:00
Hanumanth Reddy Pothula
c5c132164e qcacmn: Enable HW broadcast filter
Add ini to param to enable/disable HW filter for bc
(except arp) frame

Change-Id: Iccb68e1816c897a63414fff849f3d505ef6361e5
CRs-Fixed: 1113550
2017-02-01 17:12:44 +05:30
Kiran Venkatappa
9f5fcc0eb7 qcacmn: Change FIPS event extract APIs
Add pdev_id in FIPS extract params to be used to get appropriate pdev.
Also refactor extart APIs to get all data in one API and implement TLV
APIs.

Change-Id: Ib58d54ad0dcc25814e58f45e7e4a83d01549a523
CRs-Fixed: 1115213
2017-01-30 17:21:41 +05:30
Kiran Venkatappa
9b7a959914 qcacmn: Add extract API for dcs interference event
Add TLV APIs to extract DCS intereference event. Add pdev id in
extract API used to derive pdev object.

Change-Id: Ie42ec1e3aec899ddc5b6b13d37dfd468ee29df7c
CRs-Fixed: 1115213
2017-01-30 17:21:05 +05:30
Sathish Kumar
617535c365 qcacmn: Add extract API for UTF event to support TLV and Non-TLV targets
Add extract API for handling UTF event data received from the target
for both TLV and non-TLV cases.

Change-Id: I62525d7c8663fe90e0e3e76cf5286bb9dc86acd0
CRs-Fixed: 1115293
2017-01-30 03:20:38 -08:00
Kiran Venkatappa
176fe6cbc2 qcacmn: Fix wmi extended service ready handling APIs
Add hw_mode_id. HW mode is received in extended service ready.
This will be used to determine FW capability to support multiple radio.
This is used on host to create multiple instantces of pdev on host.
Change mac_phy_cap extract API to get mac_phy_cap based on hw_mode_id
and phy_id

Change-Id: I9a6abdac8799d167828f13bef61b1a1d8c3e9769
CRs-Fixed: 1113888
2017-01-23 16:03:21 -08:00
Sarada Prasanna Garnayak
d49444cf6f qcacmn: Runtime PM packets tagging after wow suspend
qcacld-2.0 to qcacmn propagation.

Don't Tag Non-WoW packets as Runtime PM packets after
wow suspend. Some WMI Commands can be send in Runtime
PM context and MC thread context. Packets coming via
MC Thread Context can be tagged as Runtime PM packets
when runtime pm in progress.

Packets should be tagged in the same caller context to
avoid any race condition. Being stability issue, addressing
this issue by not tagging any non-wow commands as runtime pm
after wow suspend. This will ensure all the non-wow packets
coming after wow_suspend flag is set as non runtime pm packets
and will trigger a runtime resume.

Git-commit: 4a396d80c5cc2ded75098c61426521b9b2762c17
Git-commit: 2ee4bf4791cc5db30ec03eceaf591367deffe39a

CRs-Fixed: 1106496
Change-Id: I4e55733ad8403581aca0b49ce9442fc5591335c0
2017-01-12 05:26:11 -08:00
Paul Zhang
a9ec943d9f qcacmn: Drop Action frame in FW config by host
Propagation from qcacld-2.0 to qcacmn.

Several Action frame categories are not processed in host and they
are not forwarded to supplicant either, but they are dropped in host.
These unprocessed action frames are forwarded to host by FW and
wake up host unnecessarily which leads to battery drain. With this fix,
host conveys FW the disallowed action frames list at HDD startup
so that the remaining frames can be dropped in FW itself thereafter
when under WoW mode.

Change-Id: I40b49d42df94085784c8f1d8321de0ee61473ae0
CRs-Fixed: 999114
2017-01-04 18:09:31 -08:00
Manikandan Mohan
7e5ad48619 qcacmn: Add SAR power limit configuration
There is a regulatory requirement for Specific Absorption
Rate (SAR) whereby the phone transmit power is reduced
when it is determined that the phone is in close
proximity to the body.
Implement a vendor command interface to set SAR power
limts dynamically.

Change-Id: I0a214a2af780e9dd8c381c4e9eaa7d8cab6ef853
CRs-Fixed: 1098102
2016-12-16 16:44:57 -08:00
Sathish Kumar
7e566c5364 qcacmn: Add wmi support for btcoex duty cycle command
A new iwpriv command has been added to configure the period
and wlan duration for a btcoex duty cycle.

As a part of this registring the wmi_service_btcoex_duty_cycle
for WMI_SERVICE_BTCOEX_DUTY_CYCLE.

Also send_btcoex_wlan_priority_cmd registrtaion for btcoex
duty cycle command in non_tlv_ops.

Change-Id: I7f3bfdfd9804566d6d0b7cce7025e99db57d0e23
Acked-by: Basamma Yakkanahalli <ybasamma@qti.qualcomm.com>
CRs-Fixed: 1064437
2016-11-30 12:40:43 -08:00
Sathish Kumar
7e2eaed490 qcacmn: Add non-tlv APIs for new WMI commands and support for old commands
Implement following WMI commands and corresponding event extraction
APIs added for WIN release-
WMI_PEER_GID_USERPOS_LIST_CMDID
WMI_PEER_TX_MU_TXMIT_RSTCNT_CMDID
WMI_PEER_TX_MU_TXMIT_COUNT_CMDID
WMI_PDEV_CHECK_CAL_VERSION_CMDID
WMI_BTCOEX_CFG_CMDID

Additions to following existing WMI commands-
WMI_MU_CAL_START_CMDID
WMI_SET_LTEU_CONFIG_CMDID
WMI_PDEV_GET_TPC_CONFIG_CMDID
WMI_START_SCAN_CMDID

Change-Id: Ifd43addf196f2bc3cbff33671ef66202b8b0b487
CRs-Fixed: 1059400
2016-11-30 12:40:40 -08:00
Kiran Venkatappa
9c71b366e9 qcacmn: Add extract routines for WMI ext service ready event
Add helper routines to extract TLV params in WMI EXT service ready
event. These helper routines abstracts all TLV related information
providing APIs to extract ext serivce ready params.

Change-Id: Ic989331856ed2f9376965bdec4b658328f9e470b
CRs-Fixed: 1079237
2016-11-09 22:57:44 -08:00
Mukul Sharma
b4ddf9c925 qcacmn: Change WMI command limit to 256 from 1024
qcacld-2.0 to qcacmn propagation

To debug the fwr stuck issue as early as possibile,
reduce the wmi max pending command threshold to 256
from 1024.

Change-Id: Ic3cbe26cca979dcaa68fca03e6fe1af397cf0c4f
CRs-FIXED: 1080761
2016-11-08 02:36:59 -08:00
Leo Chang
8184e9c15f qcacmn: add lithium rx queue setup wmi messages
WMI changes for rx reorder queue setup.

Change-Id: I4c8b1a5b8fd50cceaf754bdfdecada695871fe96
CRs-fixed: 1080338
2016-11-02 12:02:09 -07:00
Padma, Santhosh Kumar
7352405bb9 qcacmn: Add changes for DISA certification
Add TLV changes to pass DISA parameters received from
WMA and pass them to firmware for firmware
to encrypt data and send back to driver.

Change-Id: Ic6928a93f799c47518fbbad96564062f595287dd
CRs-Fixed: 1072545
2016-10-03 12:48:34 +05:30
Mukul Sharma
ac755cd673 qcacmn: Cache ARP/NS offload request at wma layer
qcacld-2.0 to qcacmn propagation

As Current WMI interface need both the ARP/NS configuration
in single command. To support active offload host need to
cache the ARP/NS at wma layer so host can fill the other
request and configure down to firmware complete request
(ARP+NS).

Change-Id: Ie0a57d216379817ff0ae48f4f582c9108e8ecca1
CRs-Fixed: 1067683
2016-09-24 13:03:59 -07:00
Kiran Venkatappa
9da7e04134 qcacmn: Add WMI fixes made for TLV bringup on WIN
These fixes are made during qca8074 VP control path bringup.
Add fixes in tlv.c and enable TLV helper routines for WIN.
Fixed some inconsistencies in wmi API params by adding compiler flags.
This needs to be cleaned up so that API and params have common interface
between WIN and MCL.

Change-Id: I0821daa58df86ad0b394a7846a982a9e3577cd14
CRs-Fixed: 1063252
2016-09-20 07:59:33 -07:00
Anurag Chouhan
4d41be783a qcacmn: Add fwtest interface
Add wmi fw test interface to support generic fw test command.

Change-Id: Ic2dc113e3a698555c0fdcbafb30df154f6deb97d
CRs-Fixed: 1045265
2016-09-02 16:07:21 -07:00
Sathish Kumar
50232d78ae qcacmn: Add WMI API for setting bandwidth fairness
This change implements the Non-TLV WMI API for setting bandwidth
fairness. This WMI command was implemented as part of the recent WIN SW
release. This change ensures it is adapted to convergence code structure.

Change-Id: Ib9984c43b91b105bfb4687a7591f4fab509febc4
CRs-Fixed: 1060577
2016-08-31 06:28:05 -07:00
Nirav Shah
9d1f1ac852 qcacmn: Add support to enable/disable packetlog using iwpriv
Add support to enable/disable packetlog using
iwpriv wlan0 pktlog command.

CRs-Fixed: 970647
Change-Id: I4f7c64332e971591b7a08020a412e6f3979b718d
2016-08-19 20:20:38 -07:00
Himanshu Agarwal
56c292fdf7 qcacmn: Add changes for coexistence of WIN/ MCL TLV implementation
Add changes to allow coexistence of WIN/ MCL TLV implementation
through use of CONFIG_MCL flag and change of MACRO names.

Change-Id: I6868c288a43fd3afb19c84b8a9d4ef0dfbee5c94
Acked-by: prgandhi@qti.qualcomm.com
CRs-Fixed: 1008872
2016-08-19 18:52:55 -07:00
Govind Singh
fa201d95d8 qcacmn: Add WIN compilation fixes for TLV
Compilation fixes made to compile TLV on WIN code base.
Also, Previous gerrits used WMI_NON_TLV_SUPPORT for all
compilation fixes of WIN vs MCL, using CONFIG_MCL and
CONFIG_WIN wherever it is found appropriate to keep it
consistent with other modules.

Change-Id: I1c129d736746556210c46f3122e2739d233e1d6b
Acked-by: prgandhi@qti.qualcomm.com
CRs-Fixed: 1008872
2016-08-19 18:52:53 -07:00
Krishna Kumaar Natarajan
7a59ca0380 qcacmn: Correct len size of oem data request
qcacld-2.0 to qcacmn propagation.

oem data request len size should be of 4 byte instead of
1 byte.
Add changes to correct len size in wmi unified API.

Change-Id: I9b377420c50ff1160964f94be5eaa0072df0f63d
CRs-Fixed: 1013488
2016-07-29 18:15:29 -07:00
Varun Reddy Yeturu
b47fa40266 qcacmn: Fix incorrect channel list passed to the 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.

Change-Id: I8a2f8c9d31897b38086df26ebd386ec59d0f3540
CRs-Fixed: 1039020
2016-07-14 12:36:11 -07:00