Loading drivers/net/wireless/cnss2/debug.c +5 −2 Original line number Diff line number Diff line Loading @@ -80,8 +80,11 @@ static int cnss_stats_show_state(struct seq_file *s, case CNSS_COLD_BOOT_CAL_DONE: seq_puts(s, "COLD_BOOT_CAL_DONE"); continue; case CNSS_DRIVER_LOAD_UNLOAD: seq_puts(s, "DRIVER_LOAD_UNLOAD"); case CNSS_DRIVER_LOADING: seq_puts(s, "DRIVER_LOADING"); continue; case CNSS_DRIVER_UNLOADING: seq_puts(s, "DRIVER_UNLOADING"); continue; case CNSS_DRIVER_PROBED: seq_puts(s, "DRIVER_PROBED"); Loading drivers/net/wireless/cnss2/main.c +25 −25 Original line number Diff line number Diff line Loading @@ -471,6 +471,12 @@ static int cnss_driver_call_probe(struct cnss_plat_data *plat_priv) int ret; struct cnss_pci_data *pci_priv = plat_priv->bus_priv; if (!plat_priv->driver_ops) { cnss_pr_err("driver_ops is NULL!"); ret = -EINVAL; goto out; } if (test_bit(CNSS_DRIVER_RECOVERY, &plat_priv->driver_state)) { ret = plat_priv->driver_ops->reinit(pci_priv->pci_dev, pci_priv->pci_device_id); Loading @@ -488,7 +494,7 @@ static int cnss_driver_call_probe(struct cnss_plat_data *plat_priv) ret); goto out; } clear_bit(CNSS_DRIVER_LOAD_UNLOAD, &plat_priv->driver_state); clear_bit(CNSS_DRIVER_LOADING, &plat_priv->driver_state); set_bit(CNSS_DRIVER_PROBED, &plat_priv->driver_state); } Loading @@ -514,7 +520,7 @@ static int cnss_fw_ready_hdlr(struct cnss_plat_data *plat_priv) if (!pci_priv) return -ENODEV; if (test_bit(CNSS_DRIVER_LOAD_UNLOAD, &plat_priv->driver_state) || if (test_bit(CNSS_DRIVER_LOADING, &plat_priv->driver_state) || test_bit(CNSS_DRIVER_RECOVERY, &plat_priv->driver_state)) ret = cnss_driver_call_probe(plat_priv); else if (enable_waltest) Loading Loading @@ -920,7 +926,7 @@ static int cnss_qca6174_shutdown(struct cnss_plat_data *plat_priv) if (!plat_priv->driver_ops) return -EINVAL; if (test_bit(CNSS_DRIVER_LOAD_UNLOAD, &plat_priv->driver_state)) { if (test_bit(CNSS_DRIVER_UNLOADING, &plat_priv->driver_state)) { cnss_request_bus_bandwidth(CNSS_BUS_WIDTH_NONE); plat_priv->driver_ops->remove(pci_priv->pci_dev); cnss_pci_set_monitor_wake_intr(pci_priv, false); Loading @@ -935,8 +941,8 @@ static int cnss_qca6174_shutdown(struct cnss_plat_data *plat_priv) cnss_power_off_device(plat_priv); if (test_bit(CNSS_DRIVER_LOAD_UNLOAD, &plat_priv->driver_state)) { clear_bit(CNSS_DRIVER_LOAD_UNLOAD, &plat_priv->driver_state); if (test_bit(CNSS_DRIVER_UNLOADING, &plat_priv->driver_state)) { clear_bit(CNSS_DRIVER_UNLOADING, &plat_priv->driver_state); clear_bit(CNSS_DRIVER_PROBED, &plat_priv->driver_state); } Loading Loading @@ -964,11 +970,6 @@ static int cnss_qca6290_powerup(struct cnss_plat_data *plat_priv) return -ENODEV; } if (!plat_priv->driver_ops) { cnss_pr_err("driver_ops is NULL!\n"); return -EINVAL; } ret = cnss_power_on_device(plat_priv); if (ret) { cnss_pr_err("Failed to power on device, err = %d\n", ret); Loading Loading @@ -1024,7 +1025,7 @@ static int cnss_qca6290_shutdown(struct cnss_plat_data *plat_priv) if (!plat_priv->driver_ops) return -EINVAL; if (test_bit(CNSS_DRIVER_LOAD_UNLOAD, &plat_priv->driver_state)) { if (test_bit(CNSS_DRIVER_UNLOADING, &plat_priv->driver_state)) { cnss_request_bus_bandwidth(CNSS_BUS_WIDTH_NONE); plat_priv->driver_ops->remove(pci_priv->pci_dev); cnss_pci_set_monitor_wake_intr(pci_priv, false); Loading @@ -1041,8 +1042,8 @@ static int cnss_qca6290_shutdown(struct cnss_plat_data *plat_priv) cnss_power_off_device(plat_priv); if (test_bit(CNSS_DRIVER_LOAD_UNLOAD, &plat_priv->driver_state)) { clear_bit(CNSS_DRIVER_LOAD_UNLOAD, &plat_priv->driver_state); if (test_bit(CNSS_DRIVER_UNLOADING, &plat_priv->driver_state)) { clear_bit(CNSS_DRIVER_UNLOADING, &plat_priv->driver_state); clear_bit(CNSS_DRIVER_PROBED, &plat_priv->driver_state); } Loading @@ -1058,7 +1059,8 @@ static void cnss_qca6290_crash_shutdown(struct cnss_plat_data *plat_priv) plat_priv->driver_state); if (test_bit(CNSS_DRIVER_RECOVERY, &plat_priv->driver_state) || test_bit(CNSS_DRIVER_LOAD_UNLOAD, &plat_priv->driver_state)) test_bit(CNSS_DRIVER_LOADING, &plat_priv->driver_state) || test_bit(CNSS_DRIVER_UNLOADING, &plat_priv->driver_state)) return; ret = cnss_pci_set_mhi_state(pci_priv, CNSS_MHI_RDDM_KERNEL_PANIC); Loading Loading @@ -1273,16 +1275,13 @@ static int cnss_do_recovery(struct cnss_plat_data *plat_priv, plat_priv->recovery_count++; if (!plat_priv->driver_ops) { cnss_pr_err("Host driver has not registered yet, ignore recovery!\n"); return 0; } if (plat_priv->device_id == QCA6174_DEVICE_ID) goto self_recovery; if (plat_priv->driver_ops) plat_priv->driver_ops->update_status(pci_priv->pci_dev, CNSS_RECOVERY); if (reason == CNSS_REASON_LINK_DOWN) { cnss_pci_set_mhi_state(plat_priv->bus_priv, CNSS_MHI_NOTIFY_LINK_ERROR); Loading Loading @@ -1332,7 +1331,8 @@ static int cnss_driver_recovery_hdlr(struct cnss_plat_data *plat_priv, goto out; } if (test_bit(CNSS_DRIVER_LOAD_UNLOAD, &plat_priv->driver_state)) { if (test_bit(CNSS_DRIVER_LOADING, &plat_priv->driver_state) || test_bit(CNSS_DRIVER_UNLOADING, &plat_priv->driver_state)) { cnss_pr_err("Driver load or unload is in progress!\n"); ret = -EINVAL; goto out; Loading Loading @@ -1394,13 +1394,13 @@ static int cnss_register_driver_hdlr(struct cnss_plat_data *plat_priv, int ret = 0; struct cnss_subsys_info *subsys_info; set_bit(CNSS_DRIVER_LOAD_UNLOAD, &plat_priv->driver_state); set_bit(CNSS_DRIVER_LOADING, &plat_priv->driver_state); plat_priv->driver_ops = data; subsys_info = &plat_priv->subsys_info; ret = cnss_powerup(&subsys_info->subsys_desc); if (ret) { clear_bit(CNSS_DRIVER_LOAD_UNLOAD, &plat_priv->driver_state); clear_bit(CNSS_DRIVER_LOADING, &plat_priv->driver_state); plat_priv->driver_ops = NULL; } Loading @@ -1411,7 +1411,7 @@ static int cnss_unregister_driver_hdlr(struct cnss_plat_data *plat_priv) { struct cnss_subsys_info *subsys_info; set_bit(CNSS_DRIVER_LOAD_UNLOAD, &plat_priv->driver_state); set_bit(CNSS_DRIVER_UNLOADING, &plat_priv->driver_state); subsys_info = &plat_priv->subsys_info; cnss_shutdown(&subsys_info->subsys_desc, false); subsys_info->subsys_handle = NULL; Loading drivers/net/wireless/cnss2/main.h +2 −1 Original line number Diff line number Diff line Loading @@ -131,7 +131,8 @@ enum cnss_driver_state { CNSS_FW_MEM_READY, CNSS_FW_READY, CNSS_COLD_BOOT_CAL_DONE, CNSS_DRIVER_LOAD_UNLOAD, CNSS_DRIVER_LOADING, CNSS_DRIVER_UNLOADING, CNSS_DRIVER_PROBED, CNSS_DRIVER_RECOVERY, }; Loading Loading
drivers/net/wireless/cnss2/debug.c +5 −2 Original line number Diff line number Diff line Loading @@ -80,8 +80,11 @@ static int cnss_stats_show_state(struct seq_file *s, case CNSS_COLD_BOOT_CAL_DONE: seq_puts(s, "COLD_BOOT_CAL_DONE"); continue; case CNSS_DRIVER_LOAD_UNLOAD: seq_puts(s, "DRIVER_LOAD_UNLOAD"); case CNSS_DRIVER_LOADING: seq_puts(s, "DRIVER_LOADING"); continue; case CNSS_DRIVER_UNLOADING: seq_puts(s, "DRIVER_UNLOADING"); continue; case CNSS_DRIVER_PROBED: seq_puts(s, "DRIVER_PROBED"); Loading
drivers/net/wireless/cnss2/main.c +25 −25 Original line number Diff line number Diff line Loading @@ -471,6 +471,12 @@ static int cnss_driver_call_probe(struct cnss_plat_data *plat_priv) int ret; struct cnss_pci_data *pci_priv = plat_priv->bus_priv; if (!plat_priv->driver_ops) { cnss_pr_err("driver_ops is NULL!"); ret = -EINVAL; goto out; } if (test_bit(CNSS_DRIVER_RECOVERY, &plat_priv->driver_state)) { ret = plat_priv->driver_ops->reinit(pci_priv->pci_dev, pci_priv->pci_device_id); Loading @@ -488,7 +494,7 @@ static int cnss_driver_call_probe(struct cnss_plat_data *plat_priv) ret); goto out; } clear_bit(CNSS_DRIVER_LOAD_UNLOAD, &plat_priv->driver_state); clear_bit(CNSS_DRIVER_LOADING, &plat_priv->driver_state); set_bit(CNSS_DRIVER_PROBED, &plat_priv->driver_state); } Loading @@ -514,7 +520,7 @@ static int cnss_fw_ready_hdlr(struct cnss_plat_data *plat_priv) if (!pci_priv) return -ENODEV; if (test_bit(CNSS_DRIVER_LOAD_UNLOAD, &plat_priv->driver_state) || if (test_bit(CNSS_DRIVER_LOADING, &plat_priv->driver_state) || test_bit(CNSS_DRIVER_RECOVERY, &plat_priv->driver_state)) ret = cnss_driver_call_probe(plat_priv); else if (enable_waltest) Loading Loading @@ -920,7 +926,7 @@ static int cnss_qca6174_shutdown(struct cnss_plat_data *plat_priv) if (!plat_priv->driver_ops) return -EINVAL; if (test_bit(CNSS_DRIVER_LOAD_UNLOAD, &plat_priv->driver_state)) { if (test_bit(CNSS_DRIVER_UNLOADING, &plat_priv->driver_state)) { cnss_request_bus_bandwidth(CNSS_BUS_WIDTH_NONE); plat_priv->driver_ops->remove(pci_priv->pci_dev); cnss_pci_set_monitor_wake_intr(pci_priv, false); Loading @@ -935,8 +941,8 @@ static int cnss_qca6174_shutdown(struct cnss_plat_data *plat_priv) cnss_power_off_device(plat_priv); if (test_bit(CNSS_DRIVER_LOAD_UNLOAD, &plat_priv->driver_state)) { clear_bit(CNSS_DRIVER_LOAD_UNLOAD, &plat_priv->driver_state); if (test_bit(CNSS_DRIVER_UNLOADING, &plat_priv->driver_state)) { clear_bit(CNSS_DRIVER_UNLOADING, &plat_priv->driver_state); clear_bit(CNSS_DRIVER_PROBED, &plat_priv->driver_state); } Loading Loading @@ -964,11 +970,6 @@ static int cnss_qca6290_powerup(struct cnss_plat_data *plat_priv) return -ENODEV; } if (!plat_priv->driver_ops) { cnss_pr_err("driver_ops is NULL!\n"); return -EINVAL; } ret = cnss_power_on_device(plat_priv); if (ret) { cnss_pr_err("Failed to power on device, err = %d\n", ret); Loading Loading @@ -1024,7 +1025,7 @@ static int cnss_qca6290_shutdown(struct cnss_plat_data *plat_priv) if (!plat_priv->driver_ops) return -EINVAL; if (test_bit(CNSS_DRIVER_LOAD_UNLOAD, &plat_priv->driver_state)) { if (test_bit(CNSS_DRIVER_UNLOADING, &plat_priv->driver_state)) { cnss_request_bus_bandwidth(CNSS_BUS_WIDTH_NONE); plat_priv->driver_ops->remove(pci_priv->pci_dev); cnss_pci_set_monitor_wake_intr(pci_priv, false); Loading @@ -1041,8 +1042,8 @@ static int cnss_qca6290_shutdown(struct cnss_plat_data *plat_priv) cnss_power_off_device(plat_priv); if (test_bit(CNSS_DRIVER_LOAD_UNLOAD, &plat_priv->driver_state)) { clear_bit(CNSS_DRIVER_LOAD_UNLOAD, &plat_priv->driver_state); if (test_bit(CNSS_DRIVER_UNLOADING, &plat_priv->driver_state)) { clear_bit(CNSS_DRIVER_UNLOADING, &plat_priv->driver_state); clear_bit(CNSS_DRIVER_PROBED, &plat_priv->driver_state); } Loading @@ -1058,7 +1059,8 @@ static void cnss_qca6290_crash_shutdown(struct cnss_plat_data *plat_priv) plat_priv->driver_state); if (test_bit(CNSS_DRIVER_RECOVERY, &plat_priv->driver_state) || test_bit(CNSS_DRIVER_LOAD_UNLOAD, &plat_priv->driver_state)) test_bit(CNSS_DRIVER_LOADING, &plat_priv->driver_state) || test_bit(CNSS_DRIVER_UNLOADING, &plat_priv->driver_state)) return; ret = cnss_pci_set_mhi_state(pci_priv, CNSS_MHI_RDDM_KERNEL_PANIC); Loading Loading @@ -1273,16 +1275,13 @@ static int cnss_do_recovery(struct cnss_plat_data *plat_priv, plat_priv->recovery_count++; if (!plat_priv->driver_ops) { cnss_pr_err("Host driver has not registered yet, ignore recovery!\n"); return 0; } if (plat_priv->device_id == QCA6174_DEVICE_ID) goto self_recovery; if (plat_priv->driver_ops) plat_priv->driver_ops->update_status(pci_priv->pci_dev, CNSS_RECOVERY); if (reason == CNSS_REASON_LINK_DOWN) { cnss_pci_set_mhi_state(plat_priv->bus_priv, CNSS_MHI_NOTIFY_LINK_ERROR); Loading Loading @@ -1332,7 +1331,8 @@ static int cnss_driver_recovery_hdlr(struct cnss_plat_data *plat_priv, goto out; } if (test_bit(CNSS_DRIVER_LOAD_UNLOAD, &plat_priv->driver_state)) { if (test_bit(CNSS_DRIVER_LOADING, &plat_priv->driver_state) || test_bit(CNSS_DRIVER_UNLOADING, &plat_priv->driver_state)) { cnss_pr_err("Driver load or unload is in progress!\n"); ret = -EINVAL; goto out; Loading Loading @@ -1394,13 +1394,13 @@ static int cnss_register_driver_hdlr(struct cnss_plat_data *plat_priv, int ret = 0; struct cnss_subsys_info *subsys_info; set_bit(CNSS_DRIVER_LOAD_UNLOAD, &plat_priv->driver_state); set_bit(CNSS_DRIVER_LOADING, &plat_priv->driver_state); plat_priv->driver_ops = data; subsys_info = &plat_priv->subsys_info; ret = cnss_powerup(&subsys_info->subsys_desc); if (ret) { clear_bit(CNSS_DRIVER_LOAD_UNLOAD, &plat_priv->driver_state); clear_bit(CNSS_DRIVER_LOADING, &plat_priv->driver_state); plat_priv->driver_ops = NULL; } Loading @@ -1411,7 +1411,7 @@ static int cnss_unregister_driver_hdlr(struct cnss_plat_data *plat_priv) { struct cnss_subsys_info *subsys_info; set_bit(CNSS_DRIVER_LOAD_UNLOAD, &plat_priv->driver_state); set_bit(CNSS_DRIVER_UNLOADING, &plat_priv->driver_state); subsys_info = &plat_priv->subsys_info; cnss_shutdown(&subsys_info->subsys_desc, false); subsys_info->subsys_handle = NULL; Loading
drivers/net/wireless/cnss2/main.h +2 −1 Original line number Diff line number Diff line Loading @@ -131,7 +131,8 @@ enum cnss_driver_state { CNSS_FW_MEM_READY, CNSS_FW_READY, CNSS_COLD_BOOT_CAL_DONE, CNSS_DRIVER_LOAD_UNLOAD, CNSS_DRIVER_LOADING, CNSS_DRIVER_UNLOADING, CNSS_DRIVER_PROBED, CNSS_DRIVER_RECOVERY, }; Loading