summaryrefslogtreecommitdiff
path: root/core/pld/src/pld_common.c
diff options
context:
space:
mode:
authorGovind Singh <govinds@codeaurora.org>2016-05-13 14:09:37 +0530
committerVishwajith Upendra <vishwaji@codeaurora.org>2016-06-14 14:28:30 -0700
commit6a2fe03b7bd35c0b71fd6e5e95f306a11ab0e905 (patch)
treecf401f6f220858e183192e9106719d34f12b7162 /core/pld/src/pld_common.c
parent92fff91248d8bfa1acdf610611e9bb30516225da (diff)
downloadqcacld-6a2fe03b7bd35c0b71fd6e5e95f306a11ab0e905.tar.gz
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
Diffstat (limited to 'core/pld/src/pld_common.c')
-rw-r--r--core/pld/src/pld_common.c71
1 files changed, 70 insertions, 1 deletions
diff --git a/core/pld/src/pld_common.c b/core/pld/src/pld_common.c
index e25ba7a7bb..92b73cad63 100644
--- a/core/pld/src/pld_common.c
+++ b/core/pld/src/pld_common.c
@@ -43,10 +43,12 @@
#include "pld_pcie.h"
#include "pld_snoc.h"
+#include "pld_sdio.h"
#define PLD_PCIE_REGISTERED BIT(0)
#define PLD_SNOC_REGISTERED BIT(1)
-#define PLD_BUS_MASK 0x3
+#define PLD_SDIO_REGISTERED BIT(2)
+#define PLD_BUS_MASK 0x7
static struct pld_context *pld_ctx;
@@ -242,6 +244,8 @@ int pld_register_driver(struct pld_driver_ops *ops)
pld_context->pld_driver_state |= PLD_PCIE_REGISTERED;
if (0 == pld_snoc_register_driver())
pld_context->pld_driver_state |= PLD_SNOC_REGISTERED;
+ if (0 == pld_sdio_register_driver())
+ pld_context->pld_driver_state |= PLD_SDIO_REGISTERED;
if ((PLD_BUS_MASK & pld_context->pld_driver_state) != PLD_BUS_MASK) {
pr_err("driver falied to register, state %x\n",
@@ -280,6 +284,7 @@ void pld_unregister_driver(void)
pld_pcie_unregister_driver();
pld_snoc_unregister_driver();
+ pld_sdio_unregister_driver();
pld_context->pld_driver_state = 0;
@@ -311,6 +316,8 @@ int pld_wlan_enable(struct device *dev, struct pld_wlan_enable_cfg *config,
case PLD_BUS_TYPE_SNOC:
ret = pld_snoc_wlan_enable(config, mode, host_version);
break;
+ case PLD_BUS_TYPE_SDIO:
+ break;
default:
ret = -EINVAL;
break;
@@ -340,6 +347,8 @@ int pld_wlan_disable(struct device *dev, enum pld_driver_mode mode)
case PLD_BUS_TYPE_SNOC:
ret = pld_snoc_wlan_disable(mode);
break;
+ case PLD_BUS_TYPE_SDIO:
+ break;
default:
ret = -EINVAL;
break;
@@ -368,6 +377,8 @@ int pld_set_fw_debug_mode(struct device *dev, bool enablefwlog)
break;
case PLD_BUS_TYPE_SNOC:
break;
+ case PLD_BUS_TYPE_SDIO:
+ break;
default:
ret = -EINVAL;
break;
@@ -429,6 +440,10 @@ int pld_get_fw_files_for_target(struct device *dev,
break;
case PLD_BUS_TYPE_SNOC:
break;
+ case PLD_BUS_TYPE_SDIO:
+ ret = pld_sdio_get_fw_files_for_target(pfw_files,
+ target_type, target_version);
+ break;
default:
ret = -EINVAL;
break;
@@ -458,6 +473,8 @@ int pld_get_fw_image(struct device *dev,
break;
case PLD_BUS_TYPE_SNOC:
break;
+ case PLD_BUS_TYPE_SDIO:
+ break;
default:
ret = -EINVAL;
break;
@@ -539,6 +556,8 @@ int pld_get_codeswap_struct(struct device *dev,
break;
case PLD_BUS_TYPE_SNOC:
break;
+ case PLD_BUS_TYPE_SDIO:
+ break;
default:
ret = -EINVAL;
break;
@@ -568,6 +587,9 @@ int pld_set_wlan_unsafe_channel(struct device *dev,
break;
case PLD_BUS_TYPE_SNOC:
break;
+ case PLD_BUS_TYPE_SDIO:
+ /* To do get unsafe channel via cnss sdio API */
+ break;
default:
ret = -EINVAL;
break;
@@ -600,6 +622,9 @@ int pld_get_wlan_unsafe_channel(struct device *dev, u16 *unsafe_ch_list,
break;
case PLD_BUS_TYPE_SNOC:
break;
+ case PLD_BUS_TYPE_SDIO:
+ /* To do get unsafe channel via cnss sdio API */
+ break;
default:
ret = -EINVAL;
break;
@@ -627,6 +652,9 @@ int pld_wlan_set_dfs_nol(struct device *dev, void *info, u16 info_len)
break;
case PLD_BUS_TYPE_SNOC:
break;
+ case PLD_BUS_TYPE_SDIO:
+ /* To do get nol via cnss sdio API */
+ break;
default:
ret = -EINVAL;
break;
@@ -656,6 +684,8 @@ int pld_wlan_get_dfs_nol(struct device *dev, void *info, u16 info_len)
break;
case PLD_BUS_TYPE_SNOC:
break;
+ case PLD_BUS_TYPE_SDIO:
+ break;
default:
ret = -EINVAL;
break;
@@ -708,6 +738,8 @@ int pld_wlan_pm_control(struct device *dev, bool vote)
break;
case PLD_BUS_TYPE_SNOC:
break;
+ case PLD_BUS_TYPE_SDIO:
+ break;
default:
ret = -EINVAL;
break;
@@ -733,6 +765,8 @@ void *pld_get_virt_ramdump_mem(struct device *dev, unsigned long *size)
break;
case PLD_BUS_TYPE_SNOC:
break;
+ case PLD_BUS_TYPE_SDIO:
+ break;
default:
pr_err("Invalid device type\n");
break;
@@ -758,6 +792,8 @@ void pld_device_crashed(struct device *dev)
break;
case PLD_BUS_TYPE_SNOC:
break;
+ case PLD_BUS_TYPE_SDIO:
+ break;
default:
pr_err("Invalid device type\n");
break;
@@ -778,6 +814,8 @@ void pld_device_self_recovery(struct device *dev)
break;
case PLD_BUS_TYPE_SNOC:
break;
+ case PLD_BUS_TYPE_SDIO:
+ break;
default:
pr_err("Invalid device type\n");
break;
@@ -823,6 +861,9 @@ void pld_request_pm_qos(struct device *dev, u32 qos_val)
break;
case PLD_BUS_TYPE_SNOC:
break;
+ case PLD_BUS_TYPE_SDIO:
+ /* To do Add call cns API */
+ break;
default:
pr_err("Invalid device type\n");
break;
@@ -845,6 +886,9 @@ void pld_remove_pm_qos(struct device *dev)
break;
case PLD_BUS_TYPE_SNOC:
break;
+ case PLD_BUS_TYPE_SDIO:
+ /* To do Add call cns API */
+ break;
default:
pr_err("Invalid device type\n");
break;
@@ -871,6 +915,9 @@ int pld_request_bus_bandwidth(struct device *dev, int bandwidth)
break;
case PLD_BUS_TYPE_SNOC:
break;
+ case PLD_BUS_TYPE_SDIO:
+ /* To do Add call cns API */
+ break;
default:
ret = -EINVAL;
break;
@@ -899,6 +946,8 @@ int pld_get_platform_cap(struct device *dev, struct pld_platform_cap *cap)
break;
case PLD_BUS_TYPE_SNOC:
break;
+ case PLD_BUS_TYPE_SDIO:
+ break;
default:
ret = -EINVAL;
break;
@@ -922,6 +971,8 @@ void pld_set_driver_status(struct device *dev, enum pld_driver_status status)
break;
case PLD_BUS_TYPE_SNOC:
break;
+ case PLD_BUS_TYPE_SDIO:
+ break;
default:
pr_err("Invalid device type\n");
break;
@@ -953,6 +1004,8 @@ int pld_get_sha_hash(struct device *dev, const u8 *data,
break;
case PLD_BUS_TYPE_SNOC:
break;
+ case PLD_BUS_TYPE_SDIO:
+ break;
default:
ret = -EINVAL;
break;
@@ -977,6 +1030,8 @@ void *pld_get_fw_ptr(struct device *dev)
break;
case PLD_BUS_TYPE_SNOC:
break;
+ case PLD_BUS_TYPE_SDIO:
+ break;
default:
pr_err("Invalid device type\n");
break;
@@ -1002,6 +1057,8 @@ int pld_auto_suspend(struct device *dev)
break;
case PLD_BUS_TYPE_SNOC:
break;
+ case PLD_BUS_TYPE_SDIO:
+ break;
default:
ret = -EINVAL;
break;
@@ -1027,6 +1084,8 @@ int pld_auto_resume(struct device *dev)
break;
case PLD_BUS_TYPE_SNOC:
break;
+ case PLD_BUS_TYPE_SDIO:
+ break;
default:
ret = -EINVAL;
break;
@@ -1109,6 +1168,8 @@ void pld_enable_irq(struct device *dev, unsigned int ce_id)
break;
case PLD_BUS_TYPE_PCIE:
break;
+ case PLD_BUS_TYPE_SDIO:
+ break;
default:
pr_err("Invalid device type\n");
break;
@@ -1130,6 +1191,8 @@ void pld_disable_irq(struct device *dev, unsigned int ce_id)
break;
case PLD_BUS_TYPE_PCIE:
break;
+ case PLD_BUS_TYPE_SDIO:
+ break;
default:
pr_err("Invalid device type\n");
break;
@@ -1156,6 +1219,8 @@ int pld_get_soc_info(struct device *dev, struct pld_soc_info *info)
break;
case PLD_BUS_TYPE_PCIE:
break;
+ case PLD_BUS_TYPE_SDIO:
+ break;
default:
ret = -EINVAL;
break;
@@ -1204,6 +1269,8 @@ void pld_lock_pm_sem(struct device *dev)
break;
case PLD_BUS_TYPE_SNOC:
break;
+ case PLD_BUS_TYPE_SDIO:
+ break;
default:
pr_err("Invalid device type\n");
break;
@@ -1224,6 +1291,8 @@ void pld_release_pm_sem(struct device *dev)
break;
case PLD_BUS_TYPE_SNOC:
break;
+ case PLD_BUS_TYPE_SDIO:
+ break;
default:
pr_err("Invalid device type\n");
break;