qcacld-3.0: Add transition timeout detection to DSC
In order to catch and debug long running transitions, add a watchdog timer to Driver Synchronization Core (DSC) transition start/stop call pairs. If the timer expires, panic the driver for offline debugging. Change-Id: I9b64fdb9cc20e1225394702d58b24db92a2d67e1 CRs-Fixed: 2328596
This commit is contained in:
@@ -145,9 +145,7 @@ __dsc_driver_trans_start_nolock(struct dsc_driver *driver, const char *desc)
|
||||
if (!__dsc_driver_can_trans(driver))
|
||||
return QDF_STATUS_E_AGAIN;
|
||||
|
||||
driver->trans.active_desc = desc;
|
||||
|
||||
return QDF_STATUS_SUCCESS;
|
||||
return __dsc_trans_start(&driver->trans, desc);
|
||||
}
|
||||
|
||||
static QDF_STATUS
|
||||
@@ -260,8 +258,7 @@ static void __dsc_driver_trans_stop(struct dsc_driver *driver)
|
||||
|
||||
__dsc_lock(driver);
|
||||
|
||||
dsc_assert(driver->trans.active_desc);
|
||||
driver->trans.active_desc = NULL;
|
||||
__dsc_trans_stop(&driver->trans);
|
||||
__dsc_driver_trigger_trans(driver);
|
||||
|
||||
__dsc_unlock(driver);
|
||||
@@ -280,7 +277,7 @@ static void __dsc_driver_trans_assert(struct dsc_driver *driver)
|
||||
return;
|
||||
|
||||
__dsc_lock(driver);
|
||||
dsc_assert(driver->trans.active_desc);
|
||||
dsc_assert(__dsc_trans_active(&driver->trans));
|
||||
__dsc_unlock(driver);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user