diff options
author | Govind Singh <govinds@codeaurora.org> | 2016-05-13 14:09:37 +0530 |
---|---|---|
committer | Vishwajith Upendra <vishwaji@codeaurora.org> | 2016-06-14 14:28:30 -0700 |
commit | 6a2fe03b7bd35c0b71fd6e5e95f306a11ab0e905 (patch) | |
tree | cf401f6f220858e183192e9106719d34f12b7162 /core/pld/src/pld_common.c | |
parent | 92fff91248d8bfa1acdf610611e9bb30516225da (diff) | |
download | qcacld-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.c | 71 |
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; |