Commit Graph

63 Commits

Author SHA1 Message Date
Nirav Shah
36a87bfb6e qcacld-3.0: Use sta id to derive peer in ol_rx_data_cb
Derive peer from sta id in ol_rx_data_cb to
make sure that peer is still valid before
using peer to avoid NULL pointer dereference

Change-Id: I8f9219d4c6ffbfb207385b08bc704cc0f86a1e1b
CRs-Fixed: 962949
2016-04-13 21:51:25 -07:00
Dhanashri Atre
50141c53a3 qcacld-3.0: Register vdev before registering peer
Ensure that the per vdev rx callback is registered before
registering the peer. The peer registration function may
try to flush the rx frames so we need to ensure that the rx
callback is registered before it is called.

Change-Id: Ibd1d73d89105bbc3f9d29fa2c64e9f515d4b0da5
CRs-Fixed: 1000834
2016-04-07 16:28:28 -07:00
Manjunathappa Prakash
2593a640d4 qcacld-3.0: Replace cdf references with qdf
Replace cdf references with qdf.

Change-Id: Ifba0c1045af57e285c87017e62ae240c2faa28ff
CRs-Fixed: 994638
2016-04-01 16:19:51 -07:00
Manjunathappa Prakash
3454fd61da qcacld-3.0: Data path changes to use converged APIs (Part 5)
Changes in the data path to use the converged MCL specific APIs.

Change-Id: Iaedc5e7e175d6b8eb905a04178fe9772dc7bb797
CRs-Fixed: 994638
2016-04-01 16:19:43 -07:00
Manjunathappa Prakash
10d357a17c qcacld-3.0: remove references to datapath structures from other modules
Core datapath structures should be opaque to non-datapath modules,
remove the references to them.

Change-Id: I3618253566a971c27f16b14923d1ff8028718918
CRs-Fixed: 994638
2016-04-01 16:19:36 -07:00
Dhanashri Atre
b08959a747 qcacld-4.0: Data path changes to use converged APIs (Part 4)
Changes in the data path to use the converged MCL specific APIs.

Change-Id: Ib6ae1917a9678dcd735b81e3aa83d086406ac404
CRs-Fixed: 994638
2016-04-01 16:09:57 -07:00
Dhanashri Atre
168d2b492e qcacld-3.0: Data path changes to use converged APIs (Part 3)
Changes to register a per vdev tx callback function.

Register a per-vdev transmit function during vdev registration.
The OS interface (HDD) adapter stores this transmit function and
invokes it to transmit data frames.

Change-Id: I1dfe6f58d1d26069dadc2d719fff242c29071bad
CRs-Fixed: 994638
2016-04-01 15:52:33 -07:00
Dhanashri Atre
182b027a73 qcacld-3.0: Data path changes to use converged APIs (Part 2)
Changes to register a per vdev rx callback function.

Register a per-vdev receive callback function using the vdev registration
API provided by the converged data path API. The changes include
- removing the older method of registering the receive callback
- modify the HDD callback to adhere to the rx callback function defined
by the converged data path API
- modify the invocation of the callback function in the data path

Change-Id: I2aef905132af4b3d7db22c7ec315d114607c9383
CRs-Fixed: 994638
2016-04-01 15:51:59 -07:00
Dhanashri Atre
12a0839cd6 qcacld-3.0: Data path changes to use converged APIs (Part 1)
Change the data path and external modules to use the new
converged common data path APIs.

Change-Id: Ifb48178efd012b6ad9ea6f6d5230d0a809922b1c
CRs-Fixed: 994638
2016-04-01 15:46:10 -07:00
Yue Ma
1e11d79646 qcacld-3.0: Remove CDS related functions in HTC
Update runtime PM APIs and HTC connection mode parameter
accordingly.

Change-Id: I2f54933b90aaed233042c113d246fae4726f5707
CRs-fixed: 982024
2016-04-01 15:24:33 -07:00
Houston Hoffman
c2cd5d472e qcacld-3.0: Remove power_gating from upper layers
These are pci specific power management features.  These should
be consolidated instead of littering bus agnostic code.

Change-Id: I366f1d14ab04368d77a144bebaeb038c1469abed
CRs-Fixed: 986480
2016-03-24 11:58:38 -07:00
Anurag Chouhan
f04e84f24a qcacld-3.0: Add qdf references in place of cdf
Replace CDF references with QDF references.

Change-Id: Ifb4571174719b5fce61dd305545d05628265f317
CRs-Fixed: 981188
2016-03-24 11:58:26 -07:00
Nirav Shah
cbc6d72570 qcacld-3.0: Update driver to use QDF NBUF APIs(1/2)
Update driver to use QDF NBUF APIs

Change-Id: I4409b6c046de1221b57baed45088d5f3b898b565
CRs-Fixed: 981188
2016-03-24 11:58:23 -07:00
Anurag Chouhan
600c3a00be qcacld-3.0: Add QDF mem API's
Replace CDF mem API's with QDF mem API's

Change-Id: Icf247b4dc5b26f4b960dcb98e323b096c1d6076c
CRs-Fixed: 981188
2016-03-24 11:58:16 -07:00
Anurag Chouhan
df2b26883d qcacld-3.0: Fix compilation issues after rebase
Remove the compilation issues for references to cdf after rebase

Change-Id: Ia39c5c72fe5c95f9a91d5f6967ea60904b46f756
CRs-Fixed: 981188
2016-03-24 11:58:14 -07:00
Anurag Chouhan
b2dc16fefe qcacld-3.0: Add QDF trace API's
Replace CDF trace API's with QDF trace API's.

Change-Id: I5b99dce73297f7de8f0755fa0b47dc3f84c78747
CRs-Fixed: 981188
2016-03-24 11:58:11 -07:00
Anurag Chouhan
2ed1fced92 qcacld-3.0: Add QDF osdep changes
Replace CDF osdep with QDF osdep

Change-Id: Id2ba89c75df1fb8c4973a87219785353c3c2ff3c
CRs-Fixed: 981188
2016-03-24 11:58:05 -07:00
Anurag Chouhan
c554842327 qcacld-3.0: Add QDF utils
Replace CDF utils with QDF utils.

Change-Id: Ib6b3ad56b3268b1be438f3204f91d995f8bb3900
CRs-Fixed: 981188
2016-03-24 11:58:03 -07:00
Anurag Chouhan
c73697b4da qcacld-3.0: Add QDF net types
Replace CDF net types with QDF net types API's.

Change-Id: I0599a2f0cfe7c9a9b7fe589f7619f88fd5a72518
CRs-Fixed: 981188
2016-03-24 11:58:00 -07:00
Anurag Chouhan
a37b5b783a qcacld-3.0: Add QDF lock API's
Replace CDF lock API's with QDF lock API's.

Change-Id: I7c4a59920e17915f077c87457c513e763738c062
CRs-Fixed: 981188
2016-03-24 11:57:57 -07:00
Anurag Chouhan
6d760664ee qcacld-3.0: Add QDF types
Replace CDF types with QDF types

Change-Id: Idd6e65b148efb54f22d6951572957f1c6166465b
CRs-Fixed: 981188
2016-03-24 11:57:54 -07:00
Anurag Chouhan
754fbd8d95 qcacld-3.0: Add QDF timer API's
Replace CDF timer API's with QDF timer API's

Change-Id: I43aa23676ed893a7309135dec6a8b897b113f00e
CRs-Fixed: 981188
2016-03-24 11:57:52 -07:00
Anurag Chouhan
512c7d5fca qcacld-3.0: Add QDF threads API's
Replace CDF threads API's with QDF threads API's

Change-Id: Ic20e6734f85b37ed11580ff3ed7e1a6de1356afb
CRs-Fixed: 981188
2016-03-24 11:57:49 -07:00
Anurag Chouhan
8e0ccd330b qcacld-3.0: Add QDF atomic API's
Replace CDF atomic API's with QDF atomic API's.

Change-Id: I18b4ab3487357d150bdfb96f9a078e1b5abb3156
CRs-Fixed: 981188
2016-03-24 11:57:44 -07:00
Anurag Chouhan
50220ce67c qcacld-3.0: Add qdf time API's
Replace CDF time API's with QDF time API's.

Change-Id: I3418f5603e5a05219a8470de3a9197928a3a8f13
CRs-Fixed: 981188
2016-03-24 11:57:42 -07:00
Anurag Chouhan
fb54ab0eac qcacld-3.0: Add QDF status
Replace CDF status with QDF status

Change-Id: I7170c8ae4c5bd97a8f0f383af637bb2ec312f082
CRs-Fixed: 981188
2016-03-24 11:57:39 -07:00
Anurag Chouhan
ce0dc99ca8 qcacld-3.0: Add qdf event API's
Replace CDF event API's with QDF event API's

Change-Id: I1d75c9ca01cc6bd7cac42f1ae4c1dd78f37b3d26
CRs-Fixed: 981188
2016-03-24 11:57:34 -07:00
Houston Hoffman
43d47fa659 qcacld-3.0: change skb->cb to support 64 bit paddrs(1/2)
Praprogation from qcacld-3.0 to qcacld-3.1.

Change skb->sb such that it is overlayed between tx
and rx and each one of then still fits 48 bytes.
Note that this will break IPA and it will be fixed
subsequently by another change.

Change-Id: I96168aee99dbdbecbdbd4259597e179b02d29f5d
CRs-Fixed: 881090
Acked-by: Orhan K AKYILDIZ <oka@qca.qualcomm.com>
2016-03-24 11:56:31 -07:00
Dhanashri Atre
83d373d681 qcacld-3.0: TSO (TCP Segmentation Offload) Clean-up
propagation from qcacld-3.0 to qcacld-3.1

Changes for TSO clean-up to address:
- conditional compile within function bodies
- change function return value
- convert macro to static inline function, etc
- Enable TSO for SAP mode

Change-Id: I29e764f64f7866d4c016ac31cd701c54526cc75d
CRs-Fixed: 881090
2016-03-23 13:45:10 -07:00
Komal Seelam
3d20286183 qcacld-3.0: Make hif_opaque_softc as global HIF Context
Rename ol_softc to hif_opaque_softc.

Change-Id: I48f6e4b6eb04ccfa2050cca052e1ad67a66e3479
CRs-Fixed: 967765
2016-03-23 13:45:10 -07:00
Komal Seelam
7fde14caba qcacld-3.0: Query HIF for FastPath support
Data Path bypasses HTC layer for better throughput's.
Instead of dereferencing HIF structures, query HIF for fastpath
mode support

Change-Id: Iad2ae907e2d5345a71f5b64bd29f81dde4358460
CRs-Fixed: 967765
2016-03-23 13:45:06 -07:00
Komal Seelam
c12e675c50 qcacld-3.0: Remove cds_get_context in HIF
Refactor Transport Layer from cds_get_context and pass the hif context
to all the API's to operate.

Change-Id: I2fb376fda12951a77007f46ceb351bb2e7740ace
CRs-Fixed: 967765
2016-03-23 13:45:06 -07:00
Komal Seelam
c4b2863aa8 qcacld-3.0: Refactor Ramdump API and PKTLOG API
Ramdump collection can be supported by buses other than PCIe, hence
move it to main files so other buses can also access those API's.

PKTLOG is a DataPath Feature, HIF doesn't need to have any info
of it. Move pktlog implementation to HTT folder.

Change-Id: I113ef9bb44438cd7a1ba70799ce7e72f2eaa7121
CRs-Fixed: 967765
2016-03-23 13:45:06 -07:00
Dhanashri Atre
1f0cbe43e3 qcacld-3.0: Handle MIC Error in Chatter Mode
qcacld-2.0 to qcacld-3.0 propagation

Add support to handle an error indicated by the fw in offload mode.
In this case - MIC error type.

Change-Id: I53363bdbaafad7fab0a6e067a43892a3066abbb6
CRs-Fixed: 791274
2016-02-08 15:50:45 -08:00
Govind Singh
6661529b7f qcacld-3.0: Fix IPA-uc callback in NON-SMP system
IPA callbacks need to be processed in tasklet
context in NON-SMP configuration as rx thread
is not used in NON-SMP context.
Hence Process IPA uc response in tasklet context
for NON-SMP configuration.

CRs-Fixed: 960302
Change-Id: I98d69dbdc1083f43035fe264bbee668e5efd5eee
2016-02-08 15:50:44 -08:00
Nirav Shah
d23104296e qcacld-3.0: Fix memory leak in case of fw reset stats command
Fix memory leak in case of txrx_fw_st_rst command where
we are not expecting any response from firmware.

CRs-Fixed: 964465
Change-Id: Iad91cb5557ef167d126ef68e07f02445ad7a0b97
2016-02-08 15:50:44 -08:00
Nirav Shah
55b45a080a qcacld-3.0: Use appropriate API to get total free descriptors
Use appropriate API to get total free descriptors for all
flow pool.

CRs-Fixed: 964984
Change-Id: I1ac40b2ce55743a65c6c487fd4055fe34ab61d2d
2016-02-08 15:50:44 -08:00
Houston Hoffman
b0ac63cf85 qcacld-3.0: Runtime puts for HTT messages
HTT messages do not have a tx complete and should
have their runtime puts done when the firmware response
come.  Tag messages without responses so that the
put can be done after issuing the message.  Also do
runtime put in error case.

Change-Id: I7253ace95ca6bb4fa17bc6d82ec52fc598d17712
CRs-Fixed: 935300
2016-02-08 15:50:41 -08:00
Houston Hoffman
1460fa326f qcacld-3.0: Runtime PM handling for htc messages
Check runtime pm status while sending messages.
Update runtime pm when sending messages to hif.
Update runtime pm when messages are tx completed.

Change-Id: I27840f57ff87d6d27b1e3611e7fe1f2cd933ddd0
CRs-Fixed: 935300
2016-02-08 15:50:41 -08:00
Houston Hoffman
5be9bac028 qcacld-3.0: Implement htc runtime suspend/resume
Provide the apis to suspend & resume the htc layer
for runtime suspend.

Change-Id: Ia4c4f00fa62b250c5097e6bc14137b0114c5c90f
CRs-Fixed: 935300
2016-02-08 15:50:41 -08:00
Houston Hoffman
7a39c0cb30 qcacld-3.0: Replace ServiceID with service_id
Removes cammel case.

Change-Id: I8107c9fa783bdec41468191315c901018f6fd05f
CRs-Fixed: 935297
2016-02-08 15:50:39 -08:00
Prashanth Bhatta
9e14305000 qcacld-3.0: Maintain driver state in CDS
Driver state of loading, unloading, logp are maintained in
multiple modules like HDD, CDS. Change to maintain the driver
state in CDS and provide CDS APIs to find out the state of the
driver so that any of the module can query it.
Also rename the logp to recovery in progress for clarity purpose.

Change-Id: I8e1864e1bc7f3b1dd6f4eb804ce2578c6695967d
CRs-fixed: 958659
2016-02-08 15:50:38 -08:00
Nirav Shah
2ae038d42e qcacld-3.0: Do not allocate mgmt descriptors
Do not allocate txrx descriptors for management
if management over WMI is enabled.

Change-Id: Iafb231bebe83b658940119ed13a41d64a10d4eb0
CRs-Fixed: 955450
2016-02-08 15:50:38 -08:00
DARAM SUDHA
e83cda60b6 qcacld-3.0: Fix datapath defects detected by Static code analyser
qcacld-2.0 to qcacld-3.0 propagation

Line 118: CID 50610 (#3 of 3): Out-of-bounds access (OVERRUN)
Line 200: CID 50680 (#1 of 1): Out-of-bounds read (OVERRUN)
Line 367: CID 50732 (#1 of 1): Out-of-bounds write (OVERRUN)
add TID validation check in RX_IND to avoid tid >19 scenario.

Change-Id: I32a3339902e231a8193fb8ee984ef029e24bc7e5
CRs-Fixed: 836067
2016-02-08 15:50:37 -08:00
Himanshu Agarwal
31f2856f13 qcacld-3.0: Avoid double free of vdev
Propagation from qcacld 2.0 to qcacld 3.0

Due to a race condition, vdev is getting deleted in
ol_txrx_vdev_detach and after that in
ol_txrx_peer_unref_delete, as vdev->delete.pending
is not equal to 0 as it is some garbage value, vdev
is getting deleted again causing crash.

This fix release the lock after checking
vdev->delete.pending so that before vdev gets deleted
in ol_txrx_vdev_detach, this check has been made and as
vdev->delete.pending is 0, it will not delete the
vdev in ol_txrx_peer_unref_delete and so vdev will be
deleted only once.

Change-Id: I4a7362b0e226c66ccb7c72243276d77e8df60b20
CRs-Fixed: 949397
2016-02-08 15:50:37 -08:00
Manikandan Mohan
fba8e0dc26 qcacld-3.0: Add IPA UC WDI 1.0 backward compatibility
Update qcacld-3.0 for IPA UC WDI 1.0 backward compatibility for
Rome WIFI device.

Change-Id: I33084efd6dd3434d1f6baec49de43fab75c63e7f
CRs-fixed: 952114
2016-02-08 15:29:31 -08:00
Nirav Shah
f2e3637e64 qcacld-3.0: Ignore HTT_T2H_MSG_TYPE_MGMT_TX_COMPL_IND from FW
Ignore HTT_T2H_MSG_TYPE_MGMT_TX_COMPL_IND from firmware if
management over WMI is enabled.

Change-Id: Ic196d17526c251ae26dd59ca2f42b7bff9a46ffe
CRs-Fixed: 949946
2015-12-28 14:20:47 -08:00
Nirav Shah
22bf44dc87 qcacld-3.0: Do not reserve mgmt descriptors
Do not reserve tx descriptors for management packets
if management over WMI is enabled.

Change-Id: Iafe758d91d11f4875e3152d92538055784490a14
CRs-Fixed: 949917
2015-12-28 14:20:47 -08:00
Nirav Shah
6ea4ca5f0d qcacld-3.0: Remove per vdev tx descriptor pool
Remove per vdev tx descriptor pool feature as
it is applicable only for High Latency.

CRs-Fixed: 916724
Change-Id: I22ab3dd187518790694356bdde8475b194845bf5
2015-12-28 14:20:46 -08:00
Nirav Shah
9d7f2e8b79 qcacld-3.0: Enable enahnced flow control
a) Enabled flow control
b) Add small helper functions to avoid duplication of
   code.
c) Fix thermal mitigation unpause issue with flow control.

CRs-Fixed: 916716
Change-Id: Ic02b66d1c23768a1c71dc08ed50dcedd02b647ce
2015-12-28 14:20:46 -08:00