Browse Source

qcacmn: Flush reg work instead of cancelling in deinit path

Currently reg work is being cancelled in deinit path,
cancel work will remove all the pending work items
and wait for completion of current executing work.
But in reg work case even pending work items has to be
executed because we don't want to skip HP/TP values update.

To avoid this make sure all the pending reg work items are
flushed then disable the work for further queueing.

Change-Id: I2ba1e26cf41fb3b0c33ec584c56525cbfac94d8f
CRs-Fixed: 3065038
Karthik Kantamneni 3 years ago
parent
commit
436c1c4484
1 changed files with 2 additions and 2 deletions
  1. 2 2
      hal/wifi3.0/hal_srng.c

+ 2 - 2
hal/wifi3.0/hal_srng.c

@@ -799,8 +799,8 @@ static void hal_reg_write_work(void *arg)
 
 static void __hal_flush_reg_write_work(struct hal_soc *hal)
 {
-	qdf_cancel_work(&hal->reg_write_work);
-
+	qdf_flush_work(&hal->reg_write_work);
+	qdf_disable_work(&hal->reg_write_work);
 }
 
 void hal_flush_reg_write_work(hal_soc_handle_t hal_handle)