]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
drm/i915/guc: Flush directly in log unregister
authorMichał Winiarski <michal.winiarski@intel.com>
Mon, 19 Mar 2018 09:53:39 +0000 (10:53 +0100)
committerChris Wilson <chris@chris-wilson.co.uk>
Mon, 19 Mar 2018 12:23:02 +0000 (12:23 +0000)
Having both guc_flush_logs and guc_log_flush functions is confusing.
While we could just rename things, guc_flush_logs implementation is
quite simple. Let's get rid of it and move its content to unregister.

v2: s/dev_priv/i915 (Sagar)

Signed-off-by: Michał Winiarski <michal.winiarski@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Cc: Sagar Arun Kamble <sagar.a.kamble@intel.com>
Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
Reviewed-by: Sagar Arun Kamble <sagar.a.kamble@intel.com>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Link: https://patchwork.freedesktop.org/patch/msgid/20180319095348.9716-4-michal.winiarski@intel.com
drivers/gpu/drm/i915/intel_guc_log.c

index 767c0d00fca6f447e4c036810200da70658f5d19..72a71bc94adf74ad90edb359c9b6c9108dcde5f3 100644 (file)
@@ -461,26 +461,6 @@ static void guc_log_capture_logs(struct intel_guc_log *log)
        intel_runtime_pm_put(dev_priv);
 }
 
-static void guc_flush_logs(struct intel_guc_log *log)
-{
-       struct intel_guc *guc = log_to_guc(log);
-       struct drm_i915_private *dev_priv = guc_to_i915(guc);
-
-       /*
-        * Before initiating the forceful flush, wait for any pending/ongoing
-        * flush to complete otherwise forceful flush may not actually happen.
-        */
-       flush_work(&log->runtime.flush_work);
-
-       /* Ask GuC to update the log buffer state */
-       intel_runtime_pm_get(dev_priv);
-       guc_log_flush(guc);
-       intel_runtime_pm_put(dev_priv);
-
-       /* GuC would have updated log buffer by now, so capture it */
-       guc_log_capture_logs(log);
-}
-
 int intel_guc_log_create(struct intel_guc_log *log)
 {
        struct intel_guc *guc = log_to_guc(log);
@@ -635,7 +615,16 @@ int intel_guc_log_register(struct intel_guc_log *log)
 
 void intel_guc_log_unregister(struct intel_guc_log *log)
 {
-       guc_flush_log_msg_disable(log_to_guc(log));
+       struct intel_guc *guc = log_to_guc(log);
+       struct drm_i915_private *i915 = guc_to_i915(guc);
+
+       guc_flush_log_msg_disable(guc);
+
+       /*
+        * Before initiating the forceful flush, wait for any pending/ongoing
+        * flush to complete otherwise forceful flush may not actually happen.
+        */
+       flush_work(&log->runtime.flush_work);
 
        /*
         * Once logging is disabled, GuC won't generate logs & send an
@@ -643,7 +632,12 @@ void intel_guc_log_unregister(struct intel_guc_log *log)
         * which is yet to be captured. So request GuC to update the log
         * buffer state and then collect the left over logs.
         */
-       guc_flush_logs(log);
+       intel_runtime_pm_get(i915);
+       guc_log_flush(guc);
+       intel_runtime_pm_put(i915);
+
+       /* GuC would have updated log buffer by now, so capture it */
+       guc_log_capture_logs(log);
 
        mutex_lock(&log->runtime.lock);