Commit Graph

37 Commits

Author SHA1 Message Date
Dustin Brown
d53d1a85c6 qcacld-3.0: Cleanup code related to unit-test framework
A previous unit-test framework change contained some outstanding clean
code issues. Address the issues to ensure cleaner code is maintained.

Change-Id: I889d4e12a7c00b5fc6cb409bc077466019442456
CRs-Fixed: 1073756
2016-10-10 13:00:59 -07:00
Rajeev Kumar
9bb2e85aff qcacld-3.0: Power offload unit test framework enhancements
Recently host power offload suspend/resume has switched to 3
stage process. Enhance power offload unit test framework accordingly,
and improve error handling.

Change-Id: I8cc1e955fbaca631ee7fd76b0c907d1e68c836bf
CRs-Fixed: 1072423
2016-10-07 08:32:05 -07:00
Yuanyuan Liu
f97e822df4 qcacld-3.0: Use PLD API to get SOC serial number
Socinfo API is not a standard system API. Hence, use PLD API to get
SOC serial number instead of calling socinfo API directly to enhance
driver portability.

Change-Id: I1d673d2f3b0066f4e05f2f465abc8a6cad7a1f8f
CRs-Fixed: 1069480
2016-09-26 15:04:21 -07:00
Yuanyuan Liu
16a556259b qcacld-3.0: Clean up PLD source files and remove unused function
Clean up PLD source file by moving one-line function calls to
header file and make it static inline. Also, remove unused function.

Change-Id: Ibaa7357db4ac305f0bab9d8ad2f7dfe9351fda7d
CRs-Fixed: 1070075
2016-09-23 03:20:19 -07:00
Yuanyuan Liu
137755f159 qcacld-3.0: Provide PLD APIs for SMMU operations
Proivde PLD wrapper APIs for getting SMMU mapping
context and mapping SMMU to a specific physical address.

Change-Id: I3feb61b26c839547e4d050f62963e64f5ca062a7
CRs-Fixed: 1057714
2016-09-21 17:08:03 -07:00
Yuanyuan Liu
5ef6bfef5b qcacld-3.0: Add PLD ATHDIAG read/write support
Add PLD wrapper for platform athdiag read/write.
HIF will call these two functions when a athdiag read/write
triggered from user space.

CRs-Fixed: 1061837
Change-Id: Ie34c634beaf1cd91e24eca1b7ce5b6444a60393e
2016-09-21 17:07:57 -07:00
Yuanyuan Liu
187dcc5b93 qcacld-3.0: Call pld_pcie_power_off in pld_power_off
There's mistake that pld_power_off calls pld_pcie_power_on. Fix
this by calling the correct pcie power function.

Change-Id: I9e968d749479856510e0dd7f32f5babc57b6ebed
CRs-Fixed: 1064058
2016-09-15 19:34:09 -07:00
Yuanyuan Liu
22896aa193 qcacld-3.0: Register suspend_noirq/resume_noirq to kernel
Register suspend_noirq/resume_noirq callbacks to kernel. It will
make sure no wake up is pending from FW and if initial wake up is
received then failing it should trigger resume.

Change-Id: Ie553dfc1401c2c6934961773bc98a24626a9cd34
CRs-Fixed: 1060669
2016-09-15 16:51:41 -07:00
Yuanyuan Liu
3508408d32 qcacld-3.0: Call ICNSS APIs for get/set channels and dfs
Call ICNSS API for get/set unsafe channels and dfs nol when bus
type is SNOC.

Change-Id: I82f4f32097f38c0b26b80b861a15fda9b04b24d9
CRs-Fixed: 1061220
2016-09-15 16:51:39 -07:00
qcabuildsw
dc63fe5710 Revert "qcacld-3.0: Call ICNSS APIs for get/set channels and dfs"
This reverts Change-Id: I12e1db54468c7215318333b55d991c53886d21ff
WLAN driver is blocked from promotion as the dependent kernel
change is not merged yet. Getting/setting unsafe channels and
dfs nol are no longer be present after reverting.

CRs-Fixed: 1061220
Change-Id: I110df8d25464ff0d70428aa275538a98667ac57d
2016-09-11 15:44:45 -07:00
qcabuildsw
bad0e26422 Revert "qcacld-3.0: Register suspend_noirq/resume_noirq to kernel"
This reverts Change-Id: I3d3de3789a7d560ed171294fa9a1ebe6389746a7
WLAN driver is blocked from promotion as the dependent kernel
change is not merged yet. PM suspend_noirq/resume_noirq are
not available after reverting.

CRs-Fixed: 1060669
Change-Id: I2b1300bbb19d2e4975bb86a82a892501b993827b
2016-09-11 15:44:44 -07:00
Yuanyuan Liu
dcc3d4a270 qcacld-3.0: Call ICNSS APIs for get/set channels and dfs
Call ICNSS API for get/set unsafe channels and dfs nol when bus
type is SNOC.

Change-Id: I12e1db54468c7215318333b55d991c53886d21ff
CRs-Fixed: 1061220
2016-09-08 17:43:46 -07:00
Yuanyuan Liu
42567dfb22 qcacld-3.0: Register suspend_noirq/resume_noirq to kernel
Register suspend_noirq/resume_noirq callbacks to kernel. It will
make sure no wake up is pending from FW and if initial wake up is
received then failing it should trigger resume.

Change-Id: I3d3de3789a7d560ed171294fa9a1ebe6389746a7
CRs-Fixed: 1060669
2016-09-08 17:43:46 -07:00
Yuanyuan Liu
b657e93ec5 Revert "qcacld-3.0: Register suspend_noirq/resume_noirq to kernel"
This reverts Change-Id Ifce8edc5db8c0410c5cddd24aceb88675f8ced42.
WLAN driver is blocked from promotion as the dependent kernel
change is not merged yet. PM suspend_noirq/resume_noirq are
not available after reverting.

CRs-Fixed: 1060669
Change-Id: I0e015d664681c3e2ba57a26b04318d4aa13f0406
2016-09-08 17:43:27 -07:00
Yuanyuan Liu
7a82fcc900 Revert "qcacld-3.0: Call ICNSS APIs for get/set channels and dfs"
This reverts Change-Id Ic0627a14a65f07faeb5cfa0ec4fcdc85b79e3f63.
WLAN driver is blocked from promotion as the dependent kernel
change is not merged yet. Getting/setting unsafe channels and
dfs nol are no longer be present after reverting.

CRs-Fixed: 1061220
Change-Id: Id4e374310c5140cc7c5432183562998b2584853a
2016-09-08 17:42:46 -07:00
Yuanyuan Liu
d555ef181e qcacld-3.0: Call ICNSS APIs for get/set channels and dfs
Call ICNSS API for get/set unsafe channels and dfs nol when bus
type is SNOC.

CRs-Fixed: 1061220
Change-Id: Ic0627a14a65f07faeb5cfa0ec4fcdc85b79e3f63
2016-09-02 18:25:46 -07:00
Yuanyuan Liu
30597dd8cd qcacld-3.0: Register suspend_noirq/resume_noirq to kernel
Register suspend_noirq/resume_noirq callbacks to kernel. It will
make sure no wake up is pending from FW and if initial wake up is
received then failing it should trigger resume.

CRs-Fixed: 1060669
Change-Id: Ifce8edc5db8c0410c5cddd24aceb88675f8ced42
2016-09-02 18:23:21 -07:00
Mohit Khanna
1d531c408f qcacld-3.0: Add USB bus support (PLD)
Add PLD specific changes for USB bus support.

CRs-Fixed: 1023663
Change-Id: I030ee8a5e6dd13ed8bd970d80f435219677c4e4b
2016-08-19 18:33:17 -07:00
Yuanyuan Liu
f2ee05f167 qcacld-3.0: Provide PLD API for getting IRQ number
Provide PLD API of getting IRQ number for a given CE ID.

Change-Id: Icd293993e84ab4daa98430db231b8b73e082cd29
CRs-Fixed: 1047259
2016-08-19 11:03:51 -07:00
Yuanyuan Liu
0de344f3b5 qcacld-3.0: Update pld_soc_info structure
Update pld_soc_info structure with more Hardware information.

Change-Id: I42c0a16ec00c560b1cec1f355db3e15cd15adee5
CRs-Fixed: 1046753
2016-08-17 11:21:47 -07:00
Arun Khandavalli
1496fcb9be qcacld-3.0: Export APIs for power on/off WLAN hardware
Export APIs to WLAN driver to power on/off WLAN hardware.

Change-Id: I3743b8fe333d3a64b01109e3e821ce44443bdafd
CRs-Fixed: 1017496
2016-08-05 11:23:56 +05:30
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
Manikandan Mohan
7579337abf qcacld-3.0: Fix compilation error in 4.4v Kernel
Fix compilation errors in Kernel 4.4 version.

Change-Id: I08ce390a7983cfe70b46a48d22d6cfde11dc4c30
CRs-fixed: 1026152
2016-06-14 14:28:50 -07:00
Govind Singh
6a2fe03b7b qcacld-3.0: Add PLD layer for SDIO bus(Part 7 - HIF SDIO)
PLD stands for platform driver. It is a interface between CLD and
CNSS/ICNSS. It hides the CNSS/ICNSS APIs from CLD and provides a set
of common APIs.
Other modules should include pld_common.h if they want to call PLD
APIs.

Change-Id: I7591761d2a2be0e22fcad13a504e9fe5f92b9608
CRs-Fixed: 1015316
2016-06-14 14:28:30 -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
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
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
Yuanyuan Liu
6a313dcb16 qcacld-3.0: Get FW file names from PLD
Get FW file names from PLD.

CRs-Fixed: 1014363
Change-Id: I332cba76a3338eed27d37244bd9351ece99dcd97
2016-05-23 11:46:38 -07:00
Yuanyuan Liu
0e0aa93d32 qcacld-3.0: Use PLD APIs
Replace CNSS/ICNSS APIs with PLD APIs.

Change-Id: Ic0be1ff00dd7b4fc0b125e625f5d3977f4580c5e
CRs-Fixed: 1014363
2016-05-23 11:45:57 -07:00
Yuanyuan Liu
466ccb70fb qcacld-3.0: Protect cnss_wlan_pm_control under CONFIG_PCI_MSM
Add CONFIG_PCI_MSM flag for cnss_wlan_pm_control.

CRs-Fixed: 1010156
Change-Id: Icba6ec0952f899a2602751340a45f597eaf87d35
2016-05-06 14:51:27 -07:00
Yuanyuan Liu
d698eb6cd3 qcacld-3.0: Add support for registering runtime PM APIs
Add support for registering runtime PM APIs in PLD.

CRs-Fixed: 1010156
Change-Id: I8747edd0f8fc4bd79f72f7fba4b65d8c6ebd6887
2016-05-06 14:51:27 -07:00
Yuanyuan Liu
44c44772ad qcacld-3.0: Add PM semaphore related APIs in PLD
Add PM semaphore related APIs in PLD, which is being used in BMI.

CRs-Fixed: 1010156
Change-Id: Ief52f7b078ea62cae18508b9e523e2a19f3519b3
2016-05-06 14:51:27 -07:00
Yuanyuan Liu
d9f7a36529 qcacld-3.0: Add PLD layer
PLD stands for platform driver. It is a interface between CLD and
CNSS/ICNSS. It hides the CNSS/ICNSS APIs from CLD and provides a set
of common APIs.
Other modules should include pld_common.h if they want to call PLD
APIs.

CRs-Fixed: 979275
Change-Id: I3571fc70f502dc367c65f13b412cd5d37ee41d3c
2016-05-02 23:27:47 -07:00