Loading Documentation/devicetree/bindings/cnss/cnss-wlan.txt +1 −0 Original line number Diff line number Diff line Loading @@ -13,6 +13,7 @@ provides the reserved RAM dump memory location and size. Required properties: - compatible: "qcom,cnss" for QCA6174 device "qcom,cnss-qca6290" for QCA6290 device "qcom,cnss-qca6390" for QCA6390 device - wlan-en-gpio: WLAN_EN GPIO signal specified by the chip specifications - vdd-wlan-supply: phandle to the regulator device tree node - pinctrl-names: Names corresponding to the numbered pinctrl states Loading drivers/net/wireless/cnss2/bus.h +3 −0 Original line number Diff line number Diff line Loading @@ -24,6 +24,9 @@ #define QCA6290_DEVICE_ID 0x1100 #define QCA6290_EMULATION_VENDOR_ID 0x168C #define QCA6290_EMULATION_DEVICE_ID 0xABCD #define QCA6390_VENDOR_ID 0x17CB #define QCA6390_EMULATION_DEVICE_ID 0x0108 #define QCA6390_DEVICE_ID 0x1101 enum cnss_dev_bus_type cnss_get_dev_bus_type(struct device *dev); enum cnss_dev_bus_type cnss_get_bus_type(unsigned long device_id); Loading drivers/net/wireless/cnss2/main.c +10 −0 Original line number Diff line number Diff line Loading @@ -1435,6 +1435,8 @@ int cnss_register_ramdump(struct cnss_plat_data *plat_priv) break; case QCA6290_EMULATION_DEVICE_ID: case QCA6290_DEVICE_ID: case QCA6390_EMULATION_DEVICE_ID: case QCA6390_DEVICE_ID: ret = cnss_register_ramdump_v2(plat_priv); break; default: Loading @@ -1453,6 +1455,8 @@ void cnss_unregister_ramdump(struct cnss_plat_data *plat_priv) break; case QCA6290_EMULATION_DEVICE_ID: case QCA6290_DEVICE_ID: case QCA6390_EMULATION_DEVICE_ID: case QCA6390_DEVICE_ID: cnss_unregister_ramdump_v2(plat_priv); break; default: Loading Loading @@ -1523,6 +1527,8 @@ static ssize_t cnss_fs_ready_store(struct device *dev, switch (plat_priv->device_id) { case QCA6290_EMULATION_DEVICE_ID: case QCA6290_DEVICE_ID: case QCA6390_EMULATION_DEVICE_ID: case QCA6390_DEVICE_ID: break; default: cnss_pr_err("Not supported for device ID 0x%lx\n", Loading Loading @@ -1585,6 +1591,7 @@ static void cnss_event_work_deinit(struct cnss_plat_data *plat_priv) static const struct platform_device_id cnss_platform_id_table[] = { { .name = "qca6174", .driver_data = QCA6174_DEVICE_ID, }, { .name = "qca6290", .driver_data = QCA6290_DEVICE_ID, }, { .name = "qca6390", .driver_data = QCA6390_DEVICE_ID, }, }; static const struct of_device_id cnss_of_match_table[] = { Loading @@ -1594,6 +1601,9 @@ static const struct of_device_id cnss_of_match_table[] = { { .compatible = "qcom,cnss-qca6290", .data = (void *)&cnss_platform_id_table[1]}, { .compatible = "qcom,cnss-qca6390", .data = (void *)&cnss_platform_id_table[2]}, { }, }; MODULE_DEVICE_TABLE(of, cnss_of_match_table); Loading drivers/net/wireless/cnss2/main.h +1 −0 Original line number Diff line number Diff line Loading @@ -220,6 +220,7 @@ struct cnss_plat_data { u32 diag_reg_read_len; u8 *diag_reg_read_buf; bool cal_done; char firmware_name[13]; }; struct cnss_plat_data *cnss_get_plat_priv(struct platform_device *plat_dev); Loading drivers/net/wireless/cnss2/pci.c +20 −0 Original line number Diff line number Diff line Loading @@ -44,6 +44,7 @@ #define MAX_M3_FILE_NAME_LENGTH 13 #define DEFAULT_M3_FILE_NAME "m3.bin" #define DEFAULT_FW_FILE_NAME "amss.bin" #define WAKE_MSI_NAME "WAKE" Loading Loading @@ -569,6 +570,8 @@ int cnss_pci_dev_powerup(struct cnss_pci_data *pci_priv) break; case QCA6290_EMULATION_DEVICE_ID: case QCA6290_DEVICE_ID: case QCA6390_EMULATION_DEVICE_ID: case QCA6390_DEVICE_ID: ret = cnss_qca6290_powerup(pci_priv); break; default: Loading @@ -595,6 +598,8 @@ int cnss_pci_dev_shutdown(struct cnss_pci_data *pci_priv) break; case QCA6290_EMULATION_DEVICE_ID: case QCA6290_DEVICE_ID: case QCA6390_EMULATION_DEVICE_ID: case QCA6390_DEVICE_ID: ret = cnss_qca6290_shutdown(pci_priv); break; default: Loading @@ -621,6 +626,8 @@ int cnss_pci_dev_crash_shutdown(struct cnss_pci_data *pci_priv) break; case QCA6290_EMULATION_DEVICE_ID: case QCA6290_DEVICE_ID: case QCA6390_EMULATION_DEVICE_ID: case QCA6390_DEVICE_ID: cnss_qca6290_crash_shutdown(pci_priv); break; default: Loading @@ -647,6 +654,8 @@ int cnss_pci_dev_ramdump(struct cnss_pci_data *pci_priv) break; case QCA6290_EMULATION_DEVICE_ID: case QCA6290_DEVICE_ID: case QCA6390_EMULATION_DEVICE_ID: case QCA6390_DEVICE_ID: ret = cnss_qca6290_ramdump(pci_priv); break; default: Loading Loading @@ -1838,6 +1847,8 @@ static int cnss_pci_register_mhi(struct cnss_pci_data *pci_priv) mhi_ctrl->bus = pci_dev->bus->number; mhi_ctrl->slot = PCI_SLOT(pci_dev->devfn); mhi_ctrl->fw_image = plat_priv->firmware_name; mhi_ctrl->regs = pci_priv->bar; cnss_pr_dbg("BAR starts at %pa\n", &pci_resource_start(pci_priv->pci_dev, PCI_BAR_NUM)); Loading Loading @@ -2109,6 +2120,8 @@ static int cnss_pci_probe(struct pci_dev *pci_dev, cnss_set_pci_priv(pci_dev, pci_priv); plat_priv->device_id = pci_dev->device; plat_priv->bus_priv = pci_priv; snprintf(plat_priv->firmware_name, sizeof(plat_priv->firmware_name), DEFAULT_FW_FILE_NAME); ret = cnss_register_subsys(plat_priv); if (ret) Loading Loading @@ -2163,6 +2176,8 @@ static int cnss_pci_probe(struct pci_dev *pci_dev, break; case QCA6290_EMULATION_DEVICE_ID: case QCA6290_DEVICE_ID: case QCA6390_EMULATION_DEVICE_ID: case QCA6390_DEVICE_ID: ret = cnss_pci_enable_msi(pci_priv); if (ret) goto disable_bus; Loading Loading @@ -2215,6 +2230,8 @@ static void cnss_pci_remove(struct pci_dev *pci_dev) switch (pci_dev->device) { case QCA6290_EMULATION_DEVICE_ID: case QCA6290_DEVICE_ID: case QCA6390_EMULATION_DEVICE_ID: case QCA6390_DEVICE_ID: cnss_pci_unregister_mhi(pci_priv); cnss_pci_disable_msi(pci_priv); break; Loading @@ -2238,6 +2255,9 @@ static const struct pci_device_id cnss_pci_id_table[] = { { QCA6290_EMULATION_VENDOR_ID, QCA6290_EMULATION_DEVICE_ID, PCI_ANY_ID, PCI_ANY_ID }, { QCA6290_VENDOR_ID, QCA6290_DEVICE_ID, PCI_ANY_ID, PCI_ANY_ID }, { QCA6390_VENDOR_ID, QCA6390_EMULATION_DEVICE_ID, PCI_ANY_ID, PCI_ANY_ID }, { QCA6390_VENDOR_ID, QCA6390_DEVICE_ID, PCI_ANY_ID, PCI_ANY_ID }, { 0 } }; MODULE_DEVICE_TABLE(pci, cnss_pci_id_table); Loading Loading
Documentation/devicetree/bindings/cnss/cnss-wlan.txt +1 −0 Original line number Diff line number Diff line Loading @@ -13,6 +13,7 @@ provides the reserved RAM dump memory location and size. Required properties: - compatible: "qcom,cnss" for QCA6174 device "qcom,cnss-qca6290" for QCA6290 device "qcom,cnss-qca6390" for QCA6390 device - wlan-en-gpio: WLAN_EN GPIO signal specified by the chip specifications - vdd-wlan-supply: phandle to the regulator device tree node - pinctrl-names: Names corresponding to the numbered pinctrl states Loading
drivers/net/wireless/cnss2/bus.h +3 −0 Original line number Diff line number Diff line Loading @@ -24,6 +24,9 @@ #define QCA6290_DEVICE_ID 0x1100 #define QCA6290_EMULATION_VENDOR_ID 0x168C #define QCA6290_EMULATION_DEVICE_ID 0xABCD #define QCA6390_VENDOR_ID 0x17CB #define QCA6390_EMULATION_DEVICE_ID 0x0108 #define QCA6390_DEVICE_ID 0x1101 enum cnss_dev_bus_type cnss_get_dev_bus_type(struct device *dev); enum cnss_dev_bus_type cnss_get_bus_type(unsigned long device_id); Loading
drivers/net/wireless/cnss2/main.c +10 −0 Original line number Diff line number Diff line Loading @@ -1435,6 +1435,8 @@ int cnss_register_ramdump(struct cnss_plat_data *plat_priv) break; case QCA6290_EMULATION_DEVICE_ID: case QCA6290_DEVICE_ID: case QCA6390_EMULATION_DEVICE_ID: case QCA6390_DEVICE_ID: ret = cnss_register_ramdump_v2(plat_priv); break; default: Loading @@ -1453,6 +1455,8 @@ void cnss_unregister_ramdump(struct cnss_plat_data *plat_priv) break; case QCA6290_EMULATION_DEVICE_ID: case QCA6290_DEVICE_ID: case QCA6390_EMULATION_DEVICE_ID: case QCA6390_DEVICE_ID: cnss_unregister_ramdump_v2(plat_priv); break; default: Loading Loading @@ -1523,6 +1527,8 @@ static ssize_t cnss_fs_ready_store(struct device *dev, switch (plat_priv->device_id) { case QCA6290_EMULATION_DEVICE_ID: case QCA6290_DEVICE_ID: case QCA6390_EMULATION_DEVICE_ID: case QCA6390_DEVICE_ID: break; default: cnss_pr_err("Not supported for device ID 0x%lx\n", Loading Loading @@ -1585,6 +1591,7 @@ static void cnss_event_work_deinit(struct cnss_plat_data *plat_priv) static const struct platform_device_id cnss_platform_id_table[] = { { .name = "qca6174", .driver_data = QCA6174_DEVICE_ID, }, { .name = "qca6290", .driver_data = QCA6290_DEVICE_ID, }, { .name = "qca6390", .driver_data = QCA6390_DEVICE_ID, }, }; static const struct of_device_id cnss_of_match_table[] = { Loading @@ -1594,6 +1601,9 @@ static const struct of_device_id cnss_of_match_table[] = { { .compatible = "qcom,cnss-qca6290", .data = (void *)&cnss_platform_id_table[1]}, { .compatible = "qcom,cnss-qca6390", .data = (void *)&cnss_platform_id_table[2]}, { }, }; MODULE_DEVICE_TABLE(of, cnss_of_match_table); Loading
drivers/net/wireless/cnss2/main.h +1 −0 Original line number Diff line number Diff line Loading @@ -220,6 +220,7 @@ struct cnss_plat_data { u32 diag_reg_read_len; u8 *diag_reg_read_buf; bool cal_done; char firmware_name[13]; }; struct cnss_plat_data *cnss_get_plat_priv(struct platform_device *plat_dev); Loading
drivers/net/wireless/cnss2/pci.c +20 −0 Original line number Diff line number Diff line Loading @@ -44,6 +44,7 @@ #define MAX_M3_FILE_NAME_LENGTH 13 #define DEFAULT_M3_FILE_NAME "m3.bin" #define DEFAULT_FW_FILE_NAME "amss.bin" #define WAKE_MSI_NAME "WAKE" Loading Loading @@ -569,6 +570,8 @@ int cnss_pci_dev_powerup(struct cnss_pci_data *pci_priv) break; case QCA6290_EMULATION_DEVICE_ID: case QCA6290_DEVICE_ID: case QCA6390_EMULATION_DEVICE_ID: case QCA6390_DEVICE_ID: ret = cnss_qca6290_powerup(pci_priv); break; default: Loading @@ -595,6 +598,8 @@ int cnss_pci_dev_shutdown(struct cnss_pci_data *pci_priv) break; case QCA6290_EMULATION_DEVICE_ID: case QCA6290_DEVICE_ID: case QCA6390_EMULATION_DEVICE_ID: case QCA6390_DEVICE_ID: ret = cnss_qca6290_shutdown(pci_priv); break; default: Loading @@ -621,6 +626,8 @@ int cnss_pci_dev_crash_shutdown(struct cnss_pci_data *pci_priv) break; case QCA6290_EMULATION_DEVICE_ID: case QCA6290_DEVICE_ID: case QCA6390_EMULATION_DEVICE_ID: case QCA6390_DEVICE_ID: cnss_qca6290_crash_shutdown(pci_priv); break; default: Loading @@ -647,6 +654,8 @@ int cnss_pci_dev_ramdump(struct cnss_pci_data *pci_priv) break; case QCA6290_EMULATION_DEVICE_ID: case QCA6290_DEVICE_ID: case QCA6390_EMULATION_DEVICE_ID: case QCA6390_DEVICE_ID: ret = cnss_qca6290_ramdump(pci_priv); break; default: Loading Loading @@ -1838,6 +1847,8 @@ static int cnss_pci_register_mhi(struct cnss_pci_data *pci_priv) mhi_ctrl->bus = pci_dev->bus->number; mhi_ctrl->slot = PCI_SLOT(pci_dev->devfn); mhi_ctrl->fw_image = plat_priv->firmware_name; mhi_ctrl->regs = pci_priv->bar; cnss_pr_dbg("BAR starts at %pa\n", &pci_resource_start(pci_priv->pci_dev, PCI_BAR_NUM)); Loading Loading @@ -2109,6 +2120,8 @@ static int cnss_pci_probe(struct pci_dev *pci_dev, cnss_set_pci_priv(pci_dev, pci_priv); plat_priv->device_id = pci_dev->device; plat_priv->bus_priv = pci_priv; snprintf(plat_priv->firmware_name, sizeof(plat_priv->firmware_name), DEFAULT_FW_FILE_NAME); ret = cnss_register_subsys(plat_priv); if (ret) Loading Loading @@ -2163,6 +2176,8 @@ static int cnss_pci_probe(struct pci_dev *pci_dev, break; case QCA6290_EMULATION_DEVICE_ID: case QCA6290_DEVICE_ID: case QCA6390_EMULATION_DEVICE_ID: case QCA6390_DEVICE_ID: ret = cnss_pci_enable_msi(pci_priv); if (ret) goto disable_bus; Loading Loading @@ -2215,6 +2230,8 @@ static void cnss_pci_remove(struct pci_dev *pci_dev) switch (pci_dev->device) { case QCA6290_EMULATION_DEVICE_ID: case QCA6290_DEVICE_ID: case QCA6390_EMULATION_DEVICE_ID: case QCA6390_DEVICE_ID: cnss_pci_unregister_mhi(pci_priv); cnss_pci_disable_msi(pci_priv); break; Loading @@ -2238,6 +2255,9 @@ static const struct pci_device_id cnss_pci_id_table[] = { { QCA6290_EMULATION_VENDOR_ID, QCA6290_EMULATION_DEVICE_ID, PCI_ANY_ID, PCI_ANY_ID }, { QCA6290_VENDOR_ID, QCA6290_DEVICE_ID, PCI_ANY_ID, PCI_ANY_ID }, { QCA6390_VENDOR_ID, QCA6390_EMULATION_DEVICE_ID, PCI_ANY_ID, PCI_ANY_ID }, { QCA6390_VENDOR_ID, QCA6390_DEVICE_ID, PCI_ANY_ID, PCI_ANY_ID }, { 0 } }; MODULE_DEVICE_TABLE(pci, cnss_pci_id_table); Loading