Merge "cnss2: Add support for genoa pcie"

This commit is contained in:
Linux Build Service Account 2018-10-03 19:21:11 -07:00 committed by Gerrit - the friendly Code Review server
commit 6202b64fd2
4 changed files with 20 additions and 1 deletions

View file

@ -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);

View file

@ -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);

View file

@ -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[] = {

View file

@ -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);