提交線圖

1143 次程式碼提交

作者 SHA1 備註 日期
Govind Singh
ec7ad72102 qcacld-3.0: Refactor WMA data commands to fix WIN compilation
Refactor WMA data commands to remove dependency of WMA header files
in common wmi layer.

Change-Id: I48978e51ca6bd4416420ee66746d5bfe7adae3c9
CRs-Fixed: 1008872
2016-06-14 14:28:24 -07:00
Yuanyuan Liu
f7aea120bf qcacld-3.0: Re-organize header file including structure
Include pld_common.h in pld_internal.h as it uses data structures
defined in pld_common.h.

CRs-Fixed: 1022636
Change-Id: I17f8abfbec08b620be5af677e1599554c5fc7ea6
2016-06-14 14:28:20 -07:00
Yuanyuan Liu
5e25f531b5 qcacld-3.0: Provide common functions of adding/deleting dev node
Provide common functions of adding/deleting dev node from PLD
global context. These two APIs should be called in probe/remove
callback functions.

CRs-Fixed: 1023650
Change-Id: Iff8157ab4396266ffb013700076d4107a3a21566
2016-06-14 14:28:17 -07:00
Yuanyuan Liu
59f81e020e qcacld-3.0: Add PCIE/SNOC wrapper functions in PLD
It is not flexible to call CNSS/ICNSS APIs directly in pld_common
as PCIE and SDIO share some CNSS APIs. It will introduce "duplicate
definition" errors when SDIO is added. Hence, add wrapper functions
for all used CNSS/ICNSS APIs.

CRs-Fixed: 1022778
Change-Id: I6a38434cfa99fc47543e995dd82b7d8ddc4453a7
2016-06-14 14:28:14 -07:00
Yuanyuan Liu
11f526acba qcacld-3.0: Use PLD internal flags
Use PLD internal flags in PLD layer instead of using CNSS/ICNSS
kernel flags.

CRs-Fixed: 1018099
Change-Id: Id32c62ccd1749ef5a38fd11aba6ce6e4fbe84a6e
2016-06-14 14:28:12 -07:00
Yuanyuan Liu
25c66e1ac9 qcacld-3.0: Add CONFIG_PM flag for PLD pcie suspend/resume
Add CONFIG_PM flag for PLD pcie suspend/resume as it is not needed
in other platform when CONFIG_PM is not defined.

Change-Id: Iab04d15c81cbb94ccbdeb9be2b00fa069a421a86
CRs-Fixed: 1014363
2016-06-14 14:28:08 -07:00
Himanshu Agarwal
a6cedee349 qcacld-3.0: Change unsigned long to uint64_t
Change unsigned long to uint64_t while updating intra bss forwarded
packets count to make sure that the assignment is compatible for all
architectures.

Change-Id: I6bc0e2d7524c117ce199b4a373f541fd06fc9ef8
CRs-Fixed: 996735
2016-06-14 14:28:06 -07:00
Poddar, Siddarth
3e9fa5c0ec qcacld-3.0: Add hdd layer changes for HL (Part 6 - HIF SDIO)
Add sdio bus type to PLD bus type to map it to low level bus type.

CRs-Fixed: 969334
Change-Id: Icfccca604f71b1d3b6cedcc9fa6300e9cc14f4c3
2016-06-14 14:28:04 -07:00
Manjunathappa Prakash
c8e756412e qcacld-3.0: Enable DEBUG_Rx_RING_BUFFER to keep track of posted buffers
This enables the tracking of posted rx ring buffers. With this we can
identify if host/fw is wrong when we hit below issue:
"wlan: [0:E :QDF] rx hash: htt_rx_hash_list_lookup: no entry found for"
<physical address>

Change-Id: Ib973a2e2a69e881beddea23cdc1d2d994eeb1e12
CRs-Fixed: 864569
2016-06-14 14:28:02 -07:00
Manjunathappa Prakash
92db771024 qcacld-3.0: Do not modify vdev Rx callback in peer (de)init functions
Do not reset vdev->rx callback in peer modification functions, same vdev
corresponds to multiple peer.
Without this TDLS handshake fails, vdev->rx null callback function
results in dropping of datapath packets.

Change-Id: I39b51d2596cde494bee888009583a42f12a3f068
CRs-Fixed: 1024298
2016-06-14 14:27:59 -07:00
Poddar, Siddarth
ef1f30228f qcacld-3.0: Add firmware download support for sdio bus (Part 5 - HIF SDIO)
Add BMI and firmware download support for sdio bus platform.
Refactor fw and bmi download routines to get rid of compile
time bus specific macro.
Refactor allocation and free routines for high latency bus.

CRs-Fixed: 969334
Change-Id: I2c217891d0ca4b503e7388b3ebe2f787e8325af5
2016-06-14 14:27:55 -07:00
Poddar, Siddarth
27b1a60e64 qcacld-3.0: Add datapath layer changes for sdio bus (Part 4 - HIF SDIO)
Remove bus specific calls from data path layer.
Add sdio specific target address
Add sdio bundling rates in datapath layer.
Fix rx data callback for UMP system.

CRs-Fixed: 969334
Change-Id: I0cd45479ca89b97455b4a9c71ce326646f38a5f3
2016-06-14 14:27:53 -07:00
Govind Singh
d5a7bcd155 qcacld-3.0: Add INLINE macro definition in os API header
FW common files needs to be in sync with host and fw.
Latest version of FW interface file uses INLINE macro and
INLINE macro definition is not exposed by fw interface files
as it has different definition of INLINE for different
toolchains/compilers. Abstract INLINE macro definition in
os API header file.

Change-Id: I431b12ce7f880e2f0e8db244f230c64f59e12e42
CRs-Fixed: 1012542
2016-06-14 14:27:47 -07:00
Manishekar Chandrasekaran
db9b86747f qcacld-3.0: Check validity of the adapter before access
Fix errors reported by static source analysis tool by
validating the adapter to make sure it is not NULL
before access.

Change-Id: I312da3ebf6913e5b8999a9ad9dc4eaa6ae08234b
CRs-Fixed: 1027065
2016-06-10 11:30:58 -07:00
Manishekar Chandrasekaran
c67b2bb16c qcacld-3.0: Restart SAP through (E)CSA on channel avoidance event
Restart SAP through (E)CSA on receiving channel avoidance event
from FW instead of doing a hard restart. This provides the
advantage of not disconnecting the connected clients.

Change-Id: Ibaa74dc8d7c75ed793faa418ee8c179b4210b35e
CRs-Fixed: 1020771
2016-06-10 11:30:54 -07:00
Yuanyuan Liu
9736118d7e qcacld-3.0: Add NULL check for qdf_ctx
Add NULL check for pointer qdf_ctx as it returned from call to
function 'cds_get_context' may be NULL and could be dereferenced.

Change-Id: Iea44cd1a2d20ee04d1720c4e8af1065320a589fd
CRs-Fixed: 1024778
2016-06-09 22:14:39 -07:00
Ryan Hsu
50da826021 qcacld-3.0: Add check to avoid NULL pointer access
nlmsg_put might return NULL if the tailroom is insufficient
to store the nl message. Add the check to avoid the NULL
pointer access.

Change-Id: I01f88262e7cf84cd611c8f72a11577e61e7af1a3
CRs-fixed: 1024810
2016-06-09 22:13:26 -07:00
Dhanashri Atre
5166d573eb qcacld-3.0: Higher 32 bits in the dma address are ignored
In TSO the higher bits in the 64 bit dma address are being ignored.
This is resulting in an incorrect address being programmed in the
fragment descriptor.

Change-Id: Id015e81212d2ded3f0716ca5cc06ae2220952270
CRs-Fixed: 1024169
2016-06-09 22:10:03 -07:00
Yuanyuan Liu
1348108467 qcacld-3.0: Return error code when any of bus register failed
Return error code when any of bus register functions failed.

Change-Id: I3cdc6afaa3899f1c32ab85fec5b89fa2e736d7b8
CRs-Fixed: 1023647
2016-06-09 22:09:57 -07:00
Manishekar Chandrasekaran
ec26759fc8 qcacld-3.0: Correct channel parameters during channel switch notification
Correct the channel parameters that are calculated and used to indicate
the channel switch notification sent to user space. The channel bonding
values should not be used to get the channel width information since
they can be used only in STA mode to enable or disable the channel
bonding. Fix the same by getting the updated channel switch information
from the session entries.

Change-Id: Ia51779cddb2b9c3108b211822f104c45f88e53fd
CRs-Fixed: 1021380
2016-06-09 22:09:51 -07:00
Leo Chang
07b28f6878 qcacld-3.0: enable hsoffload feature
Enable HS offload feature against latest kernel and ipa release.
Compile against latest ipa header is required.

Change-Id: I704bdfde098de6e33fb6b30455a75cb6a6cddb21
CRs-fixed: 1019762
2016-06-09 22:09:46 -07:00
Manishekar Chandrasekaran
44e334fb7e qcacld-3.0: Sort ACS channel list for all channel width cases
Ensure that the channel list used for ACS channel selection
is sorted for all the possible channel width cases. In the
current implementation, channel list sorting is not done for
channels widths 80, 80+80 and 160MHz. Along with this the
ACS channel range is getting set before the 11ac override,
leading to incorrect hardware mode. Fix the same by setting
the ACS range after 11ac override and ensure that channel
list is sorted in all the valid channel width cases.

Change-Id: Ic773b3a4b1c049bc2053c1d0d17dd047d7a88324
CRs-Fixed: 1022304
2016-06-06 18:45:32 -07:00
Komal Seelam
9764a840a6 qcacld-3.0: Configure SSDP address to FW as WoW pattern or MC list
Incoming Data packets are filtered by FW during WoW based on the pattern
configuration done by host.

The incoming packet is filtered out to Multicast list if configured,
else it looks for other patterns that are configured.

SSDP pattern is not configured along with Multicast List, instead it
is configured as a normal WoW pattern during system/runtime suspend.
So, all the ssdp packets are dropped by FW during WoW.

To address this, host should configure the SSDP pattern as a Multicast
filter if Multicast filter is enabled in ini, else configure it as a
normal WoW Pattern. Hence the fix.

Change-Id: I64aa30832999a779591bdfce02e13545a6cbf4f2
CRs-Fixed: 1010542
2016-06-06 18:45:30 -07:00
Himanshu Agarwal
5ac2f7bef9 qcacld-3.0: Refactor intra bss forwarded packets count
Propagation from qcacld-2.0 to qcacld-3.0.

Initially, when a packet is forwarded from txrx layer, it is added in
count only once although the count should increase by 2 as there is one
rx packet and one tx packet that is not getting considered in the hdd
packet count.

Add code to ensure that when packet is forwarded from lower layers,
it get considered accurately in the packet count.

Change-Id: I47bc1e0ecfa2e831438534cf34d37086a306b4e9
CRs-Fixed: 996735
2016-06-06 18:45:27 -07:00
Himanshu Agarwal
8c66df3699 qcacld-3.0: Remove error print from kmsg
Propagation from qcacld-2.0 to qcacld-3.0.

Remove error print from kmsg as this print is unnecessary and
may flood the kmsg.

Change-Id: I0978f88af6677cb0c1e1db5eae7e5d6a69bd4b70
CRs-Fixed: 997243
2016-06-06 18:45:25 -07:00
Himanshu Agarwal
11c874abae qcacld-3.0: Add intra bss forwarded packets count
Propagation from qcacld-2.0 to qcacld-3.0.

In lpm qos voting, no. of packets or bytes sent or received in a
particular amount of time is recorded and decision of disabling
or enabling lpm is done based on that. These packets are recorded
in HDD layer. In case when packets are forwarded to tx only, packets
don't come upto HDD layer and so in case of intra bss forwarding,
lpm qos voting is not being executed appropriately.

Add code to calculate the intra bss forwarded packets in txrx layer
and update them in calculating lpm qos voting.

Change-Id: I805663688cb300c8735b3e2f9680818a7b50bc9f
CRs-Fixed: 990868
2016-06-06 18:45:21 -07:00
Govind Singh
d39315d8cb qcacld-3.0: Move SIGN_HEADER_MAGIC definition to BMI layer
FW common files needs to be in sync with host and fw.
SIGN_HEADER_MAGIC is not defined in fw common header files.
Abstract extra definition internal to host driver.

Change-Id: Ie902ca191617a6829c2cf3e6a45c3d170ae8d8c6
CRs-Fixed: 1012542
2016-06-06 18:45:18 -07:00
Nirav Shah
07e39a6738 qcacld-3.0: Refactor DPTRACE to support new features
Refactor DPTRACE to support new datapath features like
TSO and FASTPATH and add support to log DHCP, ARP and
EAPOL packets.

Change-Id: I9b80a003759c962020165c21dbe29330700c4667
CRs-Fixed: 1008087
2016-06-06 18:45:16 -07:00
Nirav Shah
7f337dbb7a qcacld-3.0: Use different copy engine for packetlog
Create new endpoint and use CE11 for packetlog
messages from target to host.

CRs-Fixed: 995628
Change-Id: I0df597468b0b7399dc545b5a4d4fd1a4c04a1df0
2016-06-06 18:45:14 -07:00
Agrawal Ashish
c9ddbabf76 qcacld-3.0: Implement vendor command to restart SAP on some channel
qcacld-2.0 to qcacld-3.0 propagation

Add support for vendor command which will do restart of the SAP
on desirable channel.
QCA_NL80211_VENDOR_SUBCMD_SET_SAP_CONFIG is used to send
driver to restart SAP device on some other channel.
Upon receiving this command, driver will do __hdd_hostapd_stop
and will disable all queues.
After that WLANSAP_StartBss start SAP on user config channel.

Change-Id: I34d4e4f758ca7e010ae198af31d9fc3777973b22
CRs-Fixed: 1000593
2016-06-06 18:45:10 -07:00
Akash Patel
5b733215c9 Release 5.1.0.10
Release 5.1.0.10

Change-Id: I3fa5387f664b39f0647a526b820317c6f7e27190
CRs-Fixed: 688141
2016-06-01 10:51:22 -07:00
Yuanyuan Liu
960fa2145c qcacld-3.0: Fix error of invalid dev type when unloading wlan
PLD deletes dev node before calling HDD remove callback functions.
It causes an error of reporting invalid dev type when a platform
API is called within remove callback function. Deleting dev node
after remove callback being called will fix the issue.

CRs-Fixed: 1020538
Change-Id: I3df5810c20a5965b908f15d4182e9b927e033afc
2016-06-01 10:51:16 -07:00
Amar Singhal
83a047accb qcacld-3.0: Process SET_FCC_CHANNEL only after scan is finished
Currently SET_FCC_CHANNEL issues "update channel list" to firmware.
If scan is in progress, firmware aborts the scan resuting delay in
results update on the GUI. To avoid this, issue "update channel list"
only after scan is finished.

CRs-Fixed: 972208
Change-Id: I4c34010109443434bbe3abf45df7a0cf2effbee2
2016-06-01 10:49:56 -07:00
Amar Singhal
7c1e898b61 qcacld-3.0: Enable channels 12 & 13 when SET_FCC_CHANNEL is set
qcacld-2.0 to qcacld-3.0 propagation

Currently Ch 12/13 are disabled when SET_FCC_CHANNEL is issued by
framework. To meet FCC rules and to meet requirement for
other countries regulatory reduce TxPower for channel 12/13.

Change-Id: Ie833804e565f40e28845160452d3245334a34308
CRs-Fixed: 961580
2016-06-01 10:49:46 -07:00
Amar Singhal
c01d4a6f4c qcacld-3.0: Change default INI value for 11d
Only tablet solutions are likely to use 11d. So disable 11d
by default.

Change-Id: Ia999b47af83bd40e46cc9b48d1d173d6aecd9f1a
CRs-Fixed: 1018607
2016-06-01 10:49:38 -07:00
Rajeev Kumar
8ce712f9d7 qcacld-3.0: Convert wlan_hdd_wowl.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_wowl.c to use the unified
set of logging APIs.

Change-Id: I3243b578fac6bdfc7bcdc45808b4466f38d61b3d
CRs-Fixed: 937692
2016-06-01 10:49:23 -07:00
Ryan Hsu
cfef0aee5b qcacld-3.0: Enable the FTM mode to retrieve the radio index
qcacld-2.0 to qcacld-3.0 propagation

The wlan_hdd_nl_init() is escaped for FTM case due to the multicast
logging feature is not required for FTM mode.

But with recent logging feature change, when CNSS_LOGGER enabled,
the wlan_hdd_nl_init() is used to register to cnss_logger module
and retrieves the radio index. So allow the wlan_hdd_nl_init() be called
in both FTM and normal mode, then the radio index can be correctly assigned.

This change doesn't impact to the non CNSS_LOGGER case as it does still
initialized, but never been used.

Change-Id: Ic78982baef8770494c4319df8b1bde45f4d2bd02
CRs-fixed: 1007357
2016-06-01 10:49:19 -07:00
Ryan Hsu
7ac8885a0d qcacld-3.0: Add radio_index info to get_wifi_info command
qcacld-2.0 to qcacld-3.0 propagation

Add the radio_index information to get_wifi_info command.
This change allows user space to know which radio it is
talking to.

Also refactor the get_wifi_info command to support to query
multiple attributes in one command.

Change-Id: Ic3a3aabd9111e655ace3869771ae439aaec45dc4
CRs-fixed: 997545
2016-06-01 10:49:15 -07:00
Ryan Hsu
ceddceb391 qcacld-3.0: Add support for cnss logger module
qcacld-2.0 to qcacld-3.0 propagation

CONFIG_CNSS_LOGGER is introduced to move the logging feature from
CLD driver to kernel module.

This change will mainly benefit for two things for CLD driver.

    - To support for dual wifi driver instances and also
      future plan of moving out the logging thread and buffer
      management to the kernel module.

    - While debugging the critical feature that triggers the
      autoshutdown and SSR, the log buffer in the CLD driver will
      be lost after the driver restart or unload.

The CLD driver will register itself to the cnss logging module and
get the radio index as the indentification for rest of the operation.

Also the message sent from CLD driver to usespace need to be packed with
struct tAniNlHdr; and the hddctx.radio_index need to be filled along with
the message, so that usespace can differentiate the message.

Change-Id: I7ea6cdefac0916b9d4dd76da175607bf7169a8fa
CRs-fixed: 995073
2016-06-01 10:49:09 -07:00
Ryan Hsu
5e2e20529e qcacld-3.0: Avoid failing driver when cesium_nl_sock failed
qcacld-2.0 to qcacld-3.0 propagation

In the dual wifi instances, the 2nd cesium_nl_sock initialization
will fail due to the first driver has registered the socket.

This doesn't have to fail the driver to be up running, so simply
print a warning in this case.

Also add a check in the case to use the cesium_nl_sock to make sure
it is properly used only when it is initialized.

Change-Id: Ia62d606c1400b437f08c28951d6a6a77428f73b1
CRs-fixed: 995038
2016-06-01 10:49:03 -07:00
Mahesh A Saptasagar
da5a6823b1 qcacld-3.0: Broadcast logs irrespective of cnss_diag is running or not
qcacld-2.0 to qcacld-3.0 propagation

Current cnss_diag implementation, do not send NL message in order to
register with host driver, as host driver broadcasts both firmware and
host messages to all the userspace apps whoever is listening on NL
socket.

Hence broadcast logs irrespective of cnss_diag is running or not. Also
do not indicate host driver load/unload status to cnss_diag app.

Change-Id: Ib36324f5bb8dc50521e4646b6184cfe586c10104
CRs-Fixed: 993754
2016-06-01 10:48:59 -07:00
Mahesh A Saptasagar
72d2e4b2a3 qcacld-3.0: Define setKeepAlive ioctl with proper arguments
Define proper set arguments for setKeepAlive ioctl by Passing
sizeof setKeepAlive request parameter structure.

Change-Id: I4699fecb24f6b3c927e8b7c8263a611b354914a3
CRs-Fixed: 955411
2016-06-01 10:48:50 -07:00
Mahesh Kumar Kalikot Veetil
2935d25d05 qcacld-3.0: accept module name externally
qcacld-2.0 to qcacld-3.0 propagation

If module name is provided externally, override the default
module name.

Change-Id: I985f230de601830d8f8c35f1600a09c4ccede88f
CRs-Fixed: 999402
2016-06-01 10:48:46 -07:00
Jeff Johnson
330292a194 qcacld-3.0: Fix checkpatch errors in wlan_hdd_driver_ops.c
Currently the kernel checkpatch script is reporting several errors in
wlan_hdd_driver_ops.c:

ERROR: code indent should use tabs where possible
+        .runtime_suspend = wlan_hdd_pld_runtime_suspend,$
ERROR: code indent should use tabs where possible
+        .runtime_resume = wlan_hdd_pld_runtime_resume,$

Fix those errors.

Change-Id: Iae89ad6f55b6d1ba264767deaccbd58781925ead
CRs-Fixed: 1017135
2016-06-01 10:48:41 -07:00
Naveen Rawat
c9f0952c93 qcacld-3.1: Add WOW handler for NAN event
This is qcacld-2.0 to qcacld-3.1 propagation

Add NAN event case in WMI_WOW_WAKEUP_HOST_EVENTID handler function.

Change-Id: I9348d78bc1eebea0ad7ce9889727ea01c1528374
CRs-Fixed: 977484
2016-06-01 10:46:08 -07:00
Nirav Shah
f099e5e180 qcacld-3.0: Handle multiple map/unmap handler for same peer_id
Handle multiple map/unmap handler from firmware
for same peer_id. Firmware sends map/unmap event
per copy engine enabled for RX path.

CRs-Fixed: 1009289
Change-Id: Id8b0c27920a7aae95ddd4cff26731de85248457e
2016-06-01 10:45:58 -07:00
Kiran Kumar Lokere
9d41f61a0c qcacld-3.0: Send the correct phy mode in SAP+STA mode
In STA+SAP concurrency case the SAP channel is changed to due
to concurrency operation. Since the new channel params are not
updated in sap context, the old channel params are sent to WMA,
hence the PHY MODE is passed as UNKNOWN to FW.

Set the channel params when the SAP operating channel is changed
due to concurrent operation.

Change-Id: I8ac503a1b8993401b6fbdc247872539b72901564
CRs-Fixed: 1014368
2016-06-01 10:45:42 -07:00
Amar Singhal
046eb8a260 qcacld-3.0: Fix calculation of WLAN_PHY_MODE
Fix the calculation of WLAN_PHY_MODE from dot11mode and channel width.
Take care of all possible values of dot11mode and channel width.
Remove the usage of vht_capable parameter. Also remove the
un-necessary usage of CONFIG_160MHZ_SUPPORT.

Change-Id: Ibc263aed99b0b948f60ac6f1bfe72d16fda5c20e
CRs-Fixed: 1009720
2016-06-01 10:45:19 -07:00
Govind Singh
df35f3ef5e qcacld-3.0: Abstract delta code of fw common to respective layer
FW common files needs to be in sync with host and fw.
Abstract extra definition of hia map internal to hif layer.
MSI_NUM_REQUEST is incorrectly overwritten, keep the original
change as MSI_ENABLE is false across all target versions.
These changes are incorrectly added in following change id.
Iced029073c2db9eb175adcebcad9163ab39443a9.

Change-Id: Ie38666f315067ae40676e3bdac9238e4b52e6be1
CRs-Fixed: 1012542
2016-06-01 22:12:43 +05:30
Peng Xu
62c8c43b42 qcacld-3.0: Address return code handling and code cleanup
In Tx power scaling implementation, there are places where return
code is not handled properly and some code formatting needs cleanup.
This change address these issues.

CRs-fixed: 1013097
Change-Id: I3bafde8c046487cc1a80de22348c21f6d835efb5
2016-05-23 11:47:03 -07:00