mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-10 22:40:54 -04:00
qcacld-3.0: Moselle changes for WHUNT simulation support
Add PLD layer and config changes for simulating IPCI virtual device in WHUNT. Change-Id: Ia07ce0884f0e5ffe9b4d23977476c1789390e1c9 CRs-Fixed: 2648150
This commit is contained in:
parent
f9bfc82285
commit
06a63cafdd
7 changed files with 338 additions and 4 deletions
6
Kbuild
6
Kbuild
|
|
@ -1979,6 +1979,9 @@ PLD_INC := -I$(WLAN_ROOT)/$(PLD_INC_DIR) \
|
|||
|
||||
PLD_OBJS := $(PLD_SRC_DIR)/pld_common.o
|
||||
|
||||
ifeq ($(CONFIG_IPCIE_FW_SIM), y)
|
||||
PLD_OBJS += $(PLD_SRC_DIR)/pld_pcie_fw_sim.o
|
||||
endif
|
||||
ifeq ($(CONFIG_PCIE_FW_SIM), y)
|
||||
PLD_OBJS += $(PLD_SRC_DIR)/pld_pcie_fw_sim.o
|
||||
else ifeq ($(CONFIG_HIF_PCI), y)
|
||||
|
|
@ -2335,6 +2338,9 @@ cppflags-$(CONFIG_FEATURE_COEX) += -DFEATURE_COEX
|
|||
cppflags-$(CONFIG_PLD_IPCI_ICNSS_FLAG) += -DCONFIG_PLD_IPCI_ICNSS
|
||||
cppflags-$(CONFIG_PLD_SDIO_CNSS_FLAG) += -DCONFIG_PLD_SDIO_CNSS
|
||||
|
||||
ifeq ($(CONFIG_IPCIE_FW_SIM), y)
|
||||
cppflags-y += -DCONFIG_PLD_IPCIE_FW_SIM
|
||||
endif
|
||||
ifeq ($(CONFIG_PLD_PCIE_CNSS_FLAG), y)
|
||||
ifeq ($(CONFIG_PCIE_FW_SIM), y)
|
||||
cppflags-y += -DCONFIG_PLD_PCIE_FW_SIM
|
||||
|
|
|
|||
|
|
@ -76,19 +76,27 @@ ifdef CONFIG_ICNSS2
|
|||
CONFIG_ROME_IF = ipci
|
||||
endif
|
||||
|
||||
ifdef CONFIG_IPCIE_FW_SIM
|
||||
CONFIG_ROME_IF = ipci
|
||||
endif
|
||||
|
||||
ifeq (y,$(findstring y,$(CONFIG_CNSS) $(CONFIG_CNSS2)))
|
||||
ifndef CONFIG_ROME_IF
|
||||
#use pci as default interface
|
||||
ifndef CONFIG_IPCIE_FW_SIM
|
||||
CONFIG_ROME_IF = pci
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq (m,$(findstring m,$(CONFIG_CNSS2)))
|
||||
ifndef CONFIG_ROME_IF
|
||||
#use pci as default interface
|
||||
ifndef CONFIG_IPCIE_FW_SIM
|
||||
CONFIG_ROME_IF = pci
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
# Make WLAN as open-source driver by default
|
||||
WLAN_OPEN_SOURCE := y
|
||||
|
|
|
|||
|
|
@ -245,6 +245,7 @@ static enum qdf_bus_type to_bus_type(enum pld_bus_type bus_type)
|
|||
return QDF_BUS_TYPE_SDIO;
|
||||
case PLD_BUS_TYPE_USB:
|
||||
return QDF_BUS_TYPE_USB;
|
||||
case PLD_BUS_TYPE_IPCI_FW_SIM:
|
||||
case PLD_BUS_TYPE_IPCI:
|
||||
return QDF_BUS_TYPE_IPCI;
|
||||
default:
|
||||
|
|
|
|||
|
|
@ -52,6 +52,7 @@
|
|||
* @PLD_BUS_TYPE_SNOC_FW_SIM : SNOC FW SIM bus
|
||||
* @PLD_BUS_TYPE_PCIE_FW_SIM : PCIE FW SIM bus
|
||||
* @PLD_BUS_TYPE_IPCI : IPCI bus
|
||||
* @PLD_BUS_TYPE_IPCI_FW_SIM : IPCI FW SIM bus
|
||||
*/
|
||||
enum pld_bus_type {
|
||||
PLD_BUS_TYPE_NONE = -1,
|
||||
|
|
@ -62,6 +63,7 @@ enum pld_bus_type {
|
|||
PLD_BUS_TYPE_SNOC_FW_SIM,
|
||||
PLD_BUS_TYPE_PCIE_FW_SIM,
|
||||
PLD_BUS_TYPE_IPCI,
|
||||
PLD_BUS_TYPE_IPCI_FW_SIM,
|
||||
};
|
||||
|
||||
#define PLD_MAX_FIRMWARE_SIZE (1 * 1024 * 1024)
|
||||
|
|
|
|||
|
|
@ -415,6 +415,7 @@ int pld_wlan_enable(struct device *dev, struct pld_wlan_enable_cfg *config,
|
|||
QWLAN_VERSIONSTR);
|
||||
break;
|
||||
case PLD_BUS_TYPE_PCIE_FW_SIM:
|
||||
case PLD_BUS_TYPE_IPCI_FW_SIM:
|
||||
ret = pld_pcie_fw_sim_wlan_enable(dev, config, mode,
|
||||
QWLAN_VERSIONSTR);
|
||||
break;
|
||||
|
|
@ -462,6 +463,7 @@ int pld_wlan_disable(struct device *dev, enum pld_driver_mode mode)
|
|||
ret = pld_snoc_fw_sim_wlan_disable(dev, mode);
|
||||
break;
|
||||
case PLD_BUS_TYPE_PCIE_FW_SIM:
|
||||
case PLD_BUS_TYPE_IPCI_FW_SIM:
|
||||
ret = pld_pcie_fw_sim_wlan_disable(dev, mode);
|
||||
break;
|
||||
case PLD_BUS_TYPE_SDIO:
|
||||
|
|
@ -499,6 +501,7 @@ int pld_set_fw_log_mode(struct device *dev, u8 fw_log_mode)
|
|||
ret = pld_snoc_set_fw_log_mode(dev, fw_log_mode);
|
||||
break;
|
||||
case PLD_BUS_TYPE_PCIE_FW_SIM:
|
||||
case PLD_BUS_TYPE_IPCI_FW_SIM:
|
||||
case PLD_BUS_TYPE_SNOC_FW_SIM:
|
||||
case PLD_BUS_TYPE_SDIO:
|
||||
break;
|
||||
|
|
@ -566,6 +569,7 @@ int pld_get_fw_files_for_target(struct device *dev,
|
|||
target_version);
|
||||
break;
|
||||
case PLD_BUS_TYPE_PCIE_FW_SIM:
|
||||
case PLD_BUS_TYPE_IPCI_FW_SIM:
|
||||
case PLD_BUS_TYPE_SNOC_FW_SIM:
|
||||
case PLD_BUS_TYPE_SNOC:
|
||||
case PLD_BUS_TYPE_IPCI:
|
||||
|
|
@ -646,6 +650,7 @@ void pld_is_pci_link_down(struct device *dev)
|
|||
{
|
||||
switch (pld_get_bus_type(dev)) {
|
||||
case PLD_BUS_TYPE_PCIE_FW_SIM:
|
||||
case PLD_BUS_TYPE_IPCI_FW_SIM:
|
||||
break;
|
||||
case PLD_BUS_TYPE_PCIE:
|
||||
pld_pcie_link_down(dev);
|
||||
|
|
@ -677,6 +682,7 @@ void pld_schedule_recovery_work(struct device *dev,
|
|||
pld_pcie_schedule_recovery_work(dev, reason);
|
||||
break;
|
||||
case PLD_BUS_TYPE_PCIE_FW_SIM:
|
||||
case PLD_BUS_TYPE_IPCI_FW_SIM:
|
||||
case PLD_BUS_TYPE_SNOC_FW_SIM:
|
||||
case PLD_BUS_TYPE_SNOC:
|
||||
case PLD_BUS_TYPE_IPCI:
|
||||
|
|
@ -708,6 +714,7 @@ int pld_wlan_pm_control(struct device *dev, bool vote)
|
|||
ret = pld_pcie_wlan_pm_control(dev, vote);
|
||||
break;
|
||||
case PLD_BUS_TYPE_PCIE_FW_SIM:
|
||||
case PLD_BUS_TYPE_IPCI_FW_SIM:
|
||||
case PLD_BUS_TYPE_SNOC_FW_SIM:
|
||||
case PLD_BUS_TYPE_SNOC:
|
||||
break;
|
||||
|
|
@ -739,6 +746,7 @@ void *pld_get_virt_ramdump_mem(struct device *dev, unsigned long *size)
|
|||
mem = pld_pcie_get_virt_ramdump_mem(dev, size);
|
||||
break;
|
||||
case PLD_BUS_TYPE_PCIE_FW_SIM:
|
||||
case PLD_BUS_TYPE_IPCI_FW_SIM:
|
||||
case PLD_BUS_TYPE_SNOC_FW_SIM:
|
||||
case PLD_BUS_TYPE_SNOC:
|
||||
case PLD_BUS_TYPE_IPCI:
|
||||
|
|
@ -761,6 +769,7 @@ void pld_release_virt_ramdump_mem(struct device *dev, void *address)
|
|||
pld_pcie_release_virt_ramdump_mem(address);
|
||||
break;
|
||||
case PLD_BUS_TYPE_PCIE_FW_SIM:
|
||||
case PLD_BUS_TYPE_IPCI_FW_SIM:
|
||||
case PLD_BUS_TYPE_SNOC_FW_SIM:
|
||||
case PLD_BUS_TYPE_SNOC:
|
||||
case PLD_BUS_TYPE_IPCI:
|
||||
|
|
@ -790,6 +799,7 @@ void pld_device_crashed(struct device *dev)
|
|||
pld_pcie_device_crashed(dev);
|
||||
break;
|
||||
case PLD_BUS_TYPE_PCIE_FW_SIM:
|
||||
case PLD_BUS_TYPE_IPCI_FW_SIM:
|
||||
case PLD_BUS_TYPE_SNOC_FW_SIM:
|
||||
case PLD_BUS_TYPE_SNOC:
|
||||
break;
|
||||
|
|
@ -819,6 +829,7 @@ void pld_device_self_recovery(struct device *dev,
|
|||
pld_pcie_device_self_recovery(dev, reason);
|
||||
break;
|
||||
case PLD_BUS_TYPE_PCIE_FW_SIM:
|
||||
case PLD_BUS_TYPE_IPCI_FW_SIM:
|
||||
case PLD_BUS_TYPE_SNOC_FW_SIM:
|
||||
case PLD_BUS_TYPE_SNOC:
|
||||
break;
|
||||
|
|
@ -848,6 +859,7 @@ void pld_intr_notify_q6(struct device *dev)
|
|||
pld_pcie_intr_notify_q6(dev);
|
||||
break;
|
||||
case PLD_BUS_TYPE_PCIE_FW_SIM:
|
||||
case PLD_BUS_TYPE_IPCI_FW_SIM:
|
||||
case PLD_BUS_TYPE_SNOC_FW_SIM:
|
||||
case PLD_BUS_TYPE_SNOC:
|
||||
case PLD_BUS_TYPE_IPCI:
|
||||
|
|
@ -874,6 +886,7 @@ void pld_request_pm_qos(struct device *dev, u32 qos_val)
|
|||
pld_pcie_request_pm_qos(dev, qos_val);
|
||||
break;
|
||||
case PLD_BUS_TYPE_PCIE_FW_SIM:
|
||||
case PLD_BUS_TYPE_IPCI_FW_SIM:
|
||||
case PLD_BUS_TYPE_SNOC_FW_SIM:
|
||||
case PLD_BUS_TYPE_SNOC:
|
||||
break;
|
||||
|
|
@ -905,6 +918,7 @@ void pld_remove_pm_qos(struct device *dev)
|
|||
pld_pcie_remove_pm_qos(dev);
|
||||
break;
|
||||
case PLD_BUS_TYPE_PCIE_FW_SIM:
|
||||
case PLD_BUS_TYPE_IPCI_FW_SIM:
|
||||
case PLD_BUS_TYPE_SNOC_FW_SIM:
|
||||
case PLD_BUS_TYPE_SNOC:
|
||||
break;
|
||||
|
|
@ -938,6 +952,7 @@ int pld_request_bus_bandwidth(struct device *dev, int bandwidth)
|
|||
ret = pld_pcie_request_bus_bandwidth(dev, bandwidth);
|
||||
break;
|
||||
case PLD_BUS_TYPE_PCIE_FW_SIM:
|
||||
case PLD_BUS_TYPE_IPCI_FW_SIM:
|
||||
case PLD_BUS_TYPE_SNOC_FW_SIM:
|
||||
case PLD_BUS_TYPE_SNOC:
|
||||
break;
|
||||
|
|
@ -973,6 +988,7 @@ int pld_get_platform_cap(struct device *dev, struct pld_platform_cap *cap)
|
|||
ret = pld_pcie_get_platform_cap(dev, cap);
|
||||
break;
|
||||
case PLD_BUS_TYPE_PCIE_FW_SIM:
|
||||
case PLD_BUS_TYPE_IPCI_FW_SIM:
|
||||
ret = pld_pcie_fw_sim_get_platform_cap(dev, cap);
|
||||
break;
|
||||
case PLD_BUS_TYPE_SNOC_FW_SIM:
|
||||
|
|
@ -1014,6 +1030,7 @@ int pld_get_sha_hash(struct device *dev, const u8 *data,
|
|||
hash_idx, out);
|
||||
break;
|
||||
case PLD_BUS_TYPE_PCIE_FW_SIM:
|
||||
case PLD_BUS_TYPE_IPCI_FW_SIM:
|
||||
case PLD_BUS_TYPE_SNOC_FW_SIM:
|
||||
case PLD_BUS_TYPE_SNOC:
|
||||
break;
|
||||
|
|
@ -1044,6 +1061,7 @@ void *pld_get_fw_ptr(struct device *dev)
|
|||
ptr = pld_pcie_get_fw_ptr(dev);
|
||||
break;
|
||||
case PLD_BUS_TYPE_PCIE_FW_SIM:
|
||||
case PLD_BUS_TYPE_IPCI_FW_SIM:
|
||||
case PLD_BUS_TYPE_SNOC_FW_SIM:
|
||||
case PLD_BUS_TYPE_SNOC:
|
||||
case PLD_BUS_TYPE_IPCI:
|
||||
|
|
@ -1074,6 +1092,7 @@ int pld_auto_suspend(struct device *dev)
|
|||
ret = pld_pcie_auto_suspend(dev);
|
||||
break;
|
||||
case PLD_BUS_TYPE_PCIE_FW_SIM:
|
||||
case PLD_BUS_TYPE_IPCI_FW_SIM:
|
||||
case PLD_BUS_TYPE_SNOC_FW_SIM:
|
||||
case PLD_BUS_TYPE_SNOC:
|
||||
break;
|
||||
|
|
@ -1105,6 +1124,7 @@ int pld_auto_resume(struct device *dev)
|
|||
ret = pld_pcie_auto_resume(dev);
|
||||
break;
|
||||
case PLD_BUS_TYPE_PCIE_FW_SIM:
|
||||
case PLD_BUS_TYPE_IPCI_FW_SIM:
|
||||
case PLD_BUS_TYPE_SNOC_FW_SIM:
|
||||
case PLD_BUS_TYPE_SNOC:
|
||||
break;
|
||||
|
|
@ -1137,6 +1157,7 @@ int pld_force_wake_request(struct device *dev)
|
|||
ret = pld_pcie_force_wake_request(dev);
|
||||
break;
|
||||
case PLD_BUS_TYPE_PCIE_FW_SIM:
|
||||
case PLD_BUS_TYPE_IPCI_FW_SIM:
|
||||
case PLD_BUS_TYPE_SNOC_FW_SIM:
|
||||
case PLD_BUS_TYPE_SNOC:
|
||||
case PLD_BUS_TYPE_SDIO:
|
||||
|
|
@ -1170,6 +1191,7 @@ int pld_is_device_awake(struct device *dev)
|
|||
ret = pld_pcie_is_device_awake(dev);
|
||||
break;
|
||||
case PLD_BUS_TYPE_PCIE_FW_SIM:
|
||||
case PLD_BUS_TYPE_IPCI_FW_SIM:
|
||||
case PLD_BUS_TYPE_SNOC_FW_SIM:
|
||||
case PLD_BUS_TYPE_SNOC:
|
||||
case PLD_BUS_TYPE_SDIO:
|
||||
|
|
@ -1202,6 +1224,7 @@ int pld_force_wake_release(struct device *dev)
|
|||
ret = pld_pcie_force_wake_release(dev);
|
||||
break;
|
||||
case PLD_BUS_TYPE_PCIE_FW_SIM:
|
||||
case PLD_BUS_TYPE_IPCI_FW_SIM:
|
||||
case PLD_BUS_TYPE_SNOC_FW_SIM:
|
||||
case PLD_BUS_TYPE_SNOC:
|
||||
case PLD_BUS_TYPE_SDIO:
|
||||
|
|
@ -1245,6 +1268,7 @@ int pld_ce_request_irq(struct device *dev, unsigned int ce_id,
|
|||
handler, flags, name, ctx);
|
||||
break;
|
||||
case PLD_BUS_TYPE_PCIE_FW_SIM:
|
||||
case PLD_BUS_TYPE_IPCI_FW_SIM:
|
||||
case PLD_BUS_TYPE_PCIE:
|
||||
break;
|
||||
case PLD_BUS_TYPE_IPCI:
|
||||
|
|
@ -1278,6 +1302,7 @@ int pld_ce_free_irq(struct device *dev, unsigned int ce_id, void *ctx)
|
|||
ret = pld_snoc_fw_sim_ce_free_irq(dev, ce_id, ctx);
|
||||
break;
|
||||
case PLD_BUS_TYPE_PCIE_FW_SIM:
|
||||
case PLD_BUS_TYPE_IPCI_FW_SIM:
|
||||
case PLD_BUS_TYPE_PCIE:
|
||||
break;
|
||||
case PLD_BUS_TYPE_IPCI:
|
||||
|
|
@ -1307,6 +1332,7 @@ void pld_enable_irq(struct device *dev, unsigned int ce_id)
|
|||
pld_snoc_fw_sim_enable_irq(dev, ce_id);
|
||||
break;
|
||||
case PLD_BUS_TYPE_PCIE_FW_SIM:
|
||||
case PLD_BUS_TYPE_IPCI_FW_SIM:
|
||||
case PLD_BUS_TYPE_PCIE:
|
||||
case PLD_BUS_TYPE_IPCI:
|
||||
break;
|
||||
|
|
@ -1335,6 +1361,7 @@ void pld_disable_irq(struct device *dev, unsigned int ce_id)
|
|||
pld_snoc_fw_sim_disable_irq(dev, ce_id);
|
||||
break;
|
||||
case PLD_BUS_TYPE_PCIE_FW_SIM:
|
||||
case PLD_BUS_TYPE_IPCI_FW_SIM:
|
||||
case PLD_BUS_TYPE_PCIE:
|
||||
case PLD_BUS_TYPE_IPCI:
|
||||
break;
|
||||
|
|
@ -1368,6 +1395,7 @@ int pld_get_soc_info(struct device *dev, struct pld_soc_info *info)
|
|||
ret = pld_snoc_fw_sim_get_soc_info(dev, info);
|
||||
break;
|
||||
case PLD_BUS_TYPE_PCIE_FW_SIM:
|
||||
case PLD_BUS_TYPE_IPCI_FW_SIM:
|
||||
ret = pld_pcie_fw_sim_get_soc_info(dev, info);
|
||||
break;
|
||||
case PLD_BUS_TYPE_PCIE:
|
||||
|
|
@ -1408,6 +1436,7 @@ int pld_get_ce_id(struct device *dev, int irq)
|
|||
ret = pld_pcie_get_ce_id(dev, irq);
|
||||
break;
|
||||
case PLD_BUS_TYPE_PCIE_FW_SIM:
|
||||
case PLD_BUS_TYPE_IPCI_FW_SIM:
|
||||
break;
|
||||
case PLD_BUS_TYPE_IPCI:
|
||||
break;
|
||||
|
|
@ -1440,6 +1469,7 @@ int pld_get_irq(struct device *dev, int ce_id)
|
|||
case PLD_BUS_TYPE_IPCI:
|
||||
break;
|
||||
case PLD_BUS_TYPE_PCIE_FW_SIM:
|
||||
case PLD_BUS_TYPE_IPCI_FW_SIM:
|
||||
case PLD_BUS_TYPE_PCIE:
|
||||
default:
|
||||
ret = -EINVAL;
|
||||
|
|
@ -1462,6 +1492,7 @@ void pld_lock_pm_sem(struct device *dev)
|
|||
pld_pcie_lock_pm_sem(dev);
|
||||
break;
|
||||
case PLD_BUS_TYPE_PCIE_FW_SIM:
|
||||
case PLD_BUS_TYPE_IPCI_FW_SIM:
|
||||
case PLD_BUS_TYPE_SNOC_FW_SIM:
|
||||
case PLD_BUS_TYPE_SNOC:
|
||||
case PLD_BUS_TYPE_IPCI:
|
||||
|
|
@ -1489,6 +1520,7 @@ void pld_release_pm_sem(struct device *dev)
|
|||
pld_pcie_release_pm_sem(dev);
|
||||
break;
|
||||
case PLD_BUS_TYPE_PCIE_FW_SIM:
|
||||
case PLD_BUS_TYPE_IPCI_FW_SIM:
|
||||
case PLD_BUS_TYPE_SNOC_FW_SIM:
|
||||
case PLD_BUS_TYPE_SNOC:
|
||||
case PLD_BUS_TYPE_IPCI:
|
||||
|
|
@ -1519,6 +1551,7 @@ void pld_lock_reg_window(struct device *dev, unsigned long *flags)
|
|||
pld_pcie_lock_reg_window(dev, flags);
|
||||
break;
|
||||
case PLD_BUS_TYPE_PCIE_FW_SIM:
|
||||
case PLD_BUS_TYPE_IPCI_FW_SIM:
|
||||
case PLD_BUS_TYPE_SNOC_FW_SIM:
|
||||
case PLD_BUS_TYPE_SNOC:
|
||||
case PLD_BUS_TYPE_IPCI:
|
||||
|
|
@ -1549,6 +1582,7 @@ void pld_unlock_reg_window(struct device *dev, unsigned long *flags)
|
|||
pld_pcie_unlock_reg_window(dev, flags);
|
||||
break;
|
||||
case PLD_BUS_TYPE_PCIE_FW_SIM:
|
||||
case PLD_BUS_TYPE_IPCI_FW_SIM:
|
||||
case PLD_BUS_TYPE_SNOC_FW_SIM:
|
||||
case PLD_BUS_TYPE_SNOC:
|
||||
case PLD_BUS_TYPE_IPCI:
|
||||
|
|
@ -1582,6 +1616,7 @@ int pld_power_on(struct device *dev)
|
|||
*/
|
||||
break;
|
||||
case PLD_BUS_TYPE_PCIE_FW_SIM:
|
||||
case PLD_BUS_TYPE_IPCI_FW_SIM:
|
||||
case PLD_BUS_TYPE_SNOC_FW_SIM:
|
||||
break;
|
||||
case PLD_BUS_TYPE_SNOC:
|
||||
|
|
@ -1617,6 +1652,7 @@ int pld_power_off(struct device *dev)
|
|||
*/
|
||||
break;
|
||||
case PLD_BUS_TYPE_PCIE_FW_SIM:
|
||||
case PLD_BUS_TYPE_IPCI_FW_SIM:
|
||||
case PLD_BUS_TYPE_SNOC_FW_SIM:
|
||||
break;
|
||||
case PLD_BUS_TYPE_SNOC:
|
||||
|
|
@ -1666,6 +1702,7 @@ int pld_athdiag_read(struct device *dev, uint32_t offset,
|
|||
datalen, output);
|
||||
break;
|
||||
case PLD_BUS_TYPE_PCIE_FW_SIM:
|
||||
case PLD_BUS_TYPE_IPCI_FW_SIM:
|
||||
case PLD_BUS_TYPE_SNOC_FW_SIM:
|
||||
case PLD_BUS_TYPE_IPCI:
|
||||
break;
|
||||
|
|
@ -1710,6 +1747,7 @@ int pld_athdiag_write(struct device *dev, uint32_t offset,
|
|||
datalen, input);
|
||||
break;
|
||||
case PLD_BUS_TYPE_PCIE_FW_SIM:
|
||||
case PLD_BUS_TYPE_IPCI_FW_SIM:
|
||||
case PLD_BUS_TYPE_SNOC_FW_SIM:
|
||||
case PLD_BUS_TYPE_IPCI:
|
||||
break;
|
||||
|
|
@ -1741,6 +1779,7 @@ void *pld_smmu_get_domain(struct device *dev)
|
|||
ptr = pld_pcie_smmu_get_domain(dev);
|
||||
break;
|
||||
case PLD_BUS_TYPE_PCIE_FW_SIM:
|
||||
case PLD_BUS_TYPE_IPCI_FW_SIM:
|
||||
case PLD_BUS_TYPE_SNOC_FW_SIM:
|
||||
break;
|
||||
case PLD_BUS_TYPE_IPCI:
|
||||
|
|
@ -1774,6 +1813,7 @@ void *pld_smmu_get_mapping(struct device *dev)
|
|||
ptr = pld_snoc_smmu_get_mapping(dev);
|
||||
break;
|
||||
case PLD_BUS_TYPE_PCIE_FW_SIM:
|
||||
case PLD_BUS_TYPE_IPCI_FW_SIM:
|
||||
case PLD_BUS_TYPE_SNOC_FW_SIM:
|
||||
break;
|
||||
case PLD_BUS_TYPE_IPCI:
|
||||
|
|
@ -1811,6 +1851,7 @@ int pld_smmu_map(struct device *dev, phys_addr_t paddr,
|
|||
ret = pld_snoc_smmu_map(dev, paddr, iova_addr, size);
|
||||
break;
|
||||
case PLD_BUS_TYPE_PCIE_FW_SIM:
|
||||
case PLD_BUS_TYPE_IPCI_FW_SIM:
|
||||
case PLD_BUS_TYPE_SNOC_FW_SIM:
|
||||
break;
|
||||
case PLD_BUS_TYPE_IPCI:
|
||||
|
|
@ -1891,6 +1932,7 @@ int pld_get_user_msi_assignment(struct device *dev, char *user_name,
|
|||
base_vector);
|
||||
break;
|
||||
case PLD_BUS_TYPE_PCIE_FW_SIM:
|
||||
case PLD_BUS_TYPE_IPCI_FW_SIM:
|
||||
ret = pld_pcie_fw_sim_get_user_msi_assignment(dev, user_name,
|
||||
num_vectors,
|
||||
user_base_data,
|
||||
|
|
@ -1943,6 +1985,7 @@ int pld_srng_request_irq(struct device *dev, int irq, irq_handler_t handler,
|
|||
ret = request_irq(irq, handler, irqflags, devname, dev_data);
|
||||
break;
|
||||
case PLD_BUS_TYPE_PCIE_FW_SIM:
|
||||
case PLD_BUS_TYPE_IPCI_FW_SIM:
|
||||
ret = pld_pcie_fw_sim_request_irq(dev, irq, handler,
|
||||
irqflags, devname,
|
||||
dev_data);
|
||||
|
|
@ -1988,6 +2031,7 @@ int pld_srng_free_irq(struct device *dev, int irq, void *dev_data)
|
|||
free_irq(irq, dev_data);
|
||||
break;
|
||||
case PLD_BUS_TYPE_PCIE_FW_SIM:
|
||||
case PLD_BUS_TYPE_IPCI_FW_SIM:
|
||||
ret = pld_pcie_fw_sim_free_irq(dev, irq, dev_data);
|
||||
break;
|
||||
case PLD_BUS_TYPE_SNOC:
|
||||
|
|
@ -2023,6 +2067,7 @@ void pld_srng_enable_irq(struct device *dev, int irq)
|
|||
case PLD_BUS_TYPE_SNOC_FW_SIM:
|
||||
break;
|
||||
case PLD_BUS_TYPE_PCIE_FW_SIM:
|
||||
case PLD_BUS_TYPE_IPCI_FW_SIM:
|
||||
pld_pcie_fw_sim_enable_irq(dev, irq);
|
||||
break;
|
||||
case PLD_BUS_TYPE_PCIE:
|
||||
|
|
@ -2053,6 +2098,7 @@ void pld_srng_disable_irq(struct device *dev, int irq)
|
|||
case PLD_BUS_TYPE_SNOC_FW_SIM:
|
||||
break;
|
||||
case PLD_BUS_TYPE_PCIE_FW_SIM:
|
||||
case PLD_BUS_TYPE_IPCI_FW_SIM:
|
||||
pld_pcie_fw_sim_disable_irq(dev, irq);
|
||||
break;
|
||||
case PLD_BUS_TYPE_PCIE:
|
||||
|
|
@ -2087,6 +2133,7 @@ int pld_pci_read_config_word(struct pci_dev *pdev, int offset, uint16_t *val)
|
|||
case PLD_BUS_TYPE_SNOC_FW_SIM:
|
||||
break;
|
||||
case PLD_BUS_TYPE_PCIE_FW_SIM:
|
||||
case PLD_BUS_TYPE_IPCI_FW_SIM:
|
||||
break;
|
||||
case PLD_BUS_TYPE_IPCI:
|
||||
break;
|
||||
|
|
@ -2121,6 +2168,7 @@ int pld_pci_write_config_word(struct pci_dev *pdev, int offset, uint16_t val)
|
|||
case PLD_BUS_TYPE_SNOC_FW_SIM:
|
||||
break;
|
||||
case PLD_BUS_TYPE_PCIE_FW_SIM:
|
||||
case PLD_BUS_TYPE_IPCI_FW_SIM:
|
||||
break;
|
||||
case PLD_BUS_TYPE_PCIE:
|
||||
ret = pci_write_config_word(pdev, offset, val);
|
||||
|
|
@ -2155,6 +2203,7 @@ int pld_pci_read_config_dword(struct pci_dev *pdev, int offset, uint32_t *val)
|
|||
case PLD_BUS_TYPE_SNOC_FW_SIM:
|
||||
break;
|
||||
case PLD_BUS_TYPE_PCIE_FW_SIM:
|
||||
case PLD_BUS_TYPE_IPCI_FW_SIM:
|
||||
break;
|
||||
case PLD_BUS_TYPE_PCIE:
|
||||
ret = pci_read_config_dword(pdev, offset, val);
|
||||
|
|
@ -2189,6 +2238,7 @@ int pld_pci_write_config_dword(struct pci_dev *pdev, int offset, uint32_t val)
|
|||
case PLD_BUS_TYPE_SNOC_FW_SIM:
|
||||
break;
|
||||
case PLD_BUS_TYPE_PCIE_FW_SIM:
|
||||
case PLD_BUS_TYPE_IPCI_FW_SIM:
|
||||
break;
|
||||
case PLD_BUS_TYPE_PCIE:
|
||||
ret = pci_write_config_dword(pdev, offset, val);
|
||||
|
|
@ -2223,6 +2273,7 @@ int pld_get_msi_irq(struct device *dev, unsigned int vector)
|
|||
ret = pld_pcie_get_msi_irq(dev, vector);
|
||||
break;
|
||||
case PLD_BUS_TYPE_PCIE_FW_SIM:
|
||||
case PLD_BUS_TYPE_IPCI_FW_SIM:
|
||||
ret = pld_pcie_fw_sim_get_msi_irq(dev, vector);
|
||||
break;
|
||||
case PLD_BUS_TYPE_SNOC:
|
||||
|
|
@ -2262,6 +2313,7 @@ void pld_get_msi_address(struct device *dev, uint32_t *msi_addr_low,
|
|||
pld_pcie_get_msi_address(dev, msi_addr_low, msi_addr_high);
|
||||
break;
|
||||
case PLD_BUS_TYPE_PCIE_FW_SIM:
|
||||
case PLD_BUS_TYPE_IPCI_FW_SIM:
|
||||
pld_pcie_fw_sim_get_msi_address(dev, msi_addr_low,
|
||||
msi_addr_high);
|
||||
break;
|
||||
|
|
@ -2298,6 +2350,7 @@ int pld_is_drv_connected(struct device *dev)
|
|||
ret = pld_pcie_is_drv_connected(dev);
|
||||
break;
|
||||
case PLD_BUS_TYPE_PCIE_FW_SIM:
|
||||
case PLD_BUS_TYPE_IPCI_FW_SIM:
|
||||
case PLD_BUS_TYPE_SNOC_FW_SIM:
|
||||
case PLD_BUS_TYPE_SNOC:
|
||||
case PLD_BUS_TYPE_SDIO:
|
||||
|
|
@ -2329,6 +2382,7 @@ unsigned int pld_socinfo_get_serial_number(struct device *dev)
|
|||
ret = pld_snoc_socinfo_get_serial_number(dev);
|
||||
break;
|
||||
case PLD_BUS_TYPE_PCIE_FW_SIM:
|
||||
case PLD_BUS_TYPE_IPCI_FW_SIM:
|
||||
case PLD_BUS_TYPE_PCIE:
|
||||
pr_err("Not supported on type %d\n", type);
|
||||
break;
|
||||
|
|
@ -2366,6 +2420,7 @@ int pld_is_qmi_disable(struct device *dev)
|
|||
case PLD_BUS_TYPE_IPCI:
|
||||
break;
|
||||
case PLD_BUS_TYPE_PCIE_FW_SIM:
|
||||
case PLD_BUS_TYPE_IPCI_FW_SIM:
|
||||
case PLD_BUS_TYPE_PCIE:
|
||||
case PLD_BUS_TYPE_SDIO:
|
||||
pr_err("Not supported on type %d\n", type);
|
||||
|
|
@ -2405,6 +2460,7 @@ int pld_is_fw_down(struct device *dev)
|
|||
ret = pld_snoc_fw_sim_is_fw_down(dev);
|
||||
break;
|
||||
case PLD_BUS_TYPE_PCIE_FW_SIM:
|
||||
case PLD_BUS_TYPE_IPCI_FW_SIM:
|
||||
break;
|
||||
case PLD_BUS_TYPE_PCIE:
|
||||
ret = pld_pcie_is_fw_down(dev);
|
||||
|
|
@ -2446,6 +2502,7 @@ int pld_force_assert_target(struct device *dev)
|
|||
case PLD_BUS_TYPE_PCIE:
|
||||
return pld_pcie_force_assert_target(dev);
|
||||
case PLD_BUS_TYPE_PCIE_FW_SIM:
|
||||
case PLD_BUS_TYPE_IPCI_FW_SIM:
|
||||
return -EOPNOTSUPP;
|
||||
case PLD_BUS_TYPE_SNOC_FW_SIM:
|
||||
case PLD_BUS_TYPE_SDIO:
|
||||
|
|
@ -2474,6 +2531,7 @@ int pld_collect_rddm(struct device *dev)
|
|||
case PLD_BUS_TYPE_PCIE:
|
||||
return pld_pcie_collect_rddm(dev);
|
||||
case PLD_BUS_TYPE_PCIE_FW_SIM:
|
||||
case PLD_BUS_TYPE_IPCI_FW_SIM:
|
||||
case PLD_BUS_TYPE_SNOC_FW_SIM:
|
||||
case PLD_BUS_TYPE_SNOC:
|
||||
case PLD_BUS_TYPE_SDIO:
|
||||
|
|
@ -2595,6 +2653,7 @@ bool pld_is_fw_dump_skipped(struct device *dev)
|
|||
ret = pld_sdio_is_fw_dump_skipped();
|
||||
break;
|
||||
case PLD_BUS_TYPE_PCIE_FW_SIM:
|
||||
case PLD_BUS_TYPE_IPCI_FW_SIM:
|
||||
case PLD_BUS_TYPE_SNOC_FW_SIM:
|
||||
case PLD_BUS_TYPE_IPCI:
|
||||
default:
|
||||
|
|
@ -2613,6 +2672,7 @@ int pld_is_pdr(struct device *dev)
|
|||
ret = pld_snoc_is_pdr();
|
||||
break;
|
||||
case PLD_BUS_TYPE_PCIE_FW_SIM:
|
||||
case PLD_BUS_TYPE_IPCI_FW_SIM:
|
||||
case PLD_BUS_TYPE_SNOC_FW_SIM:
|
||||
case PLD_BUS_TYPE_IPCI:
|
||||
default:
|
||||
|
|
@ -2631,6 +2691,7 @@ int pld_is_fw_rejuvenate(struct device *dev)
|
|||
ret = pld_snoc_is_fw_rejuvenate();
|
||||
break;
|
||||
case PLD_BUS_TYPE_PCIE_FW_SIM:
|
||||
case PLD_BUS_TYPE_IPCI_FW_SIM:
|
||||
case PLD_BUS_TYPE_SNOC_FW_SIM:
|
||||
case PLD_BUS_TYPE_IPCI:
|
||||
default:
|
||||
|
|
@ -2648,6 +2709,7 @@ bool pld_have_platform_driver_support(struct device *dev)
|
|||
ret = pld_pcie_platform_driver_support();
|
||||
break;
|
||||
case PLD_BUS_TYPE_PCIE_FW_SIM:
|
||||
case PLD_BUS_TYPE_IPCI_FW_SIM:
|
||||
ret = true;
|
||||
break;
|
||||
case PLD_BUS_TYPE_SNOC_FW_SIM:
|
||||
|
|
@ -2687,6 +2749,7 @@ int pld_idle_shutdown(struct device *dev,
|
|||
errno = pld_pcie_idle_shutdown(dev);
|
||||
break;
|
||||
case PLD_BUS_TYPE_PCIE_FW_SIM:
|
||||
case PLD_BUS_TYPE_IPCI_FW_SIM:
|
||||
errno = pld_pcie_fw_sim_idle_shutdown(dev);
|
||||
break;
|
||||
case PLD_BUS_TYPE_SNOC_FW_SIM:
|
||||
|
|
@ -2723,6 +2786,7 @@ int pld_idle_restart(struct device *dev,
|
|||
errno = pld_pcie_idle_restart(dev);
|
||||
break;
|
||||
case PLD_BUS_TYPE_PCIE_FW_SIM:
|
||||
case PLD_BUS_TYPE_IPCI_FW_SIM:
|
||||
errno = pld_pcie_fw_sim_idle_restart(dev);
|
||||
break;
|
||||
case PLD_BUS_TYPE_SNOC_FW_SIM:
|
||||
|
|
@ -2766,6 +2830,7 @@ int pld_get_audio_wlan_timestamp(struct device *dev,
|
|||
case PLD_BUS_TYPE_PCIE:
|
||||
case PLD_BUS_TYPE_SNOC_FW_SIM:
|
||||
case PLD_BUS_TYPE_PCIE_FW_SIM:
|
||||
case PLD_BUS_TYPE_IPCI_FW_SIM:
|
||||
case PLD_BUS_TYPE_SDIO:
|
||||
case PLD_BUS_TYPE_USB:
|
||||
case PLD_BUS_TYPE_IPCI:
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2016-2019 The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2016-2020 The Linux Foundation. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for
|
||||
* any purpose with or without fee is hereby granted, provided that the
|
||||
|
|
@ -24,7 +24,7 @@
|
|||
|
||||
#include "pld_pcie_fw_sim.h"
|
||||
|
||||
#ifdef CONFIG_PLD_PCIE_FW_SIM
|
||||
#if defined(CONFIG_PLD_PCIE_FW_SIM) || defined(CONFIG_PLD_IPCIE_FW_SIM)
|
||||
|
||||
#ifdef QCA_WIFI_3_0_ADRASTEA
|
||||
#define CE_COUNT_MAX 12
|
||||
|
|
@ -32,6 +32,255 @@
|
|||
#define CE_COUNT_MAX 8
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_PLD_IPCIE_FW_SIM
|
||||
/**
|
||||
* pld_pcie_fw_sim_probe() - Probe function for PCIE platform driver
|
||||
* @pdev: PCIE device
|
||||
* @id: PCIE device ID table
|
||||
*
|
||||
* The probe function will be called when PCIE device provided
|
||||
* in the ID table is detected.
|
||||
*
|
||||
* Return: int
|
||||
*/
|
||||
static int pld_pcie_fw_sim_probe(struct pci_dev *pdev,
|
||||
const struct pci_device_id *id)
|
||||
{
|
||||
struct pld_context *pld_context;
|
||||
int ret = 0;
|
||||
|
||||
pld_context = pld_get_global_context();
|
||||
if (!pld_context) {
|
||||
ret = -ENODEV;
|
||||
goto out;
|
||||
}
|
||||
|
||||
ret = pld_add_dev(pld_context, &pdev->dev, NULL,
|
||||
PLD_BUS_TYPE_IPCI_FW_SIM);
|
||||
if (ret)
|
||||
goto out;
|
||||
|
||||
return pld_context->ops->probe(&pdev->dev,
|
||||
PLD_BUS_TYPE_IPCI_FW_SIM, NULL, NULL);
|
||||
|
||||
out:
|
||||
return ret;
|
||||
}
|
||||
|
||||
/**
|
||||
* pld_pcie_fw_sim_remove() - Remove function for PCIE device
|
||||
* @pdev: PCIE device
|
||||
*
|
||||
* The remove function will be called when PCIE device is disconnected
|
||||
*
|
||||
* Return: void
|
||||
*/
|
||||
static void pld_pcie_fw_sim_remove(struct pci_dev *pdev)
|
||||
{
|
||||
struct pld_context *pld_context;
|
||||
int errno;
|
||||
struct osif_psoc_sync *psoc_sync;
|
||||
|
||||
errno = osif_psoc_sync_trans_start_wait(&pdev->dev, &psoc_sync);
|
||||
if (errno)
|
||||
return;
|
||||
|
||||
osif_psoc_sync_unregister(&pdev->dev);
|
||||
osif_psoc_sync_wait_for_ops(psoc_sync);
|
||||
|
||||
pld_context = pld_get_global_context();
|
||||
|
||||
if (!pld_context)
|
||||
goto out;
|
||||
|
||||
pld_context->ops->remove(&pdev->dev, PLD_BUS_TYPE_IPCI_FW_SIM);
|
||||
|
||||
pld_del_dev(pld_context, &pdev->dev);
|
||||
|
||||
out:
|
||||
osif_psoc_sync_trans_stop(psoc_sync);
|
||||
osif_psoc_sync_destroy(psoc_sync);
|
||||
}
|
||||
|
||||
/**
|
||||
* pld_pcie_fw_sim_idle_restart_cb() - Perform idle restart
|
||||
* @pdev: PCIE device
|
||||
* @id: PCIE device ID
|
||||
*
|
||||
* This function will be called if there is an idle restart request
|
||||
*
|
||||
* Return: int
|
||||
*/
|
||||
static int pld_pcie_fw_sim_idle_restart_cb(struct pci_dev *pdev,
|
||||
const struct pci_device_id *id)
|
||||
{
|
||||
struct pld_context *pld_context;
|
||||
|
||||
pld_context = pld_get_global_context();
|
||||
if (pld_context->ops->idle_restart)
|
||||
return pld_context->ops->idle_restart(&pdev->dev,
|
||||
PLD_BUS_TYPE_IPCI_FW_SIM);
|
||||
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
/**
|
||||
* pld_pcie_fw_sim_idle_shutdown_cb() - Perform idle shutdown
|
||||
* @pdev: PCIE device
|
||||
* @id: PCIE device ID
|
||||
*
|
||||
* This function will be called if there is an idle shutdown request
|
||||
*
|
||||
* Return: int
|
||||
*/
|
||||
static int pld_pcie_fw_sim_idle_shutdown_cb(struct pci_dev *pdev)
|
||||
{
|
||||
struct pld_context *pld_context;
|
||||
|
||||
pld_context = pld_get_global_context();
|
||||
if (pld_context->ops->shutdown)
|
||||
return pld_context->ops->idle_shutdown(&pdev->dev,
|
||||
PLD_BUS_TYPE_IPCI_FW_SIM);
|
||||
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
/**
|
||||
* pld_pcie_fw_sim_reinit() - SSR re-initialize function for PCIE device
|
||||
* @pdev: PCIE device
|
||||
* @id: PCIE device ID
|
||||
*
|
||||
* During subsystem restart(SSR), this function will be called to
|
||||
* re-initialize pcie device.
|
||||
*
|
||||
* Return: int
|
||||
*/
|
||||
static int pld_pcie_fw_sim_reinit(struct pci_dev *pdev,
|
||||
const struct pci_device_id *id)
|
||||
{
|
||||
struct pld_context *pld_context;
|
||||
|
||||
pld_context = pld_get_global_context();
|
||||
if (pld_context->ops->reinit)
|
||||
return pld_context->ops->reinit(&pdev->dev,
|
||||
PLD_BUS_TYPE_IPCI_FW_SIM, NULL, NULL);
|
||||
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
/**
|
||||
* pld_pcie_fw_sim_shutdown() - SSR shutdown function for PCIE device
|
||||
* @pdev: PCIE device
|
||||
*
|
||||
* During SSR, this function will be called to shutdown PCIE device.
|
||||
*
|
||||
* Return: void
|
||||
*/
|
||||
static void pld_pcie_fw_sim_shutdown(struct pci_dev *pdev)
|
||||
{
|
||||
struct pld_context *pld_context;
|
||||
|
||||
pld_context = pld_get_global_context();
|
||||
if (pld_context->ops->shutdown)
|
||||
pld_context->ops->shutdown(&pdev->dev,
|
||||
PLD_BUS_TYPE_IPCI_FW_SIM);
|
||||
}
|
||||
|
||||
/**
|
||||
* pld_pcie_fw_sim_crash_shutdown() - Crash shutdown function for PCIE device
|
||||
* @pdev: PCIE device
|
||||
*
|
||||
* This function will be called when a crash is detected, it will shutdown
|
||||
* the PCIE device.
|
||||
*
|
||||
* Return: void
|
||||
*/
|
||||
static void pld_pcie_fw_sim_crash_shutdown(struct pci_dev *pdev)
|
||||
{
|
||||
struct pld_context *pld_context;
|
||||
|
||||
pld_context = pld_get_global_context();
|
||||
if (pld_context->ops->crash_shutdown)
|
||||
pld_context->ops->crash_shutdown(&pdev->dev,
|
||||
PLD_BUS_TYPE_IPCI_FW_SIM);
|
||||
}
|
||||
|
||||
/**
|
||||
* pld_pcie_fw_sim_notify_handler() - Modem state notification callback function
|
||||
* @pdev: PCIE device
|
||||
* @state: modem power state
|
||||
*
|
||||
* This function will be called when there's a modem power state change.
|
||||
*
|
||||
* Return: void
|
||||
*/
|
||||
static void pld_pcie_fw_sim_notify_handler(struct pci_dev *pdev, int state)
|
||||
{
|
||||
struct pld_context *pld_context;
|
||||
|
||||
pld_context = pld_get_global_context();
|
||||
if (pld_context->ops->modem_status)
|
||||
pld_context->ops->modem_status(&pdev->dev,
|
||||
PLD_BUS_TYPE_IPCI_FW_SIM, state);
|
||||
}
|
||||
|
||||
/**
|
||||
* pld_pcie_fw_sim_uevent() - update wlan driver status callback function
|
||||
* @pdev: PCIE device
|
||||
* @status driver uevent status
|
||||
*
|
||||
* This function will be called when platform driver wants to update wlan
|
||||
* driver's status.
|
||||
*
|
||||
* Return: void
|
||||
*/
|
||||
static void pld_pcie_fw_sim_uevent(struct pci_dev *pdev, uint32_t status)
|
||||
{
|
||||
struct pld_context *pld_context;
|
||||
struct pld_uevent_data data;
|
||||
|
||||
pld_context = pld_get_global_context();
|
||||
if (!pld_context)
|
||||
return;
|
||||
|
||||
switch (status) {
|
||||
case CNSS_RECOVERY:
|
||||
data.uevent = PLD_FW_RECOVERY_START;
|
||||
break;
|
||||
case CNSS_FW_DOWN:
|
||||
data.uevent = PLD_FW_DOWN;
|
||||
break;
|
||||
default:
|
||||
goto out;
|
||||
}
|
||||
|
||||
if (pld_context->ops->uevent)
|
||||
pld_context->ops->uevent(&pdev->dev, &data);
|
||||
|
||||
out:
|
||||
return;
|
||||
}
|
||||
|
||||
static struct pci_device_id pld_pcie_fw_sim_id_table[] = {
|
||||
{ 0x168c, 0x003c, PCI_ANY_ID, PCI_ANY_ID },
|
||||
{ 0x168c, 0x003e, PCI_ANY_ID, PCI_ANY_ID },
|
||||
{ 0x168c, 0x0041, PCI_ANY_ID, PCI_ANY_ID },
|
||||
{ 0x168c, 0xabcd, PCI_ANY_ID, PCI_ANY_ID },
|
||||
{ 0x168c, 0x7021, PCI_ANY_ID, PCI_ANY_ID },
|
||||
{ 0 }
|
||||
};
|
||||
|
||||
#ifdef MULTI_IF_NAME
|
||||
#define PLD_PCIE_FW_SIM_OPS_NAME "pld_ipcie_fw_sim_" MULTI_IF_NAME
|
||||
#else
|
||||
#define PLD_PCIE_FW_SIM_OPS_NAME "pld_ipcie_fw_sim"
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_PLD_PCIE_FW_SIM
|
||||
/**
|
||||
* pld_pcie_fw_sim_probe() - Probe function for PCIE platform driver
|
||||
* @pdev: PCIE device
|
||||
|
|
@ -275,6 +524,9 @@ static struct pci_device_id pld_pcie_fw_sim_id_table[] = {
|
|||
#define PLD_PCIE_FW_SIM_OPS_NAME "pld_pcie_fw_sim"
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_PLD_PCIE_FW_SIM) || defined(CONFIG_PLD_IPCIE_FW_SIM)
|
||||
struct cnss_wlan_driver pld_pcie_fw_sim_ops = {
|
||||
.name = PLD_PCIE_FW_SIM_OPS_NAME,
|
||||
.id_table = pld_pcie_fw_sim_id_table,
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2016-2019 The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2016-2020 The Linux Foundation. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for
|
||||
* any purpose with or without fee is hereby granted, provided that the
|
||||
|
|
@ -21,7 +21,7 @@
|
|||
|
||||
#include "pld_internal.h"
|
||||
|
||||
#ifndef CONFIG_PLD_PCIE_FW_SIM
|
||||
#if !defined(CONFIG_PLD_PCIE_FW_SIM) && !defined(CONFIG_PLD_IPCIE_FW_SIM)
|
||||
|
||||
static inline int pld_pcie_fw_sim_register_driver(void)
|
||||
{
|
||||
|
|
|
|||
Loading…
Reference in a new issue