All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2] drm/i915/guc: Update syntax of GuC log functions
@ 2018-03-14 14:45 Michal Wajdeczko
  2018-03-14 16:07 ` ✓ Fi.CI.BAT: success for drm/i915/guc: Update syntax of GuC log functions (rev2) Patchwork
                   ` (3 more replies)
  0 siblings, 4 replies; 8+ messages in thread
From: Michal Wajdeczko @ 2018-03-14 14:45 UTC (permalink / raw)
  To: intel-gfx

We moved GuC log related data and code to separate files and
definition but we didn't change functions syntax to follow
object-verb pattern. Let's fix that before we continue with
next round of code refactoring.

v2: rebased

Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
Cc: Michal Winiarski <michal.winiarski@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Michał Winiarski <michal.winiarski@intel.com>
---
 drivers/gpu/drm/i915/i915_debugfs.c  |   4 +-
 drivers/gpu/drm/i915/intel_guc.c     |   8 +-
 drivers/gpu/drm/i915/intel_guc_log.c | 203 +++++++++++++++++++----------------
 drivers/gpu/drm/i915/intel_guc_log.h |  18 ++--
 drivers/gpu/drm/i915/intel_uc.c      |   4 +-
 5 files changed, 126 insertions(+), 111 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
index 972014b..298a3aa 100644
--- a/drivers/gpu/drm/i915/i915_debugfs.c
+++ b/drivers/gpu/drm/i915/i915_debugfs.c
@@ -2502,7 +2502,7 @@ static int i915_guc_log_control_get(void *data, u64 *val)
 	if (!USES_GUC(dev_priv))
 		return -ENODEV;
 
-	*val = intel_guc_log_control_get(&dev_priv->guc);
+	*val = intel_guc_log_control_get(&dev_priv->guc.log);
 
 	return 0;
 }
@@ -2514,7 +2514,7 @@ static int i915_guc_log_control_set(void *data, u64 val)
 	if (!USES_GUC(dev_priv))
 		return -ENODEV;
 
-	return intel_guc_log_control_set(&dev_priv->guc, val);
+	return intel_guc_log_control_set(&dev_priv->guc.log, val);
 }
 
 DEFINE_SIMPLE_ATTRIBUTE(i915_guc_log_control_fops,
diff --git a/drivers/gpu/drm/i915/intel_guc.c b/drivers/gpu/drm/i915/intel_guc.c
index 3eb516e..e70bf65 100644
--- a/drivers/gpu/drm/i915/intel_guc.c
+++ b/drivers/gpu/drm/i915/intel_guc.c
@@ -64,7 +64,7 @@ void intel_guc_init_early(struct intel_guc *guc)
 {
 	intel_guc_fw_init_early(guc);
 	intel_guc_ct_init_early(&guc->ct);
-	intel_guc_log_init_early(guc);
+	intel_guc_log_init_early(&guc->log);
 
 	mutex_init(&guc->send_mutex);
 	guc->send = intel_guc_send_nop;
@@ -169,7 +169,7 @@ int intel_guc_init(struct intel_guc *guc)
 		return ret;
 	GEM_BUG_ON(!guc->shared_data);
 
-	ret = intel_guc_log_create(guc);
+	ret = intel_guc_log_create(&guc->log);
 	if (ret)
 		goto err_shared;
 
@@ -184,7 +184,7 @@ int intel_guc_init(struct intel_guc *guc)
 	return 0;
 
 err_log:
-	intel_guc_log_destroy(guc);
+	intel_guc_log_destroy(&guc->log);
 err_shared:
 	guc_shared_data_destroy(guc);
 	return ret;
@@ -196,7 +196,7 @@ void intel_guc_fini(struct intel_guc *guc)
 
 	i915_ggtt_disable_guc(dev_priv);
 	intel_guc_ads_destroy(guc);
-	intel_guc_log_destroy(guc);
+	intel_guc_log_destroy(&guc->log);
 	guc_shared_data_destroy(guc);
 }
 
diff --git a/drivers/gpu/drm/i915/intel_guc_log.c b/drivers/gpu/drm/i915/intel_guc_log.c
index b9c7bd7..0628a88 100644
--- a/drivers/gpu/drm/i915/intel_guc_log.c
+++ b/drivers/gpu/drm/i915/intel_guc_log.c
@@ -22,13 +22,10 @@
  *
  */
 
-#include <linux/debugfs.h>
-#include <linux/relay.h>
-
 #include "intel_guc_log.h"
 #include "i915_drv.h"
 
-static void guc_log_capture_logs(struct intel_guc *guc);
+static void guc_log_capture_logs(struct intel_guc_log *log);
 
 /**
  * DOC: GuC firmware log
@@ -74,6 +71,11 @@ static int guc_log_control(struct intel_guc *guc, bool enable, u32 verbosity)
 	return intel_guc_send(guc, action, ARRAY_SIZE(action));
 }
 
+static inline struct intel_guc *log_to_guc(struct intel_guc_log *log)
+{
+	return container_of(log, struct intel_guc, log);
+}
+
 /*
  * Sub buffer switch callback. Called whenever relay has to switch to a new
  * sub buffer, relay stays on the same sub buffer if 0 is returned.
@@ -149,8 +151,9 @@ static int remove_buf_file_callback(struct dentry *dentry)
 	.remove_buf_file = remove_buf_file_callback,
 };
 
-static int guc_log_relay_file_create(struct intel_guc *guc)
+static int guc_log_relay_file_create(struct intel_guc_log *log)
 {
+	struct intel_guc *guc = log_to_guc(log);
 	struct drm_i915_private *dev_priv = guc_to_i915(guc);
 	struct dentry *log_dir;
 	int ret;
@@ -158,7 +161,7 @@ static int guc_log_relay_file_create(struct intel_guc *guc)
 	if (!i915_modparams.guc_log_level)
 		return 0;
 
-	mutex_lock(&guc->log.runtime.relay_lock);
+	mutex_lock(&log->runtime.relay_lock);
 
 	/* For now create the log file in /sys/kernel/debug/dri/0 dir */
 	log_dir = dev_priv->drm.primary->debugfs_root;
@@ -181,7 +184,8 @@ static int guc_log_relay_file_create(struct intel_guc *guc)
 		goto out_unlock;
 	}
 
-	ret = relay_late_setup_files(guc->log.runtime.relay_chan, "guc_log", log_dir);
+	ret = relay_late_setup_files(log->runtime.relay_chan, "guc_log",
+				     log_dir);
 	if (ret < 0 && ret != -EEXIST) {
 		DRM_ERROR("Couldn't associate relay chan with file %d\n", ret);
 		goto out_unlock;
@@ -190,18 +194,18 @@ static int guc_log_relay_file_create(struct intel_guc *guc)
 	ret = 0;
 
 out_unlock:
-	mutex_unlock(&guc->log.runtime.relay_lock);
+	mutex_unlock(&log->runtime.relay_lock);
 	return ret;
 }
 
-static bool guc_log_has_relay(struct intel_guc *guc)
+static bool guc_log_has_relay(struct intel_guc_log *log)
 {
-	lockdep_assert_held(&guc->log.runtime.relay_lock);
+	lockdep_assert_held(&log->runtime.relay_lock);
 
-	return guc->log.runtime.relay_chan != NULL;
+	return log->runtime.relay_chan != NULL;
 }
 
-static void guc_move_to_next_buf(struct intel_guc *guc)
+static void guc_move_to_next_buf(struct intel_guc_log *log)
 {
 	/*
 	 * Make sure the updates made in the sub buffer are visible when
@@ -209,19 +213,19 @@ static void guc_move_to_next_buf(struct intel_guc *guc)
 	 */
 	smp_wmb();
 
-	if (!guc_log_has_relay(guc))
+	if (!guc_log_has_relay(log))
 		return;
 
 	/* All data has been written, so now move the offset of sub buffer. */
-	relay_reserve(guc->log.runtime.relay_chan, guc->log.vma->obj->base.size);
+	relay_reserve(log->runtime.relay_chan, log->vma->obj->base.size);
 
 	/* Switch to the next sub buffer */
-	relay_flush(guc->log.runtime.relay_chan);
+	relay_flush(log->runtime.relay_chan);
 }
 
-static void *guc_get_write_buffer(struct intel_guc *guc)
+static void *guc_get_write_buffer(struct intel_guc_log *log)
 {
-	if (!guc_log_has_relay(guc))
+	if (!guc_log_has_relay(log))
 		return NULL;
 
 	/*
@@ -233,25 +237,25 @@ static void *guc_get_write_buffer(struct intel_guc *guc)
 	 * done without using relay_reserve() along with relay_write(). So its
 	 * better to use relay_reserve() alone.
 	 */
-	return relay_reserve(guc->log.runtime.relay_chan, 0);
+	return relay_reserve(log->runtime.relay_chan, 0);
 }
 
-static bool guc_check_log_buf_overflow(struct intel_guc *guc,
+static bool guc_check_log_buf_overflow(struct intel_guc_log *log,
 				       enum guc_log_buffer_type type,
 				       unsigned int full_cnt)
 {
-	unsigned int prev_full_cnt = guc->log.prev_overflow_count[type];
+	unsigned int prev_full_cnt = log->prev_overflow_count[type];
 	bool overflow = false;
 
 	if (full_cnt != prev_full_cnt) {
 		overflow = true;
 
-		guc->log.prev_overflow_count[type] = full_cnt;
-		guc->log.total_overflow_count[type] += full_cnt - prev_full_cnt;
+		log->prev_overflow_count[type] = full_cnt;
+		log->total_overflow_count[type] += full_cnt - prev_full_cnt;
 
 		if (full_cnt < prev_full_cnt) {
 			/* buffer_full_cnt is a 4 bit counter */
-			guc->log.total_overflow_count[type] += 16;
+			log->total_overflow_count[type] += 16;
 		}
 		DRM_ERROR_RATELIMITED("GuC log buffer overflow\n");
 	}
@@ -275,7 +279,7 @@ static unsigned int guc_get_log_buffer_size(enum guc_log_buffer_type type)
 	return 0;
 }
 
-static void guc_read_update_log_buffer(struct intel_guc *guc)
+static void guc_read_update_log_buffer(struct intel_guc_log *log)
 {
 	unsigned int buffer_size, read_offset, write_offset, bytes_to_copy, full_cnt;
 	struct guc_log_buffer_state *log_buf_state, *log_buf_snapshot_state;
@@ -284,16 +288,16 @@ static void guc_read_update_log_buffer(struct intel_guc *guc)
 	void *src_data, *dst_data;
 	bool new_overflow;
 
-	if (WARN_ON(!guc->log.runtime.buf_addr))
+	if (WARN_ON(!log->runtime.buf_addr))
 		return;
 
 	/* Get the pointer to shared GuC log buffer */
-	log_buf_state = src_data = guc->log.runtime.buf_addr;
+	log_buf_state = src_data = log->runtime.buf_addr;
 
-	mutex_lock(&guc->log.runtime.relay_lock);
+	mutex_lock(&log->runtime.relay_lock);
 
 	/* Get the pointer to local buffer to store the logs */
-	log_buf_snapshot_state = dst_data = guc_get_write_buffer(guc);
+	log_buf_snapshot_state = dst_data = guc_get_write_buffer(log);
 
 	if (unlikely(!log_buf_snapshot_state)) {
 		/*
@@ -301,8 +305,8 @@ static void guc_read_update_log_buffer(struct intel_guc *guc)
 		 * getting consumed by User at a slow rate.
 		 */
 		DRM_ERROR_RATELIMITED("no sub-buffer to capture logs\n");
-		guc->log.capture_miss_count++;
-		mutex_unlock(&guc->log.runtime.relay_lock);
+		log->capture_miss_count++;
+		mutex_unlock(&log->runtime.relay_lock);
 
 		return;
 	}
@@ -325,8 +329,8 @@ static void guc_read_update_log_buffer(struct intel_guc *guc)
 		full_cnt = log_buf_state_local.buffer_full_cnt;
 
 		/* Bookkeeping stuff */
-		guc->log.flush_count[type] += log_buf_state_local.flush_to_file;
-		new_overflow = guc_check_log_buf_overflow(guc, type, full_cnt);
+		log->flush_count[type] += log_buf_state_local.flush_to_file;
+		new_overflow = guc_check_log_buf_overflow(log, type, full_cnt);
 
 		/* Update the state of shared log buffer */
 		log_buf_state->read_ptr = write_offset;
@@ -373,38 +377,39 @@ static void guc_read_update_log_buffer(struct intel_guc *guc)
 		dst_data += buffer_size;
 	}
 
-	guc_move_to_next_buf(guc);
+	guc_move_to_next_buf(log);
 
-	mutex_unlock(&guc->log.runtime.relay_lock);
+	mutex_unlock(&log->runtime.relay_lock);
 }
 
 static void capture_logs_work(struct work_struct *work)
 {
-	struct intel_guc *guc =
-		container_of(work, struct intel_guc, log.runtime.flush_work);
+	struct intel_guc_log *log =
+		container_of(work, struct intel_guc_log, runtime.flush_work);
 
-	guc_log_capture_logs(guc);
+	guc_log_capture_logs(log);
 }
 
-static bool guc_log_has_runtime(struct intel_guc *guc)
+static bool guc_log_has_runtime(struct intel_guc_log *log)
 {
-	return guc->log.runtime.buf_addr != NULL;
+	return log->runtime.buf_addr != NULL;
 }
 
-static int guc_log_runtime_create(struct intel_guc *guc)
+static int guc_log_runtime_create(struct intel_guc_log *log)
 {
+	struct intel_guc *guc = log_to_guc(log);
 	struct drm_i915_private *dev_priv = guc_to_i915(guc);
 	void *vaddr;
 	int ret;
 
 	lockdep_assert_held(&dev_priv->drm.struct_mutex);
 
-	if (!guc->log.vma)
+	if (!log->vma)
 		return -ENODEV;
 
-	GEM_BUG_ON(guc_log_has_runtime(guc));
+	GEM_BUG_ON(guc_log_has_runtime(log));
 
-	ret = i915_gem_object_set_to_wc_domain(guc->log.vma->obj, true);
+	ret = i915_gem_object_set_to_wc_domain(log->vma->obj, true);
 	if (ret)
 		return ret;
 
@@ -413,38 +418,39 @@ static int guc_log_runtime_create(struct intel_guc *guc)
 	 * buffer pages, so that we can directly get the data
 	 * (up-to-date) from memory.
 	 */
-	vaddr = i915_gem_object_pin_map(guc->log.vma->obj, I915_MAP_WC);
+	vaddr = i915_gem_object_pin_map(log->vma->obj, I915_MAP_WC);
 	if (IS_ERR(vaddr)) {
 		DRM_ERROR("Couldn't map log buffer pages %d\n", ret);
 		return PTR_ERR(vaddr);
 	}
 
-	guc->log.runtime.buf_addr = vaddr;
+	log->runtime.buf_addr = vaddr;
 
 	return 0;
 }
 
-static void guc_log_runtime_destroy(struct intel_guc *guc)
+static void guc_log_runtime_destroy(struct intel_guc_log *log)
 {
 	/*
 	 * It's possible that the runtime stuff was never allocated because
 	 * GuC log was disabled at the boot time.
 	 */
-	if (!guc_log_has_runtime(guc))
+	if (!guc_log_has_runtime(log))
 		return;
 
-	i915_gem_object_unpin_map(guc->log.vma->obj);
-	guc->log.runtime.buf_addr = NULL;
+	i915_gem_object_unpin_map(log->vma->obj);
+	log->runtime.buf_addr = NULL;
 }
 
-void intel_guc_log_init_early(struct intel_guc *guc)
+void intel_guc_log_init_early(struct intel_guc_log *log)
 {
-	mutex_init(&guc->log.runtime.relay_lock);
-	INIT_WORK(&guc->log.runtime.flush_work, capture_logs_work);
+	mutex_init(&log->runtime.relay_lock);
+	INIT_WORK(&log->runtime.flush_work, capture_logs_work);
 }
 
-static int guc_log_relay_create(struct intel_guc *guc)
+static int guc_log_relay_create(struct intel_guc_log *log)
 {
+	struct intel_guc *guc = log_to_guc(log);
 	struct drm_i915_private *dev_priv = guc_to_i915(guc);
 	struct rchan *guc_log_relay_chan;
 	size_t n_subbufs, subbuf_size;
@@ -453,9 +459,9 @@ static int guc_log_relay_create(struct intel_guc *guc)
 	if (!i915_modparams.guc_log_level)
 		return 0;
 
-	mutex_lock(&guc->log.runtime.relay_lock);
+	mutex_lock(&log->runtime.relay_lock);
 
-	GEM_BUG_ON(guc_log_has_relay(guc));
+	GEM_BUG_ON(guc_log_has_relay(log));
 
 	 /* Keep the size of sub buffers same as shared log buffer */
 	subbuf_size = GUC_LOG_SIZE;
@@ -483,42 +489,43 @@ static int guc_log_relay_create(struct intel_guc *guc)
 	}
 
 	GEM_BUG_ON(guc_log_relay_chan->subbuf_size < subbuf_size);
-	guc->log.runtime.relay_chan = guc_log_relay_chan;
+	log->runtime.relay_chan = guc_log_relay_chan;
 
-	mutex_unlock(&guc->log.runtime.relay_lock);
+	mutex_unlock(&log->runtime.relay_lock);
 
 	return 0;
 
 err:
-	mutex_unlock(&guc->log.runtime.relay_lock);
+	mutex_unlock(&log->runtime.relay_lock);
 	/* logging will be off */
 	i915_modparams.guc_log_level = 0;
 	return ret;
 }
 
-static void guc_log_relay_destroy(struct intel_guc *guc)
+static void guc_log_relay_destroy(struct intel_guc_log *log)
 {
-	mutex_lock(&guc->log.runtime.relay_lock);
+	mutex_lock(&log->runtime.relay_lock);
 
 	/*
 	 * It's possible that the relay was never allocated because
 	 * GuC log was disabled at the boot time.
 	 */
-	if (!guc_log_has_relay(guc))
+	if (!guc_log_has_relay(log))
 		goto out_unlock;
 
-	relay_close(guc->log.runtime.relay_chan);
-	guc->log.runtime.relay_chan = NULL;
+	relay_close(log->runtime.relay_chan);
+	log->runtime.relay_chan = NULL;
 
 out_unlock:
-	mutex_unlock(&guc->log.runtime.relay_lock);
+	mutex_unlock(&log->runtime.relay_lock);
 }
 
-static void guc_log_capture_logs(struct intel_guc *guc)
+static void guc_log_capture_logs(struct intel_guc_log *log)
 {
+	struct intel_guc *guc = log_to_guc(log);
 	struct drm_i915_private *dev_priv = guc_to_i915(guc);
 
-	guc_read_update_log_buffer(guc);
+	guc_read_update_log_buffer(log);
 
 	/*
 	 * Generally device is expected to be active only at this
@@ -529,15 +536,16 @@ static void guc_log_capture_logs(struct intel_guc *guc)
 	intel_runtime_pm_put(dev_priv);
 }
 
-static void guc_flush_logs(struct intel_guc *guc)
+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(&guc->log.runtime.flush_work);
+	flush_work(&log->runtime.flush_work);
 
 	/* Ask GuC to update the log buffer state */
 	intel_runtime_pm_get(dev_priv);
@@ -545,17 +553,18 @@ static void guc_flush_logs(struct intel_guc *guc)
 	intel_runtime_pm_put(dev_priv);
 
 	/* GuC would have updated log buffer by now, so capture it */
-	guc_log_capture_logs(guc);
+	guc_log_capture_logs(log);
 }
 
-int intel_guc_log_create(struct intel_guc *guc)
+int intel_guc_log_create(struct intel_guc_log *log)
 {
+	struct intel_guc *guc = log_to_guc(log);
 	struct i915_vma *vma;
 	unsigned long offset;
 	u32 flags;
 	int ret;
 
-	GEM_BUG_ON(guc->log.vma);
+	GEM_BUG_ON(log->vma);
 
 	/*
 	 * We require SSE 4.1 for fast reads from the GuC log buffer and
@@ -573,7 +582,7 @@ int intel_guc_log_create(struct intel_guc *guc)
 		goto err;
 	}
 
-	guc->log.vma = vma;
+	log->vma = vma;
 
 	/* each allocated unit is a page */
 	flags = GUC_LOG_VALID | GUC_LOG_NOTIFY_ON_HALF_FULL |
@@ -582,7 +591,7 @@ int intel_guc_log_create(struct intel_guc *guc)
 		(GUC_LOG_CRASH_PAGES << GUC_LOG_CRASH_SHIFT);
 
 	offset = intel_guc_ggtt_offset(guc, vma) >> PAGE_SHIFT;
-	guc->log.flags = (offset << GUC_LOG_BUF_ADDR_SHIFT) | flags;
+	log->flags = (offset << GUC_LOG_BUF_ADDR_SHIFT) | flags;
 
 	return 0;
 
@@ -592,15 +601,15 @@ int intel_guc_log_create(struct intel_guc *guc)
 	return ret;
 }
 
-void intel_guc_log_destroy(struct intel_guc *guc)
+void intel_guc_log_destroy(struct intel_guc_log *log)
 {
-	guc_log_runtime_destroy(guc);
-	i915_vma_unpin_and_release(&guc->log.vma);
+	guc_log_runtime_destroy(log);
+	i915_vma_unpin_and_release(&log->vma);
 }
 
-int intel_guc_log_control_get(struct intel_guc *guc)
+int intel_guc_log_control_get(struct intel_guc_log *log)
 {
-	GEM_BUG_ON(!guc->log.vma);
+	GEM_BUG_ON(!log->vma);
 	GEM_BUG_ON(i915_modparams.guc_log_level < 0);
 
 	return i915_modparams.guc_log_level;
@@ -613,14 +622,15 @@ int intel_guc_log_control_get(struct intel_guc *guc)
 	LOG_LEVEL_TO_ENABLED(_x) ? _x - 1 : 0;	\
 })
 #define VERBOSITY_TO_LOG_LEVEL(x)  ((x) + 1)
-int intel_guc_log_control_set(struct intel_guc *guc, u64 val)
+int intel_guc_log_control_set(struct intel_guc_log *log, u64 val)
 {
+	struct intel_guc *guc = log_to_guc(log);
 	struct drm_i915_private *dev_priv = guc_to_i915(guc);
 	bool enabled = LOG_LEVEL_TO_ENABLED(val);
 	int ret;
 
 	BUILD_BUG_ON(GUC_LOG_VERBOSITY_MIN != 0);
-	GEM_BUG_ON(!guc->log.vma);
+	GEM_BUG_ON(!log->vma);
 	GEM_BUG_ON(i915_modparams.guc_log_level < 0);
 
 	/*
@@ -650,15 +660,15 @@ int intel_guc_log_control_set(struct intel_guc *guc, u64 val)
 
 	mutex_unlock(&dev_priv->drm.struct_mutex);
 
-	if (enabled && !guc_log_has_runtime(guc)) {
-		ret = intel_guc_log_register(guc);
+	if (enabled && !guc_log_has_runtime(log)) {
+		ret = intel_guc_log_register(log);
 		if (ret) {
 			/* logging will remain off */
 			i915_modparams.guc_log_level = 0;
 			goto out;
 		}
-	} else if (!enabled && guc_log_has_runtime(guc)) {
-		intel_guc_log_unregister(guc);
+	} else if (!enabled && guc_log_has_runtime(log)) {
+		intel_guc_log_unregister(log);
 	}
 
 	return 0;
@@ -669,30 +679,31 @@ int intel_guc_log_control_set(struct intel_guc *guc, u64 val)
 	return ret;
 }
 
-int intel_guc_log_register(struct intel_guc *guc)
+int intel_guc_log_register(struct intel_guc_log *log)
 {
+	struct intel_guc *guc = log_to_guc(log);
 	struct drm_i915_private *i915 = guc_to_i915(guc);
 	int ret;
 
-	GEM_BUG_ON(guc_log_has_runtime(guc));
+	GEM_BUG_ON(guc_log_has_runtime(log));
 
 	/*
 	 * If log was disabled at boot time, then setup needed to handle
 	 * log buffer flush interrupts would not have been done yet, so
 	 * do that now.
 	 */
-	ret = guc_log_relay_create(guc);
+	ret = guc_log_relay_create(log);
 	if (ret)
 		goto err;
 
 	mutex_lock(&i915->drm.struct_mutex);
-	ret = guc_log_runtime_create(guc);
+	ret = guc_log_runtime_create(log);
 	mutex_unlock(&i915->drm.struct_mutex);
 
 	if (ret)
 		goto err_relay;
 
-	ret = guc_log_relay_file_create(guc);
+	ret = guc_log_relay_file_create(log);
 	if (ret)
 		goto err_runtime;
 
@@ -707,16 +718,17 @@ int intel_guc_log_register(struct intel_guc *guc)
 
 err_runtime:
 	mutex_lock(&i915->drm.struct_mutex);
-	guc_log_runtime_destroy(guc);
+	guc_log_runtime_destroy(log);
 	mutex_unlock(&i915->drm.struct_mutex);
 err_relay:
-	guc_log_relay_destroy(guc);
+	guc_log_relay_destroy(log);
 err:
 	return ret;
 }
 
-void intel_guc_log_unregister(struct intel_guc *guc)
+void intel_guc_log_unregister(struct intel_guc_log *log)
 {
+	struct intel_guc *guc = log_to_guc(log);
 	struct drm_i915_private *i915 = guc_to_i915(guc);
 
 	/*
@@ -725,16 +737,17 @@ void intel_guc_log_unregister(struct intel_guc *guc)
 	 * 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(guc);
+	guc_flush_logs(log);
 
 	mutex_lock(&i915->drm.struct_mutex);
+
 	/* GuC logging is currently the only user of Guc2Host interrupts */
 	intel_runtime_pm_get(i915);
 	gen9_disable_guc_interrupts(i915);
 	intel_runtime_pm_put(i915);
 
-	guc_log_runtime_destroy(guc);
+	guc_log_runtime_destroy(log);
 	mutex_unlock(&i915->drm.struct_mutex);
 
-	guc_log_relay_destroy(guc);
+	guc_log_relay_destroy(log);
 }
diff --git a/drivers/gpu/drm/i915/intel_guc_log.h b/drivers/gpu/drm/i915/intel_guc_log.h
index 09dd2ef..6264bd5 100644
--- a/drivers/gpu/drm/i915/intel_guc_log.h
+++ b/drivers/gpu/drm/i915/intel_guc_log.h
@@ -25,11 +25,12 @@
 #ifndef _INTEL_GUC_LOG_H_
 #define _INTEL_GUC_LOG_H_
 
+#include <linux/mutex.h>
+#include <linux/relay.h>
 #include <linux/workqueue.h>
 
 #include "intel_guc_fwif.h"
 
-struct drm_i915_private;
 struct intel_guc;
 
 /*
@@ -59,12 +60,13 @@ struct intel_guc_log {
 	u32 flush_count[GUC_MAX_LOG_BUFFER];
 };
 
-int intel_guc_log_create(struct intel_guc *guc);
-void intel_guc_log_destroy(struct intel_guc *guc);
-void intel_guc_log_init_early(struct intel_guc *guc);
-int intel_guc_log_control_get(struct intel_guc *guc);
-int intel_guc_log_control_set(struct intel_guc *guc, u64 control_val);
-int intel_guc_log_register(struct intel_guc *guc);
-void intel_guc_log_unregister(struct intel_guc *guc);
+void intel_guc_log_init_early(struct intel_guc_log *log);
+int intel_guc_log_create(struct intel_guc_log *log);
+int intel_guc_log_register(struct intel_guc_log *log);
+void intel_guc_log_unregister(struct intel_guc_log *log);
+void intel_guc_log_destroy(struct intel_guc_log *log);
+
+int intel_guc_log_control_get(struct intel_guc_log *log);
+int intel_guc_log_control_set(struct intel_guc_log *log, u64 control);
 
 #endif
diff --git a/drivers/gpu/drm/i915/intel_uc.c b/drivers/gpu/drm/i915/intel_uc.c
index 6316548..104c03a 100644
--- a/drivers/gpu/drm/i915/intel_uc.c
+++ b/drivers/gpu/drm/i915/intel_uc.c
@@ -229,7 +229,7 @@ int intel_uc_register(struct drm_i915_private *i915)
 		return 0;
 
 	if (i915_modparams.guc_log_level)
-		ret = intel_guc_log_register(&i915->guc);
+		ret = intel_guc_log_register(&i915->guc.log);
 
 	return ret;
 }
@@ -240,7 +240,7 @@ void intel_uc_unregister(struct drm_i915_private *i915)
 		return;
 
 	if (i915_modparams.guc_log_level)
-		intel_guc_log_unregister(&i915->guc);
+		intel_guc_log_unregister(&i915->guc.log);
 }
 
 static int guc_enable_communication(struct intel_guc *guc)
-- 
1.9.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* ✓ Fi.CI.BAT: success for drm/i915/guc: Update syntax of GuC log functions (rev2)
  2018-03-14 14:45 [PATCH v2] drm/i915/guc: Update syntax of GuC log functions Michal Wajdeczko
@ 2018-03-14 16:07 ` Patchwork
  2018-03-14 16:56 ` [PATCH v2] drm/i915/guc: Update syntax of GuC log functions Michał Winiarski
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 8+ messages in thread
From: Patchwork @ 2018-03-14 16:07 UTC (permalink / raw)
  To: Michal Wajdeczko; +Cc: intel-gfx

== Series Details ==

Series: drm/i915/guc: Update syntax of GuC log functions (rev2)
URL   : https://patchwork.freedesktop.org/series/39859/
State : success

== Summary ==

Series 39859v2 drm/i915/guc: Update syntax of GuC log functions
https://patchwork.freedesktop.org/api/1.0/series/39859/revisions/2/mbox/

---- Known issues:

Test gem_mmap_gtt:
        Subgroup basic-small-bo-tiledx:
                fail       -> PASS       (fi-gdg-551) fdo#102575

fdo#102575 https://bugs.freedesktop.org/show_bug.cgi?id=102575

fi-bdw-5557u     total:288  pass:267  dwarn:0   dfail:0   fail:0   skip:21  time:433s
fi-bdw-gvtdvm    total:288  pass:264  dwarn:0   dfail:0   fail:0   skip:24  time:442s
fi-blb-e6850     total:288  pass:223  dwarn:1   dfail:0   fail:0   skip:64  time:382s
fi-bsw-n3050     total:288  pass:242  dwarn:0   dfail:0   fail:0   skip:46  time:542s
fi-bwr-2160      total:288  pass:183  dwarn:0   dfail:0   fail:0   skip:105 time:300s
fi-bxt-j4205     total:288  pass:259  dwarn:0   dfail:0   fail:0   skip:29  time:511s
fi-byt-j1900     total:288  pass:253  dwarn:0   dfail:0   fail:0   skip:35  time:518s
fi-byt-n2820     total:288  pass:249  dwarn:0   dfail:0   fail:0   skip:39  time:506s
fi-cfl-8700k     total:288  pass:260  dwarn:0   dfail:0   fail:0   skip:28  time:414s
fi-cfl-u         total:288  pass:262  dwarn:0   dfail:0   fail:0   skip:26  time:514s
fi-cnl-y3        total:288  pass:262  dwarn:0   dfail:0   fail:0   skip:26  time:601s
fi-elk-e7500     total:288  pass:229  dwarn:0   dfail:0   fail:0   skip:59  time:426s
fi-gdg-551       total:288  pass:180  dwarn:0   dfail:0   fail:0   skip:108 time:321s
fi-hsw-4770      total:288  pass:261  dwarn:0   dfail:0   fail:0   skip:27  time:403s
fi-ivb-3520m     total:288  pass:259  dwarn:0   dfail:0   fail:0   skip:29  time:474s
fi-ivb-3770      total:288  pass:255  dwarn:0   dfail:0   fail:0   skip:33  time:434s
fi-kbl-7500u     total:288  pass:263  dwarn:1   dfail:0   fail:0   skip:24  time:477s
fi-kbl-7567u     total:288  pass:268  dwarn:0   dfail:0   fail:0   skip:20  time:472s
fi-kbl-r         total:288  pass:261  dwarn:0   dfail:0   fail:0   skip:27  time:515s
fi-pnv-d510      total:288  pass:222  dwarn:1   dfail:0   fail:0   skip:65  time:656s
fi-skl-6260u     total:288  pass:268  dwarn:0   dfail:0   fail:0   skip:20  time:442s
fi-skl-6600u     total:288  pass:261  dwarn:0   dfail:0   fail:0   skip:27  time:530s
fi-skl-6700hq    total:288  pass:262  dwarn:0   dfail:0   fail:0   skip:26  time:542s
fi-skl-6700k2    total:288  pass:264  dwarn:0   dfail:0   fail:0   skip:24  time:514s
fi-skl-6770hq    total:288  pass:268  dwarn:0   dfail:0   fail:0   skip:20  time:492s
fi-skl-guc       total:288  pass:260  dwarn:0   dfail:0   fail:0   skip:28  time:431s
fi-snb-2520m     total:288  pass:248  dwarn:0   dfail:0   fail:0   skip:40  time:586s
fi-snb-2600      total:288  pass:248  dwarn:0   dfail:0   fail:0   skip:40  time:403s
Blacklisted hosts:
fi-cnl-drrs      total:288  pass:257  dwarn:3   dfail:0   fail:0   skip:28  time:523s

f25b08dcf09c72da5a530dca49a4b93bd6d75395 drm-tip: 2018y-03m-14d-14h-33m-13s UTC integration manifest
5f735ea22b06 drm/i915/guc: Update syntax of GuC log functions

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_8345/issues.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v2] drm/i915/guc: Update syntax of GuC log functions
  2018-03-14 14:45 [PATCH v2] drm/i915/guc: Update syntax of GuC log functions Michal Wajdeczko
  2018-03-14 16:07 ` ✓ Fi.CI.BAT: success for drm/i915/guc: Update syntax of GuC log functions (rev2) Patchwork
@ 2018-03-14 16:56 ` Michał Winiarski
  2018-03-14 17:20   ` Michal Wajdeczko
  2018-03-15  0:54 ` ✗ Fi.CI.IGT: failure for drm/i915/guc: Update syntax of GuC log functions (rev2) Patchwork
  2018-03-15 11:02 ` [PATCH v2] drm/i915/guc: Update syntax of GuC log functions Chris Wilson
  3 siblings, 1 reply; 8+ messages in thread
From: Michał Winiarski @ 2018-03-14 16:56 UTC (permalink / raw)
  To: Michal Wajdeczko; +Cc: intel-gfx

On Wed, Mar 14, 2018 at 02:45:39PM +0000, Michal Wajdeczko wrote:
> We moved GuC log related data and code to separate files and
> definition but we didn't change functions syntax to follow
> object-verb pattern. Let's fix that before we continue with
> next round of code refactoring.
> 
> v2: rebased
> 
> Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
> Cc: Michal Winiarski <michal.winiarski@intel.com>
> Cc: Chris Wilson <chris@chris-wilson.co.uk>
> Reviewed-by: Michał Winiarski <michal.winiarski@intel.com>

One more comment, since I just noticed this while rebasing my guc patches on
this rename.

What about guc actions?
We now have guc_log_flush_complete, guc_log_flush and guc_log_control that are
using intel_guc rather than intel_guc_log.
Which is reasonable - because those don't touch guc->log, but it's also
inconsistent (I'm also adding guc_log_flush_irq_enable).

If you want to follow object-verb pattern, you should either rename or pass
intel_guc_log and do the log_to_guc dance there.

-Michał

> ---
>  drivers/gpu/drm/i915/i915_debugfs.c  |   4 +-
>  drivers/gpu/drm/i915/intel_guc.c     |   8 +-
>  drivers/gpu/drm/i915/intel_guc_log.c | 203 +++++++++++++++++++----------------
>  drivers/gpu/drm/i915/intel_guc_log.h |  18 ++--
>  drivers/gpu/drm/i915/intel_uc.c      |   4 +-
>  5 files changed, 126 insertions(+), 111 deletions(-)
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v2] drm/i915/guc: Update syntax of GuC log functions
  2018-03-14 16:56 ` [PATCH v2] drm/i915/guc: Update syntax of GuC log functions Michał Winiarski
@ 2018-03-14 17:20   ` Michal Wajdeczko
  2018-03-14 17:53     ` Michal Wajdeczko
  0 siblings, 1 reply; 8+ messages in thread
From: Michal Wajdeczko @ 2018-03-14 17:20 UTC (permalink / raw)
  To: Michał Winiarski; +Cc: intel-gfx

On Wed, 14 Mar 2018 17:56:01 +0100, Michał Winiarski  
<michal.winiarski@intel.com> wrote:

> On Wed, Mar 14, 2018 at 02:45:39PM +0000, Michal Wajdeczko wrote:
>> We moved GuC log related data and code to separate files and
>> definition but we didn't change functions syntax to follow
>> object-verb pattern. Let's fix that before we continue with
>> next round of code refactoring.
>>
>> v2: rebased
>>
>> Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
>> Cc: Michal Winiarski <michal.winiarski@intel.com>
>> Cc: Chris Wilson <chris@chris-wilson.co.uk>
>> Reviewed-by: Michał Winiarski <michal.winiarski@intel.com>
>
> One more comment, since I just noticed this while rebasing my guc  
> patches on
> this rename.
>
> What about guc actions?
> We now have guc_log_flush_complete, guc_log_flush and guc_log_control  
> that are
> using intel_guc rather than intel_guc_log.
> Which is reasonable - because those don't touch guc->log, but it's also
> inconsistent (I'm also adding guc_log_flush_irq_enable).
>
> If you want to follow object-verb pattern, you should either rename or  
> pass
> intel_guc_log and do the log_to_guc dance there.

I was planning to rename them in next patch as follows:

guc_log_flush_complete -> guc_send_flush_log_complete
guc_log_flush          -> guc_send_flush_log
guc_log_control        -> guc_send_control_log

/Michal
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v2] drm/i915/guc: Update syntax of GuC log functions
  2018-03-14 17:20   ` Michal Wajdeczko
@ 2018-03-14 17:53     ` Michal Wajdeczko
  2018-03-14 18:28       ` Michał Winiarski
  0 siblings, 1 reply; 8+ messages in thread
From: Michal Wajdeczko @ 2018-03-14 17:53 UTC (permalink / raw)
  To: Michał Winiarski, Michal Wajdeczko; +Cc: intel-gfx

On Wed, 14 Mar 2018 18:20:18 +0100, Michal Wajdeczko  
<michal.wajdeczko@intel.com> wrote:

> On Wed, 14 Mar 2018 17:56:01 +0100, Michał Winiarski  
> <michal.winiarski@intel.com> wrote:
>
>> On Wed, Mar 14, 2018 at 02:45:39PM +0000, Michal Wajdeczko wrote:
>>> We moved GuC log related data and code to separate files and
>>> definition but we didn't change functions syntax to follow
>>> object-verb pattern. Let's fix that before we continue with
>>> next round of code refactoring.
>>>
>>> v2: rebased
>>>
>>> Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
>>> Cc: Michal Winiarski <michal.winiarski@intel.com>
>>> Cc: Chris Wilson <chris@chris-wilson.co.uk>
>>> Reviewed-by: Michał Winiarski <michal.winiarski@intel.com>
>>
>> One more comment, since I just noticed this while rebasing my guc  
>> patches on
>> this rename.
>>
>> What about guc actions?
>> We now have guc_log_flush_complete, guc_log_flush and guc_log_control  
>> that are
>> using intel_guc rather than intel_guc_log.
>> Which is reasonable - because those don't touch guc->log, but it's also
>> inconsistent (I'm also adding guc_log_flush_irq_enable).
>>
>> If you want to follow object-verb pattern, you should either rename or  
>> pass
>> intel_guc_log and do the log_to_guc dance there.
>
> I was planning to rename them in next patch as follows:
>
> guc_log_flush_complete -> guc_send_flush_log_complete
> guc_log_flush          -> guc_send_flush_log
> guc_log_control        -> guc_send_control_log

or (to match naming used in intel_guc_ct.c)

guc_log_flush_complete -> guc_action_flush_log_complete
guc_log_flush          -> guc_action_flush_log
guc_log_control        -> guc_action_control_log

or maybe other ideas ?
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v2] drm/i915/guc: Update syntax of GuC log functions
  2018-03-14 17:53     ` Michal Wajdeczko
@ 2018-03-14 18:28       ` Michał Winiarski
  0 siblings, 0 replies; 8+ messages in thread
From: Michał Winiarski @ 2018-03-14 18:28 UTC (permalink / raw)
  To: Michal Wajdeczko; +Cc: intel-gfx

On Wed, Mar 14, 2018 at 06:53:23PM +0100, Michal Wajdeczko wrote:
> On Wed, 14 Mar 2018 18:20:18 +0100, Michal Wajdeczko
> <michal.wajdeczko@intel.com> wrote:
> 
> > On Wed, 14 Mar 2018 17:56:01 +0100, Michał Winiarski
> > <michal.winiarski@intel.com> wrote:
> > 
> > > On Wed, Mar 14, 2018 at 02:45:39PM +0000, Michal Wajdeczko wrote:
> > > > We moved GuC log related data and code to separate files and
> > > > definition but we didn't change functions syntax to follow
> > > > object-verb pattern. Let's fix that before we continue with
> > > > next round of code refactoring.
> > > > 
> > > > v2: rebased
> > > > 
> > > > Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
> > > > Cc: Michal Winiarski <michal.winiarski@intel.com>
> > > > Cc: Chris Wilson <chris@chris-wilson.co.uk>
> > > > Reviewed-by: Michał Winiarski <michal.winiarski@intel.com>
> > > 
> > > One more comment, since I just noticed this while rebasing my guc
> > > patches on
> > > this rename.
> > > 
> > > What about guc actions?
> > > We now have guc_log_flush_complete, guc_log_flush and
> > > guc_log_control that are
> > > using intel_guc rather than intel_guc_log.
> > > Which is reasonable - because those don't touch guc->log, but it's also
> > > inconsistent (I'm also adding guc_log_flush_irq_enable).
> > > 
> > > If you want to follow object-verb pattern, you should either rename
> > > or pass
> > > intel_guc_log and do the log_to_guc dance there.
> > 
> > I was planning to rename them in next patch as follows:
> > 
> > guc_log_flush_complete -> guc_send_flush_log_complete
> > guc_log_flush          -> guc_send_flush_log
> > guc_log_control        -> guc_send_control_log
> 
> or (to match naming used in intel_guc_ct.c)
> 
> guc_log_flush_complete -> guc_action_flush_log_complete
> guc_log_flush          -> guc_action_flush_log
> guc_log_control        -> guc_action_control_log
> 
> or maybe other ideas ?

I don't mind having it in a follow-up patch.
I'd pick guc_action_*, but both schemes sound good so it's up to you.

-Michał
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 8+ messages in thread

* ✗ Fi.CI.IGT: failure for drm/i915/guc: Update syntax of GuC log functions (rev2)
  2018-03-14 14:45 [PATCH v2] drm/i915/guc: Update syntax of GuC log functions Michal Wajdeczko
  2018-03-14 16:07 ` ✓ Fi.CI.BAT: success for drm/i915/guc: Update syntax of GuC log functions (rev2) Patchwork
  2018-03-14 16:56 ` [PATCH v2] drm/i915/guc: Update syntax of GuC log functions Michał Winiarski
@ 2018-03-15  0:54 ` Patchwork
  2018-03-15 11:02 ` [PATCH v2] drm/i915/guc: Update syntax of GuC log functions Chris Wilson
  3 siblings, 0 replies; 8+ messages in thread
From: Patchwork @ 2018-03-15  0:54 UTC (permalink / raw)
  To: Michal Wajdeczko; +Cc: intel-gfx

== Series Details ==

Series: drm/i915/guc: Update syntax of GuC log functions (rev2)
URL   : https://patchwork.freedesktop.org/series/39859/
State : failure

== Summary ==

---- Possible new issues:

Test kms_mmio_vs_cs_flip:
        Subgroup setplane_vs_cs_flip:
                pass       -> FAIL       (shard-apl)

---- Known issues:

Test gem_eio:
        Subgroup in-flight:
                incomplete -> PASS       (shard-apl) fdo#105341 +1
Test kms_chv_cursor_fail:
        Subgroup pipe-c-128x128-bottom-edge:
                fail       -> PASS       (shard-apl) fdo#105185
Test kms_flip:
        Subgroup plain-flip-fb-recreate-interruptible:
                pass       -> FAIL       (shard-hsw) fdo#100368
Test kms_flip_tiling:
        Subgroup flip-changes-tiling-yf:
                pass       -> FAIL       (shard-apl) fdo#103822

fdo#105341 https://bugs.freedesktop.org/show_bug.cgi?id=105341
fdo#105185 https://bugs.freedesktop.org/show_bug.cgi?id=105185
fdo#100368 https://bugs.freedesktop.org/show_bug.cgi?id=100368
fdo#103822 https://bugs.freedesktop.org/show_bug.cgi?id=103822

shard-apl        total:3401 pass:1793 dwarn:1   dfail:0   fail:9   skip:1596 time:12912s
shard-hsw        total:3444 pass:1768 dwarn:1   dfail:0   fail:3   skip:1671 time:11928s
shard-snb        total:3444 pass:1360 dwarn:1   dfail:0   fail:2   skip:2081 time:7284s
Blacklisted hosts:
shard-kbl        total:3335 pass:1874 dwarn:6   dfail:0   fail:9   skip:1443 time:8997s

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_8345/shards.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v2] drm/i915/guc: Update syntax of GuC log functions
  2018-03-14 14:45 [PATCH v2] drm/i915/guc: Update syntax of GuC log functions Michal Wajdeczko
                   ` (2 preceding siblings ...)
  2018-03-15  0:54 ` ✗ Fi.CI.IGT: failure for drm/i915/guc: Update syntax of GuC log functions (rev2) Patchwork
@ 2018-03-15 11:02 ` Chris Wilson
  3 siblings, 0 replies; 8+ messages in thread
From: Chris Wilson @ 2018-03-15 11:02 UTC (permalink / raw)
  To: Michal Wajdeczko, intel-gfx

Quoting Michal Wajdeczko (2018-03-14 14:45:39)
> We moved GuC log related data and code to separate files and
> definition but we didn't change functions syntax to follow
> object-verb pattern. Let's fix that before we continue with
> next round of code refactoring.
> 
> v2: rebased
> 
> Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
> Cc: Michal Winiarski <michal.winiarski@intel.com>
> Cc: Chris Wilson <chris@chris-wilson.co.uk>
> Reviewed-by: Michał Winiarski <michal.winiarski@intel.com>

And pushed, thanks for the patch and review.
-Chris
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2018-03-15 11:02 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-03-14 14:45 [PATCH v2] drm/i915/guc: Update syntax of GuC log functions Michal Wajdeczko
2018-03-14 16:07 ` ✓ Fi.CI.BAT: success for drm/i915/guc: Update syntax of GuC log functions (rev2) Patchwork
2018-03-14 16:56 ` [PATCH v2] drm/i915/guc: Update syntax of GuC log functions Michał Winiarski
2018-03-14 17:20   ` Michal Wajdeczko
2018-03-14 17:53     ` Michal Wajdeczko
2018-03-14 18:28       ` Michał Winiarski
2018-03-15  0:54 ` ✗ Fi.CI.IGT: failure for drm/i915/guc: Update syntax of GuC log functions (rev2) Patchwork
2018-03-15 11:02 ` [PATCH v2] drm/i915/guc: Update syntax of GuC log functions Chris Wilson

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.