Merge "cnss2: Add support for genoa pcie"
This commit is contained in:
commit
6202b64fd2
4 changed files with 20 additions and 1 deletions
|
@ -34,6 +34,7 @@ enum cnss_dev_bus_type cnss_get_bus_type(unsigned long device_id)
|
|||
case QCA6174_DEVICE_ID:
|
||||
case QCA6290_EMULATION_DEVICE_ID:
|
||||
case QCA6290_DEVICE_ID:
|
||||
case QCN7605_DEVICE_ID:
|
||||
return CNSS_BUS_PCI;
|
||||
default:
|
||||
cnss_pr_err("Unknown device_id: 0x%lx\n", device_id);
|
||||
|
|
|
@ -24,6 +24,8 @@
|
|||
#define QCA6290_DEVICE_ID 0x1100
|
||||
#define QCA6290_EMULATION_VENDOR_ID 0x168C
|
||||
#define QCA6290_EMULATION_DEVICE_ID 0xABCD
|
||||
#define QCN7605_VENDOR_ID 0x17CB
|
||||
#define QCN7605_DEVICE_ID 0x1102
|
||||
|
||||
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);
|
||||
|
|
|
@ -461,6 +461,8 @@ static int cnss_fw_mem_ready_hdlr(struct cnss_plat_data *plat_priv)
|
|||
if (ret)
|
||||
goto out;
|
||||
|
||||
if (plat_priv->device_id == QCN7605_DEVICE_ID)
|
||||
goto skip_m3_dnld;
|
||||
ret = cnss_bus_load_m3(plat_priv);
|
||||
if (ret)
|
||||
goto out;
|
||||
|
@ -468,7 +470,7 @@ static int cnss_fw_mem_ready_hdlr(struct cnss_plat_data *plat_priv)
|
|||
ret = cnss_wlfw_m3_dnld_send_sync(plat_priv);
|
||||
if (ret)
|
||||
goto out;
|
||||
|
||||
skip_m3_dnld:
|
||||
return 0;
|
||||
out:
|
||||
return ret;
|
||||
|
@ -1103,7 +1105,10 @@ static int cnss_cold_boot_cal_done_hdlr(struct cnss_plat_data *plat_priv)
|
|||
{
|
||||
plat_priv->cal_done = true;
|
||||
cnss_wlfw_wlan_mode_send_sync(plat_priv, QMI_WLFW_OFF_V01);
|
||||
if (plat_priv->device_id == QCN7605_DEVICE_ID)
|
||||
goto skip_shutdown;
|
||||
cnss_bus_dev_shutdown(plat_priv);
|
||||
skip_shutdown:
|
||||
clear_bit(CNSS_COLD_BOOT_CAL, &plat_priv->driver_state);
|
||||
|
||||
return 0;
|
||||
|
@ -1234,6 +1239,9 @@ int cnss_register_subsys(struct cnss_plat_data *plat_priv)
|
|||
case QCA6290_DEVICE_ID:
|
||||
subsys_info->subsys_desc.name = "QCA6290";
|
||||
break;
|
||||
case QCN7605_DEVICE_ID:
|
||||
subsys_info->subsys_desc.name = "QCN7605";
|
||||
break;
|
||||
default:
|
||||
cnss_pr_err("Unknown device ID: 0x%lx\n", plat_priv->device_id);
|
||||
ret = -ENODEV;
|
||||
|
@ -1449,6 +1457,7 @@ int cnss_register_ramdump(struct cnss_plat_data *plat_priv)
|
|||
break;
|
||||
case QCA6290_EMULATION_DEVICE_ID:
|
||||
case QCA6290_DEVICE_ID:
|
||||
case QCN7605_DEVICE_ID:
|
||||
ret = cnss_register_ramdump_v2(plat_priv);
|
||||
break;
|
||||
default:
|
||||
|
@ -1537,6 +1546,7 @@ 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 QCN7605_DEVICE_ID:
|
||||
break;
|
||||
default:
|
||||
cnss_pr_err("Not supported for device ID 0x%lx\n",
|
||||
|
@ -1599,6 +1609,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 = "qcn7605", .driver_data = QCN7605_DEVICE_ID, },
|
||||
};
|
||||
|
||||
static const struct of_device_id cnss_of_match_table[] = {
|
||||
|
|
|
@ -619,6 +619,7 @@ int cnss_pci_dev_powerup(struct cnss_pci_data *pci_priv)
|
|||
break;
|
||||
case QCA6290_EMULATION_DEVICE_ID:
|
||||
case QCA6290_DEVICE_ID:
|
||||
case QCN7605_DEVICE_ID:
|
||||
ret = cnss_qca6290_powerup(pci_priv);
|
||||
break;
|
||||
default:
|
||||
|
@ -645,6 +646,7 @@ int cnss_pci_dev_shutdown(struct cnss_pci_data *pci_priv)
|
|||
break;
|
||||
case QCA6290_EMULATION_DEVICE_ID:
|
||||
case QCA6290_DEVICE_ID:
|
||||
case QCN7605_DEVICE_ID:
|
||||
ret = cnss_qca6290_shutdown(pci_priv);
|
||||
break;
|
||||
default:
|
||||
|
@ -2162,6 +2164,7 @@ static int cnss_pci_probe(struct pci_dev *pci_dev,
|
|||
switch (pci_dev->device) {
|
||||
case QCA6290_EMULATION_DEVICE_ID:
|
||||
case QCA6290_DEVICE_ID:
|
||||
case QCN7605_DEVICE_ID:
|
||||
if (!mhi_is_device_ready(&plat_priv->plat_dev->dev,
|
||||
MHI_NODE_NAME)) {
|
||||
cnss_pr_err("MHI driver is not ready, defer PCI probe!\n");
|
||||
|
@ -2249,6 +2252,7 @@ static int cnss_pci_probe(struct pci_dev *pci_dev,
|
|||
break;
|
||||
case QCA6290_EMULATION_DEVICE_ID:
|
||||
case QCA6290_DEVICE_ID:
|
||||
case QCN7605_DEVICE_ID:
|
||||
ret = cnss_pci_enable_msi(pci_priv);
|
||||
if (ret)
|
||||
goto disable_bus;
|
||||
|
@ -2324,6 +2328,7 @@ 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 },
|
||||
{QCN7605_VENDOR_ID, QCN7605_DEVICE_ID, PCI_ANY_ID, PCI_ANY_ID},
|
||||
{ 0 }
|
||||
};
|
||||
MODULE_DEVICE_TABLE(pci, cnss_pci_id_table);
|
||||
|
|
Loading…
Add table
Reference in a new issue