Browse Source

Revert "Revert "dsp-kernel: make pm relax vote when process is exiting""

This reverts commit fb1fbff95a55188c6fe9bdf9a7697bef55e96108.

Signed-off-by: V S Ganga VaraPrasad (VARA) Adabala <[email protected]>
V S Ganga VaraPrasad (VARA) Adabala 1 year ago
parent
commit
7b85330500
1 changed files with 19 additions and 0 deletions
  1. 19 0
      dsp/adsprpc.c

+ 19 - 0
dsp/adsprpc.c

@@ -3064,6 +3064,24 @@ static inline void fastrpc_pm_awake(struct fastrpc_file *fl, int channel_type)
 		pm_wakeup_ws_event(wake_source, fl->ws_timeout, true);
 		pm_wakeup_ws_event(wake_source, fl->ws_timeout, true);
 }
 }
 
 
+static inline void fastrpc_pm_relax(struct fastrpc_file *fl, int channel_type)
+{
+	struct fastrpc_apps *me = &gfa;
+	struct wakeup_source *wake_source = NULL;
+
+	if (!fl->wake_enable)
+		return;
+
+	if (channel_type == SECURE_CHANNEL)
+		wake_source = me->wake_source_secure;
+	else if (channel_type == NON_SECURE_CHANNEL)
+		wake_source = me->wake_source;
+
+	ADSPRPC_INFO("done for tgid %d\n", fl->tgid);
+	if (wake_source)
+		__pm_relax(wake_source);
+}
+
 static inline int fastrpc_wait_for_response(struct smq_invoke_ctx *ctx,
 static inline int fastrpc_wait_for_response(struct smq_invoke_ctx *ctx,
 						uint32_t kernel)
 						uint32_t kernel)
 {
 {
@@ -5895,6 +5913,7 @@ skip_dump_wait:
 	} while (lmap);
 	} while (lmap);
 	mutex_unlock(&fl->map_mutex);
 	mutex_unlock(&fl->map_mutex);
 	mutex_unlock(&fl->internal_map_mutex);
 	mutex_unlock(&fl->internal_map_mutex);
+	fastrpc_pm_relax(fl, gcinfo[fl->cid].secure);
 
 
 	if (fl->device && is_driver_closed)
 	if (fl->device && is_driver_closed)
 		device_unregister(&fl->device->dev);
 		device_unregister(&fl->device->dev);