mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-12 07:37:31 -04:00
Merge "cnss2: Kconfig: Add CONFIG_CNSS_WCN7850 flag"
This commit is contained in:
commit
b31e09bdd8
4 changed files with 59 additions and 9 deletions
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
Loading…
Reference in a new issue