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:
Dustin Brown
2018-10-05 10:45:41 -07:00
committed by nshrivas
parent 045f3025eb
commit 4f74e9522b
6 changed files with 110 additions and 26 deletions

View File

@@ -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);
}