mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-10 14:19:09 -04:00
qcacld-3.0: Use workqueue for recovery when suspend/resume timeout
When suspend/resume timeout, it will trigger recovery, current as it direcly trigger assert to fw, which will take more time to dump ramdump, so DPM WD timer expired. To avoid DPM WD timer expired, trigger ramdump in a separate workqueue, so it will not block DPM WD timer. Change-Id: I1a9349a05a37544329946270065037cd90172fc7 CRs-Fixed: 2645163
This commit is contained in:
parent
2f607373ab
commit
7cca7f52ae
1 changed files with 7 additions and 1 deletions
|
|
@ -1810,6 +1810,8 @@ static void cds_trigger_recovery_work(void *context)
|
|||
void __cds_trigger_recovery(enum qdf_hang_reason reason, const char *func,
|
||||
const uint32_t line)
|
||||
{
|
||||
bool is_work_queue_needed = false;
|
||||
|
||||
if (!gp_cds_context) {
|
||||
cds_err("gp_cds_context is null");
|
||||
return;
|
||||
|
|
@ -1817,7 +1819,11 @@ void __cds_trigger_recovery(enum qdf_hang_reason reason, const char *func,
|
|||
|
||||
gp_cds_context->recovery_reason = reason;
|
||||
|
||||
if (in_atomic()) {
|
||||
if (in_atomic() ||
|
||||
(QDF_RESUME_TIMEOUT == reason || QDF_SUSPEND_TIMEOUT == reason))
|
||||
is_work_queue_needed = true;
|
||||
|
||||
if (is_work_queue_needed) {
|
||||
__cds_recovery_caller.func = func;
|
||||
__cds_recovery_caller.line = line;
|
||||
qdf_queue_work(0, gp_cds_context->cds_recovery_wq,
|
||||
|
|
|
|||
Loading…
Reference in a new issue