cnss2: Release rddm_complete wait during default recovery
Currently Host driver calls cnss_force_collect_rddm API to trigger RDDM and wait for dump collection. If device fails to move to RDDM, CNSS driver initiate DEFAULT recovery (which is recovery without RDDM dump collection) and return failure to Host driver. Host driver sees error and again try recovery which results in double recovery. To avoid this issue, return success to Host driver if CNSS driver has already initiated the DEFAULT recovery and release rddm_complete wait event for DEFAULT recovery cases also. Change-Id: Ib4b324704d15b40ec98985745b1981522b3b4f2d CRs-Fixed: 3627928
This commit is contained in:

committed by
Rahul Choudhary

parent
b791c15d0c
commit
b031b47122
@@ -2857,6 +2857,7 @@ int cnss_pci_call_driver_remove(struct cnss_pci_data *pci_priv)
|
||||
|
||||
if (test_bit(CNSS_DRIVER_RECOVERY, &plat_priv->driver_state) &&
|
||||
test_bit(CNSS_DRIVER_PROBED, &plat_priv->driver_state)) {
|
||||
complete(&plat_priv->rddm_complete);
|
||||
pci_priv->driver_ops->shutdown(pci_priv->pci_dev);
|
||||
} else if (test_bit(CNSS_DRIVER_UNLOADING, &plat_priv->driver_state)) {
|
||||
pci_priv->driver_ops->remove(pci_priv->pci_dev);
|
||||
@@ -5821,6 +5822,7 @@ int cnss_pci_force_fw_assert_hdlr(struct cnss_pci_data *pci_priv)
|
||||
cnss_pci_dump_debug_reg(pci_priv);
|
||||
cnss_schedule_recovery(&pci_priv->pci_dev->dev,
|
||||
CNSS_REASON_DEFAULT);
|
||||
ret = 0;
|
||||
goto runtime_pm_put;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user