Merge "cnss2: Kconfig: Add CONFIG_CNSS_WCN7850 flag"

This commit is contained in:
qctecmdr 2020-12-30 01:29:22 -08:00 • committed by Gerrit - the friendly Code Review server
commit b31e09bdd8
4 changed files with 59 additions and 9 deletions

View file

@ -87,3 +87,12 @@ config CNSS_QCA6490
CNSS QCA6490 chipset.
These changes are needed to support the new hardware architecture
for CNSS QCA6490 chipset.
config CNSS_WCN7850
bool "Enable CNSS WCN7850 chipset specific changes"
depends on CNSS2
help
This enables the changes from WLAN host driver that are specific to
CNSS WCN7850 chipset.
These changes are needed to support the new hardware architecture
for CNSS WCN7850 chipset.

View file

@ -17,6 +17,8 @@
#define QCA6390_DEVICE_ID 0x1101
#define QCA6490_VENDOR_ID 0x17CB
#define QCA6490_DEVICE_ID 0x1103
#define WCN7850_VENDOR_ID 0x17CB
#define WCN7850_DEVICE_ID 0x1107
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

@ -2190,6 +2190,7 @@ int cnss_register_ramdump(struct cnss_plat_data *plat_priv)
case QCA6290_DEVICE_ID:
case QCA6390_DEVICE_ID:
case QCA6490_DEVICE_ID:
case WCN7850_DEVICE_ID:
ret = cnss_register_ramdump_v2(plat_priv);
break;
default:
@ -2209,6 +2210,7 @@ void cnss_unregister_ramdump(struct cnss_plat_data *plat_priv)
case QCA6290_DEVICE_ID:
case QCA6390_DEVICE_ID:
case QCA6490_DEVICE_ID:
case WCN7850_DEVICE_ID:
cnss_unregister_ramdump_v2(plat_priv);
break;
default:
@ -2723,6 +2725,7 @@ static const struct platform_device_id cnss_platform_id_table[] = {
{ .name = "qca6290", .driver_data = QCA6290_DEVICE_ID, },
{ .name = "qca6390", .driver_data = QCA6390_DEVICE_ID, },
{ .name = "qca6490", .driver_data = QCA6490_DEVICE_ID, },
{ .name = "wcn7850", .driver_data = WCN7850_DEVICE_ID, },
{ },
};
@ -2739,6 +2742,9 @@ static const struct of_device_id cnss_of_match_table[] = {
{
.compatible = "qcom,cnss-qca6490",
.data = (void *)&cnss_platform_id_table[3]},
{
.compatible = "qcom,cnss-wcn7850",
.data = (void *)&cnss_platform_id_table[4]},
{ },
};
MODULE_DEVICE_TABLE(of, cnss_of_match_table);

View file

@ -40,6 +40,7 @@
#define QCA6390_PATH_PREFIX "qca6390/"
#define QCA6490_PATH_PREFIX "qca6490/"
#define WCN7850_PATH_PREFIX "wcn7850/"
#define DEFAULT_M3_FILE_NAME "m3.bin"
#define DEFAULT_FW_FILE_NAME "amss.bin"
#define FW_V2_FILE_NAME "amss20.bin"
@ -879,6 +880,7 @@ int cnss_pci_recover_link_down(struct cnss_pci_data *pci_priv)
switch (pci_priv->device_id) {
case QCA6390_DEVICE_ID:
case QCA6490_DEVICE_ID:
case WCN7850_DEVICE_ID:
break;
default:
return -EOPNOTSUPP;
@ -2329,6 +2331,7 @@ int cnss_pci_dev_powerup(struct cnss_pci_data *pci_priv)
case QCA6290_DEVICE_ID:
case QCA6390_DEVICE_ID:
case QCA6490_DEVICE_ID:
case WCN7850_DEVICE_ID:
ret = cnss_qca6290_powerup(pci_priv);
break;
default:
@ -2356,6 +2359,7 @@ int cnss_pci_dev_shutdown(struct cnss_pci_data *pci_priv)
case QCA6290_DEVICE_ID:
case QCA6390_DEVICE_ID:
case QCA6490_DEVICE_ID:
case WCN7850_DEVICE_ID:
ret = cnss_qca6290_shutdown(pci_priv);
break;
default:
@ -2383,6 +2387,7 @@ int cnss_pci_dev_crash_shutdown(struct cnss_pci_data *pci_priv)
case QCA6290_DEVICE_ID:
case QCA6390_DEVICE_ID:
case QCA6490_DEVICE_ID:
case WCN7850_DEVICE_ID:
cnss_qca6290_crash_shutdown(pci_priv);
break;
default:
@ -2410,6 +2415,7 @@ int cnss_pci_dev_ramdump(struct cnss_pci_data *pci_priv)
case QCA6290_DEVICE_ID:
case QCA6390_DEVICE_ID:
case QCA6490_DEVICE_ID:
case WCN7850_DEVICE_ID:
ret = cnss_qca6290_ramdump(pci_priv);
break;
default:
@ -3308,9 +3314,14 @@ int cnss_pci_force_wake_request_sync(struct device *dev, int timeout_us)
if (!pci_priv)
return -ENODEV;
if (pci_priv->device_id != QCA6390_DEVICE_ID &&
pci_priv->device_id != QCA6490_DEVICE_ID)
switch (pci_priv->device_id) {
case QCA6390_DEVICE_ID:
case QCA6490_DEVICE_ID:
case WCN7850_DEVICE_ID:
break;
default:
return 0;
}
mhi_ctrl = pci_priv->mhi_ctrl;
if (!mhi_ctrl)
@ -3344,9 +3355,14 @@ int cnss_pci_force_wake_request(struct device *dev)
if (!pci_priv)
return -ENODEV;
if (pci_priv->device_id != QCA6390_DEVICE_ID &&
pci_priv->device_id != QCA6490_DEVICE_ID)
switch (pci_priv->device_id) {
case QCA6390_DEVICE_ID:
case QCA6490_DEVICE_ID:
case WCN7850_DEVICE_ID:
break;
default:
return 0;
}
mhi_ctrl = pci_priv->mhi_ctrl;
if (!mhi_ctrl)
@ -3374,9 +3390,14 @@ int cnss_pci_is_device_awake(struct device *dev)
if (!pci_priv)
return -ENODEV;
if (pci_priv->device_id != QCA6390_DEVICE_ID &&
pci_priv->device_id != QCA6490_DEVICE_ID)
return true;
switch (pci_priv->device_id) {
case QCA6390_DEVICE_ID:
case QCA6490_DEVICE_ID:
case WCN7850_DEVICE_ID:
break;
default:
return 0;
}
mhi_ctrl = pci_priv->mhi_ctrl;
if (!mhi_ctrl)
@ -3396,9 +3417,14 @@ int cnss_pci_force_wake_release(struct device *dev)
if (!pci_priv)
return -ENODEV;
if (pci_priv->device_id != QCA6390_DEVICE_ID &&
pci_priv->device_id != QCA6490_DEVICE_ID)
switch (pci_priv->device_id) {
case QCA6390_DEVICE_ID:
case QCA6490_DEVICE_ID:
case WCN7850_DEVICE_ID:
break;
default:
return 0;
}
mhi_ctrl = pci_priv->mhi_ctrl;
if (!mhi_ctrl)
@ -4620,6 +4646,10 @@ void cnss_pci_add_fw_prefix_name(struct cnss_pci_data *pci_priv,
scnprintf(prefix_name, MAX_FIRMWARE_NAME_LEN,
QCA6490_PATH_PREFIX "%s", name);
break;
case WCN7850_DEVICE_ID:
scnprintf(prefix_name, MAX_FIRMWARE_NAME_LEN,
WCN7850_PATH_PREFIX "%s", name);
break;
default:
scnprintf(prefix_name, MAX_FIRMWARE_NAME_LEN, "%s", name);
break;
@ -5082,6 +5112,7 @@ static int cnss_pci_probe(struct pci_dev *pci_dev,
case QCA6290_DEVICE_ID:
case QCA6390_DEVICE_ID:
case QCA6490_DEVICE_ID:
case WCN7850_DEVICE_ID:
cnss_pci_set_wlaon_pwr_ctrl(pci_priv, false, false, false);
timer_setup(&pci_priv->dev_rddm_timer,
cnss_dev_rddm_timeout_hdlr, 0);
@ -5142,6 +5173,7 @@ static void cnss_pci_remove(struct pci_dev *pci_dev)
case QCA6290_DEVICE_ID:
case QCA6390_DEVICE_ID:
case QCA6490_DEVICE_ID:
case WCN7850_DEVICE_ID:
complete_all(&pci_priv->wake_event);
del_timer(&pci_priv->dev_rddm_timer);
break;
@ -5169,6 +5201,7 @@ static const struct pci_device_id cnss_pci_id_table[] = {
{ QCA6290_VENDOR_ID, QCA6290_DEVICE_ID, PCI_ANY_ID, PCI_ANY_ID },
{ QCA6390_VENDOR_ID, QCA6390_DEVICE_ID, PCI_ANY_ID, PCI_ANY_ID },
{ QCA6490_VENDOR_ID, QCA6490_DEVICE_ID, PCI_ANY_ID, PCI_ANY_ID },
{ WCN7850_VENDOR_ID, WCN7850_DEVICE_ID, PCI_ANY_ID, PCI_ANY_ID },
{ 0 }
};
MODULE_DEVICE_TABLE(pci, cnss_pci_id_table);