All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v5 0/3] Improve crc-core driver interface
@ 2018-08-13 15:11 Mahesh Kumar
  2018-08-13 15:11 ` [PATCH v1 1/3] drm/vkms/crc: Implement verify_crc_source callback Mahesh Kumar
                   ` (9 more replies)
  0 siblings, 10 replies; 17+ messages in thread
From: Mahesh Kumar @ 2018-08-13 15:11 UTC (permalink / raw)
  To: intel-gfx; +Cc: dri-devel

This series improves crc-core <-> driver interface.
This series adds following functionality in the crc-core
 - Now control node will print all the available sources if
   implemented by driver along with current source.
 - Setting of sorce will fail if provided source is not supported
 - cleanup of crtc_crc_open function first allocate memory before
   enabling CRC generation
 - Don't block open() call instead wait in crc read call.

Following IGT will fail due to crc-core <-> driver interface change
igt@kms_pipe_crc_basic@bad-source <now setting bad-source itself will fail>
ig@kms_pipe_crc_basic@nonblocking-crc-pipe-X 
ig@kms_pipe_crc_basic@nonblocking-crc-pipe-X-frame-sequence
In nonblocking crc tests we'll get lesser crc's due to skipping crc

AMD/Rockchip/rcar code path is not validated and may need inputs

Changes:
- Rebase on top of VKMS driver

Cc: dri-devel@lists.freedesktop.org

Mahesh Kumar (3):
  drm/vkms/crc: Implement verify_crc_source callback
  drm/crc: Cleanup crtc_crc_open function
  Revert "drm: crc: Wait for a frame before returning from open()"

 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h  |  3 +-
 .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crc.c  |  4 +-
 drivers/gpu/drm/drm_debugfs_crc.c                  | 71 ++++++++--------------
 drivers/gpu/drm/i915/intel_drv.h                   |  3 +-
 drivers/gpu/drm/i915/intel_pipe_crc.c              |  4 +-
 drivers/gpu/drm/rcar-du/rcar_du_crtc.c             |  4 +-
 drivers/gpu/drm/rockchip/rockchip_drm_vop.c        |  6 +-
 drivers/gpu/drm/vkms/vkms_crc.c                    | 41 ++++++++++---
 drivers/gpu/drm/vkms/vkms_crtc.c                   |  1 +
 drivers/gpu/drm/vkms/vkms_drv.h                    |  5 +-
 include/drm/drm_crtc.h                             |  3 +-
 11 files changed, 71 insertions(+), 74 deletions(-)

-- 
2.16.2

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

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

* [PATCH v1 1/3] drm/vkms/crc: Implement verify_crc_source callback
  2018-08-13 15:11 [PATCH v5 0/3] Improve crc-core driver interface Mahesh Kumar
@ 2018-08-13 15:11 ` Mahesh Kumar
  2018-08-14  3:01   ` [PATCH V2 " Mahesh Kumar
  2018-08-13 15:11 ` [PATCH v5 2/3] drm/crc: Cleanup crtc_crc_open function Mahesh Kumar
                   ` (8 subsequent siblings)
  9 siblings, 1 reply; 17+ messages in thread
From: Mahesh Kumar @ 2018-08-13 15:11 UTC (permalink / raw)
  To: intel-gfx; +Cc: Haneen Mohammed, Mahesh Kumar, dri-devel

This patch implements "verify_crc_source" callback function for
Virtual KMS drm driver.

Cc: dri-devel@lists.freedesktop.org
Cc: Haneen Mohammed <hamohammed.sa@gmail.com>
Signed-off-by: Mahesh Kumar <mahesh1.kumar@intel.com>
---
 drivers/gpu/drm/vkms/vkms_crc.c  | 36 ++++++++++++++++++++++++++++++++----
 drivers/gpu/drm/vkms/vkms_crtc.c |  1 +
 drivers/gpu/drm/vkms/vkms_drv.h  |  2 ++
 3 files changed, 35 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/vkms/vkms_crc.c b/drivers/gpu/drm/vkms/vkms_crc.c
index 37d717f38e3c..ce5ee0461f80 100644
--- a/drivers/gpu/drm/vkms/vkms_crc.c
+++ b/drivers/gpu/drm/vkms/vkms_crc.c
@@ -70,6 +70,35 @@ void vkms_crc_work_handle(struct work_struct *work)
 	drm_crtc_add_crc_entry(crtc, true, crtc_state->n_frame, &crc32);
 }
 
+static int vkms_crc_parse_source(const char *src_name, bool *enabled)
+{
+	int ret = 0;
+
+	if (!src_name) {
+		*enabled = false;
+	} else if (strcmp(src_name, "auto") == 0) {
+		*enabled = true;
+	} else {
+		*enabled = false;
+		ret = -EINVAL;
+	}
+
+	return ret;
+}
+
+int vkms_verify_crc_source(struct drm_crtc *crtc, const char *src_name,
+			   size_t *values_cnt)
+{
+	bool enabled;
+
+	if (vkms_crc_parse_source(src_name, &enabled) < 0) {
+		DRM_DEBUG_DRIVER("unknown source %s\n", src_name);
+		return -EINVAL;
+	}
+
+	return 0;
+}
+
 int vkms_set_crc_source(struct drm_crtc *crtc, const char *src_name,
 			size_t *values_cnt)
 {
@@ -78,10 +107,9 @@ int vkms_set_crc_source(struct drm_crtc *crtc, const char *src_name,
 	unsigned long flags;
 	int ret = 0;
 
-	if (src_name && strcmp(src_name, "auto") == 0)
-		enabled = true;
-	else if (src_name)
-		ret = -EINVAL;
+	ret = vkms_crc_parse_source(src_name, &enabled);
+	if (ret)
+		return ret;
 
 	*values_cnt = 1;
 
diff --git a/drivers/gpu/drm/vkms/vkms_crtc.c b/drivers/gpu/drm/vkms/vkms_crtc.c
index bfe6e0312cc4..9d0b1a325a78 100644
--- a/drivers/gpu/drm/vkms/vkms_crtc.c
+++ b/drivers/gpu/drm/vkms/vkms_crtc.c
@@ -140,6 +140,7 @@ static const struct drm_crtc_funcs vkms_crtc_funcs = {
 	.enable_vblank		= vkms_enable_vblank,
 	.disable_vblank		= vkms_disable_vblank,
 	.set_crc_source		= vkms_set_crc_source,
+	.verify_crc_source	= vkms_verify_crc_source,
 };
 
 static void vkms_crtc_atomic_enable(struct drm_crtc *crtc,
diff --git a/drivers/gpu/drm/vkms/vkms_drv.h b/drivers/gpu/drm/vkms/vkms_drv.h
index f156c930366a..090c5e4f5544 100644
--- a/drivers/gpu/drm/vkms/vkms_drv.h
+++ b/drivers/gpu/drm/vkms/vkms_drv.h
@@ -125,6 +125,8 @@ void vkms_gem_vunmap(struct drm_gem_object *obj);
 /* CRC Support */
 int vkms_set_crc_source(struct drm_crtc *crtc, const char *src_name,
 			size_t *values_cnt);
+int vkms_verify_crc_source(struct drm_crtc *crtc, const char *source_name,
+			   size_t *values_cnt);
 void vkms_crc_work_handle(struct work_struct *work);
 
 #endif /* _VKMS_DRV_H_ */
-- 
2.16.2

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

* [PATCH v5 2/3] drm/crc: Cleanup crtc_crc_open function
  2018-08-13 15:11 [PATCH v5 0/3] Improve crc-core driver interface Mahesh Kumar
  2018-08-13 15:11 ` [PATCH v1 1/3] drm/vkms/crc: Implement verify_crc_source callback Mahesh Kumar
@ 2018-08-13 15:11 ` Mahesh Kumar
  2018-08-13 15:11 ` [PATCH v4 3/3] Revert "drm: crc: Wait for a frame before returning from open()" Mahesh Kumar
                   ` (7 subsequent siblings)
  9 siblings, 0 replies; 17+ messages in thread
From: Mahesh Kumar @ 2018-08-13 15:11 UTC (permalink / raw)
  To: intel-gfx; +Cc: Haneen Mohammed, Laurent Pinchart, dri-devel

This patch make changes to allocate crc-entries buffer before
enabling CRC generation.
It moves all the failure check early in the function before setting
the source or memory allocation.
Now set_crc_source takes only two variable inputs, values_cnt we
already gets as part of verify_crc_source.

Changes since V1:
 - refactor code to use single spin lock
Changes since V2:
 - rebase
Changes since V3:
 - rebase on top of VKMS driver

Signed-off-by: Mahesh Kumar <mahesh1.kumar@intel.com>
Cc: dri-devel@lists.freedesktop.org
Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Cc: Haneen Mohammed <hamohammed.sa@gmail.com>
Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> (V2)
Acked-by: Leo Li <sunpeng.li@amd.com> (V2)
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> (V3)
---
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h  |  3 +-
 .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crc.c  |  4 +-
 drivers/gpu/drm/drm_debugfs_crc.c                  | 61 ++++++++++------------
 drivers/gpu/drm/i915/intel_drv.h                   |  3 +-
 drivers/gpu/drm/i915/intel_pipe_crc.c              |  4 +-
 drivers/gpu/drm/rcar-du/rcar_du_crtc.c             |  4 +-
 drivers/gpu/drm/rockchip/rockchip_drm_vop.c        |  6 +--
 drivers/gpu/drm/vkms/vkms_crc.c                    |  5 +-
 drivers/gpu/drm/vkms/vkms_drv.h                    |  3 +-
 include/drm/drm_crtc.h                             |  3 +-
 10 files changed, 39 insertions(+), 57 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h
index e43ed064dc46..54056d180003 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h
@@ -258,8 +258,7 @@ amdgpu_dm_remove_sink_from_freesync_module(struct drm_connector *connector);
 
 /* amdgpu_dm_crc.c */
 #ifdef CONFIG_DEBUG_FS
-int amdgpu_dm_crtc_set_crc_source(struct drm_crtc *crtc, const char *src_name,
-				  size_t *values_cnt);
+int amdgpu_dm_crtc_set_crc_source(struct drm_crtc *crtc, const char *src_name);
 int amdgpu_dm_crtc_verify_crc_source(struct drm_crtc *crtc,
 				     const char *src_name,
 				     size_t *values_cnt);
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crc.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crc.c
index dfcca594d52a..e7ad528f5853 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crc.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crc.c
@@ -62,8 +62,7 @@ amdgpu_dm_crtc_verify_crc_source(struct drm_crtc *crtc, const char *src_name,
 	return 0;
 }
 
-int amdgpu_dm_crtc_set_crc_source(struct drm_crtc *crtc, const char *src_name,
-			   size_t *values_cnt)
+int amdgpu_dm_crtc_set_crc_source(struct drm_crtc *crtc, const char *src_name)
 {
 	struct dm_crtc_state *crtc_state = to_dm_crtc_state(crtc->state);
 	struct dc_stream_state *stream_state = crtc_state->stream;
@@ -99,7 +98,6 @@ int amdgpu_dm_crtc_set_crc_source(struct drm_crtc *crtc, const char *src_name,
 			return -EINVAL;
 	}
 
-	*values_cnt = 3;
 	/* Reset crc_skipped on dm state */
 	crtc_state->crc_skip_count = 0;
 	return 0;
diff --git a/drivers/gpu/drm/drm_debugfs_crc.c b/drivers/gpu/drm/drm_debugfs_crc.c
index d7e626331eca..3e0a2cfaa35c 100644
--- a/drivers/gpu/drm/drm_debugfs_crc.c
+++ b/drivers/gpu/drm/drm_debugfs_crc.c
@@ -127,11 +127,9 @@ static ssize_t crc_control_write(struct file *file, const char __user *ubuf,
 	if (source[len] == '\n')
 		source[len] = '\0';
 
-	if (crtc->funcs->verify_crc_source) {
-		ret = crtc->funcs->verify_crc_source(crtc, source, &values_cnt);
-		if (ret)
-			return ret;
-	}
+	ret = crtc->funcs->verify_crc_source(crtc, source, &values_cnt);
+	if (ret)
+		return ret;
 
 	spin_lock_irq(&crc->lock);
 
@@ -197,40 +195,40 @@ static int crtc_crc_open(struct inode *inode, struct file *filep)
 			return ret;
 	}
 
+	ret = crtc->funcs->verify_crc_source(crtc, crc->source, &values_cnt);
+	if (ret)
+		return ret;
+
+	if (WARN_ON(values_cnt > DRM_MAX_CRC_NR))
+		return -EINVAL;
+
+	if (WARN_ON(values_cnt == 0))
+		return -EINVAL;
+
+	entries = kcalloc(DRM_CRC_ENTRIES_NR, sizeof(*entries), GFP_KERNEL);
+	if (!entries)
+		return -ENOMEM;
+
 	spin_lock_irq(&crc->lock);
-	if (!crc->opened)
+	if (!crc->opened) {
 		crc->opened = true;
-	else
+		crc->entries = entries;
+		crc->values_cnt = values_cnt;
+	} else {
 		ret = -EBUSY;
+	}
 	spin_unlock_irq(&crc->lock);
 
-	if (ret)
+	if (ret) {
+		kfree(entries);
 		return ret;
+	}
 
-	ret = crtc->funcs->set_crc_source(crtc, crc->source, &values_cnt);
+	ret = crtc->funcs->set_crc_source(crtc, crc->source);
 	if (ret)
 		goto err;
 
-	if (WARN_ON(values_cnt > DRM_MAX_CRC_NR)) {
-		ret = -EINVAL;
-		goto err_disable;
-	}
-
-	if (WARN_ON(values_cnt == 0)) {
-		ret = -EINVAL;
-		goto err_disable;
-	}
-
-	entries = kcalloc(DRM_CRC_ENTRIES_NR, sizeof(*entries), GFP_KERNEL);
-	if (!entries) {
-		ret = -ENOMEM;
-		goto err_disable;
-	}
-
 	spin_lock_irq(&crc->lock);
-	crc->entries = entries;
-	crc->values_cnt = values_cnt;
-
 	/*
 	 * Only return once we got a first frame, so userspace doesn't have to
 	 * guess when this particular piece of HW will be ready to start
@@ -247,7 +245,7 @@ static int crtc_crc_open(struct inode *inode, struct file *filep)
 	return 0;
 
 err_disable:
-	crtc->funcs->set_crc_source(crtc, NULL, &values_cnt);
+	crtc->funcs->set_crc_source(crtc, NULL);
 err:
 	spin_lock_irq(&crc->lock);
 	crtc_crc_cleanup(crc);
@@ -259,9 +257,8 @@ static int crtc_crc_release(struct inode *inode, struct file *filep)
 {
 	struct drm_crtc *crtc = filep->f_inode->i_private;
 	struct drm_crtc_crc *crc = &crtc->crc;
-	size_t values_cnt;
 
-	crtc->funcs->set_crc_source(crtc, NULL, &values_cnt);
+	crtc->funcs->set_crc_source(crtc, NULL);
 
 	spin_lock_irq(&crc->lock);
 	crtc_crc_cleanup(crc);
@@ -367,7 +364,7 @@ int drm_debugfs_crtc_crc_add(struct drm_crtc *crtc)
 {
 	struct dentry *crc_ent, *ent;
 
-	if (!crtc->funcs->set_crc_source)
+	if (!crtc->funcs->set_crc_source || !crtc->funcs->verify_crc_source)
 		return 0;
 
 	crc_ent = debugfs_create_dir("crc", crtc->debugfs_entry);
diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
index 7b984aefce98..2cb8d8007a50 100644
--- a/drivers/gpu/drm/i915/intel_drv.h
+++ b/drivers/gpu/drm/i915/intel_drv.h
@@ -2178,8 +2178,7 @@ void lspcon_wait_pcon_mode(struct intel_lspcon *lspcon);
 
 /* intel_pipe_crc.c */
 #ifdef CONFIG_DEBUG_FS
-int intel_crtc_set_crc_source(struct drm_crtc *crtc, const char *source_name,
-			      size_t *values_cnt);
+int intel_crtc_set_crc_source(struct drm_crtc *crtc, const char *source_name);
 int intel_crtc_verify_crc_source(struct drm_crtc *crtc,
 				 const char *source_name, size_t *values_cnt);
 const char *const *intel_crtc_get_crc_sources(struct drm_crtc *crtc,
diff --git a/drivers/gpu/drm/i915/intel_pipe_crc.c b/drivers/gpu/drm/i915/intel_pipe_crc.c
index 83f9ade0cd81..f3c9010e332a 100644
--- a/drivers/gpu/drm/i915/intel_pipe_crc.c
+++ b/drivers/gpu/drm/i915/intel_pipe_crc.c
@@ -583,8 +583,7 @@ int intel_crtc_verify_crc_source(struct drm_crtc *crtc, const char *source_name,
 	return -EINVAL;
 }
 
-int intel_crtc_set_crc_source(struct drm_crtc *crtc, const char *source_name,
-			      size_t *values_cnt)
+int intel_crtc_set_crc_source(struct drm_crtc *crtc, const char *source_name)
 {
 	struct drm_i915_private *dev_priv = to_i915(crtc->dev);
 	struct intel_pipe_crc *pipe_crc = &dev_priv->pipe_crc[crtc->index];
@@ -623,7 +622,6 @@ int intel_crtc_set_crc_source(struct drm_crtc *crtc, const char *source_name,
 	}
 
 	pipe_crc->skipped = 0;
-	*values_cnt = 5;
 
 out:
 	intel_display_power_put(dev_priv, power_domain);
diff --git a/drivers/gpu/drm/rcar-du/rcar_du_crtc.c b/drivers/gpu/drm/rcar-du/rcar_du_crtc.c
index 57db868da4fe..8a9e5e6f16b4 100644
--- a/drivers/gpu/drm/rcar-du/rcar_du_crtc.c
+++ b/drivers/gpu/drm/rcar-du/rcar_du_crtc.c
@@ -887,8 +887,7 @@ const char *const *rcar_du_crtc_get_crc_sources(struct drm_crtc *crtc,
 }
 
 static int rcar_du_crtc_set_crc_source(struct drm_crtc *crtc,
-				       const char *source_name,
-				       size_t *values_cnt)
+				       const char *source_name)
 {
 	struct rcar_du_crtc *rcrtc = to_rcar_crtc(crtc);
 	struct drm_modeset_acquire_ctx ctx;
@@ -903,7 +902,6 @@ static int rcar_du_crtc_set_crc_source(struct drm_crtc *crtc,
 		return ret;
 
 	index = ret;
-	*values_cnt = 1;
 
 	/* Perform an atomic commit to set the CRC source. */
 	drm_modeset_acquire_init(&ctx, 0);
diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c
index c9a5ea38e86b..38f8cae7ef51 100644
--- a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c
+++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c
@@ -1111,7 +1111,7 @@ static struct drm_connector *vop_get_edp_connector(struct vop *vop)
 }
 
 static int vop_crtc_set_crc_source(struct drm_crtc *crtc,
-				   const char *source_name, size_t *values_cnt)
+				   const char *source_name)
 {
 	struct vop *vop = to_vop(crtc);
 	struct drm_connector *connector;
@@ -1121,8 +1121,6 @@ static int vop_crtc_set_crc_source(struct drm_crtc *crtc,
 	if (!connector)
 		return -EINVAL;
 
-	*values_cnt = 3;
-
 	if (source_name && strcmp(source_name, "auto") == 0)
 		ret = analogix_dp_start_crc(connector);
 	else if (!source_name)
@@ -1146,7 +1144,7 @@ vop_crtc_verify_crc_source(struct drm_crtc *crtc, const char *source_name,
 
 #else
 static int vop_crtc_set_crc_source(struct drm_crtc *crtc,
-				   const char *source_name, size_t *values_cnt)
+				   const char *source_name)
 {
 	return -ENODEV;
 }
diff --git a/drivers/gpu/drm/vkms/vkms_crc.c b/drivers/gpu/drm/vkms/vkms_crc.c
index ce5ee0461f80..44775434945f 100644
--- a/drivers/gpu/drm/vkms/vkms_crc.c
+++ b/drivers/gpu/drm/vkms/vkms_crc.c
@@ -99,8 +99,7 @@ int vkms_verify_crc_source(struct drm_crtc *crtc, const char *src_name,
 	return 0;
 }
 
-int vkms_set_crc_source(struct drm_crtc *crtc, const char *src_name,
-			size_t *values_cnt)
+int vkms_set_crc_source(struct drm_crtc *crtc, const char *src_name)
 {
 	struct vkms_output *out = drm_crtc_to_vkms_output(crtc);
 	bool enabled = false;
@@ -111,8 +110,6 @@ int vkms_set_crc_source(struct drm_crtc *crtc, const char *src_name,
 	if (ret)
 		return ret;
 
-	*values_cnt = 1;
-
 	/* make sure nothing is scheduled on crtc workq */
 	flush_workqueue(out->crc_workq);
 
diff --git a/drivers/gpu/drm/vkms/vkms_drv.h b/drivers/gpu/drm/vkms/vkms_drv.h
index 090c5e4f5544..2017a2ccc43d 100644
--- a/drivers/gpu/drm/vkms/vkms_drv.h
+++ b/drivers/gpu/drm/vkms/vkms_drv.h
@@ -123,8 +123,7 @@ int vkms_gem_vmap(struct drm_gem_object *obj);
 void vkms_gem_vunmap(struct drm_gem_object *obj);
 
 /* CRC Support */
-int vkms_set_crc_source(struct drm_crtc *crtc, const char *src_name,
-			size_t *values_cnt);
+int vkms_set_crc_source(struct drm_crtc *crtc, const char *src_name);
 int vkms_verify_crc_source(struct drm_crtc *crtc, const char *source_name,
 			   size_t *values_cnt);
 void vkms_crc_work_handle(struct work_struct *work);
diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h
index f2dd180a867a..b21437bc95bf 100644
--- a/include/drm/drm_crtc.h
+++ b/include/drm/drm_crtc.h
@@ -744,8 +744,7 @@ struct drm_crtc_funcs {
 	 *
 	 * 0 on success or a negative error code on failure.
 	 */
-	int (*set_crc_source)(struct drm_crtc *crtc, const char *source,
-			      size_t *values_cnt);
+	int (*set_crc_source)(struct drm_crtc *crtc, const char *source);
 	/**
 	 * @verify_crc_source:
 	 *
-- 
2.16.2

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

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

* [PATCH v4 3/3] Revert "drm: crc: Wait for a frame before returning from open()"
  2018-08-13 15:11 [PATCH v5 0/3] Improve crc-core driver interface Mahesh Kumar
  2018-08-13 15:11 ` [PATCH v1 1/3] drm/vkms/crc: Implement verify_crc_source callback Mahesh Kumar
  2018-08-13 15:11 ` [PATCH v5 2/3] drm/crc: Cleanup crtc_crc_open function Mahesh Kumar
@ 2018-08-13 15:11 ` Mahesh Kumar
  2018-08-13 15:40 ` ✗ Fi.CI.BAT: failure for Improve crc-core driver interface (rev11) Patchwork
                   ` (6 subsequent siblings)
  9 siblings, 0 replies; 17+ messages in thread
From: Mahesh Kumar @ 2018-08-13 15:11 UTC (permalink / raw)
  To: intel-gfx; +Cc: Mahesh Kumar, Tomeu Vizoso, dri-devel

This reverts commit e8fa5671183c80342d520ad81d14fa79a9d4a680.

Don't wait for first CRC during crtc_crc_open. It avoids one frame wait
during open. If application want to wait after read call, it can use
poll/read blocking read() call.

Suggested-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Mahesh Kumar <mahesh1.kumar@intel.com>
Cc: dri-devel@lists.freedesktop.org
Cc: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
---
 drivers/gpu/drm/drm_debugfs_crc.c | 16 ----------------
 1 file changed, 16 deletions(-)

diff --git a/drivers/gpu/drm/drm_debugfs_crc.c b/drivers/gpu/drm/drm_debugfs_crc.c
index 3e0a2cfaa35c..00e743153e94 100644
--- a/drivers/gpu/drm/drm_debugfs_crc.c
+++ b/drivers/gpu/drm/drm_debugfs_crc.c
@@ -228,24 +228,8 @@ static int crtc_crc_open(struct inode *inode, struct file *filep)
 	if (ret)
 		goto err;
 
-	spin_lock_irq(&crc->lock);
-	/*
-	 * Only return once we got a first frame, so userspace doesn't have to
-	 * guess when this particular piece of HW will be ready to start
-	 * generating CRCs.
-	 */
-	ret = wait_event_interruptible_lock_irq(crc->wq,
-						crtc_crc_data_count(crc),
-						crc->lock);
-	spin_unlock_irq(&crc->lock);
-
-	if (ret)
-		goto err_disable;
-
 	return 0;
 
-err_disable:
-	crtc->funcs->set_crc_source(crtc, NULL);
 err:
 	spin_lock_irq(&crc->lock);
 	crtc_crc_cleanup(crc);
-- 
2.16.2

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

* ✗ Fi.CI.BAT: failure for Improve crc-core driver interface (rev11)
  2018-08-13 15:11 [PATCH v5 0/3] Improve crc-core driver interface Mahesh Kumar
                   ` (2 preceding siblings ...)
  2018-08-13 15:11 ` [PATCH v4 3/3] Revert "drm: crc: Wait for a frame before returning from open()" Mahesh Kumar
@ 2018-08-13 15:40 ` Patchwork
  2018-08-14  3:26 ` ✗ Fi.CI.BAT: failure for Improve crc-core driver interface (rev12) Patchwork
                   ` (5 subsequent siblings)
  9 siblings, 0 replies; 17+ messages in thread
From: Patchwork @ 2018-08-13 15:40 UTC (permalink / raw)
  To: Mahesh Kumar; +Cc: intel-gfx

== Series Details ==

Series: Improve crc-core driver interface (rev11)
URL   : https://patchwork.freedesktop.org/series/45246/
State : failure

== Summary ==

= CI Bug Log - changes from CI_DRM_4663 -> Patchwork_9931 =

== Summary - FAILURE ==

  Serious unknown changes coming with Patchwork_9931 absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_9931, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

  External URL: https://patchwork.freedesktop.org/api/1.0/series/45246/revisions/11/mbox/

== Possible new issues ==

  Here are the unknown changes that may have been introduced in Patchwork_9931:

  === IGT changes ===

    ==== Possible regressions ====

    igt@kms_pipe_crc_basic@nonblocking-crc-pipe-a:
      fi-ivb-3520m:       PASS -> FAIL +5
      {fi-icl-u}:         PASS -> FAIL +5
      fi-skl-6700hq:      PASS -> FAIL +5
      fi-skl-guc:         PASS -> FAIL +5
      fi-blb-e6850:       PASS -> FAIL +3
      fi-byt-j1900:       PASS -> FAIL +3

    igt@kms_pipe_crc_basic@nonblocking-crc-pipe-a-frame-sequence:
      fi-ilk-650:         PASS -> FAIL +3
      fi-elk-e7500:       PASS -> FAIL +3
      fi-byt-n2820:       PASS -> FAIL +3

    igt@kms_pipe_crc_basic@nonblocking-crc-pipe-b:
      fi-bdw-5557u:       PASS -> FAIL +5
      fi-pnv-d510:        PASS -> FAIL +3
      fi-skl-6600u:       PASS -> FAIL +5
      {fi-byt-clapper}:   PASS -> FAIL +3
      fi-bxt-dsi:         PASS -> FAIL +5
      fi-hsw-4770:        PASS -> FAIL +5
      fi-ivb-3770:        PASS -> FAIL +5
      fi-bwr-2160:        PASS -> FAIL +3

    igt@kms_pipe_crc_basic@nonblocking-crc-pipe-b-frame-sequence:
      {fi-bdw-samus}:     PASS -> FAIL +5
      fi-hsw-peppy:       PASS -> FAIL +5
      fi-bdw-gvtdvm:      PASS -> FAIL +5
      fi-gdg-551:         NOTRUN -> FAIL +3
      fi-kbl-7500u:       PASS -> FAIL +5
      fi-snb-2600:        PASS -> FAIL +3
      fi-hsw-4770r:       PASS -> FAIL +5

    igt@kms_pipe_crc_basic@nonblocking-crc-pipe-c:
      fi-kbl-7567u:       PASS -> FAIL +5
      fi-skl-6260u:       PASS -> FAIL +5
      fi-skl-6700k2:      PASS -> FAIL +5
      fi-skl-gvtdvm:      PASS -> FAIL +5
      {fi-skl-iommu}:     PASS -> FAIL +5
      fi-skl-6770hq:      PASS -> FAIL +5
      fi-bxt-j4205:       PASS -> FAIL +5
      fi-kbl-7560u:       PASS -> FAIL +5
      fi-whl-u:           PASS -> FAIL +5
      fi-kbl-r:           PASS -> FAIL +5

    
== Known issues ==

  Here are the changes found in Patchwork_9931 that come from known issues:

  === IGT changes ===

    ==== Issues hit ====

    igt@debugfs_test@read_all_entries:
      fi-snb-2520m:       PASS -> INCOMPLETE (fdo#103713)

    igt@drv_selftest@live_hangcheck:
      fi-cfl-s3:          PASS -> DMESG-FAIL (fdo#106560)

    igt@drv_selftest@live_workarounds:
      fi-skl-6700k2:      PASS -> DMESG-FAIL (fdo#107292)

    igt@kms_frontbuffer_tracking@basic:
      {fi-byt-clapper}:   PASS -> FAIL (fdo#103167)

    igt@kms_pipe_crc_basic@hang-read-crc-pipe-c:
      fi-skl-guc:         PASS -> FAIL (fdo#103191)

    igt@kms_pipe_crc_basic@nonblocking-crc-pipe-a:
      fi-cfl-s3:          PASS -> FAIL (fdo#103481) +5

    igt@kms_pipe_crc_basic@nonblocking-crc-pipe-b:
      {fi-bsw-kefka}:     PASS -> FAIL (fdo#106211) +3
      {fi-cfl-8109u}:     PASS -> FAIL (fdo#103481) +5
      fi-cfl-guc:         PASS -> FAIL (fdo#103481) +5

    igt@kms_pipe_crc_basic@nonblocking-crc-pipe-b-frame-sequence:
      fi-cnl-psr:         PASS -> FAIL (fdo#106211) +5

    igt@kms_pipe_crc_basic@nonblocking-crc-pipe-c:
      fi-glk-j4005:       PASS -> FAIL (fdo#106211) +5
      fi-cfl-8700k:       PASS -> FAIL (fdo#103481) +5
      fi-bsw-n3050:       PASS -> FAIL (fdo#106211) +1

    igt@kms_pipe_crc_basic@nonblocking-crc-pipe-c-frame-sequence:
      fi-glk-dsi:         PASS -> FAIL (fdo#106211) +5

    igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a:
      {fi-byt-clapper}:   PASS -> FAIL (fdo#103191, fdo#107362)

    
    ==== Possible fixes ====

    igt@gem_exec_suspend@basic-s3:
      {fi-cfl-8109u}:     FAIL (fdo#103375) -> PASS

    
    ==== Warnings ====

    {igt@kms_psr@primary_page_flip}:
      fi-cnl-psr:         DMESG-WARN (fdo#107372) -> DMESG-FAIL (fdo#107372)

    
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  fdo#103167 https://bugs.freedesktop.org/show_bug.cgi?id=103167
  fdo#103191 https://bugs.freedesktop.org/show_bug.cgi?id=103191
  fdo#103375 https://bugs.freedesktop.org/show_bug.cgi?id=103375
  fdo#103481 https://bugs.freedesktop.org/show_bug.cgi?id=103481
  fdo#103713 https://bugs.freedesktop.org/show_bug.cgi?id=103713
  fdo#106211 https://bugs.freedesktop.org/show_bug.cgi?id=106211
  fdo#106560 https://bugs.freedesktop.org/show_bug.cgi?id=106560
  fdo#107292 https://bugs.freedesktop.org/show_bug.cgi?id=107292
  fdo#107362 https://bugs.freedesktop.org/show_bug.cgi?id=107362
  fdo#107372 https://bugs.freedesktop.org/show_bug.cgi?id=107372


== Participating hosts (53 -> 49) ==

  Additional (1): fi-gdg-551 
  Missing    (5): fi-ctg-p8600 fi-ilk-m540 fi-byt-squawks fi-bsw-cyan fi-hsw-4200u 


== Build changes ==

    * Linux: CI_DRM_4663 -> Patchwork_9931

  CI_DRM_4663: 273ade7fd922e8074e5832fe5e014720aecba57c @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4593: c88e219c6e890d89b7836c5e248ffedf334d55a2 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_9931: ecc1dc0d45ff4243c4c17e21cba1d5d15e317d92 @ git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

ecc1dc0d45ff Revert "drm: crc: Wait for a frame before returning from open()"
549435be9abe drm/crc: Cleanup crtc_crc_open function
8e68723ad195 drm/vkms/crc: Implement verify_crc_source callback

== Logs ==

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

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

* [PATCH V2 1/3] drm/vkms/crc: Implement verify_crc_source callback
  2018-08-13 15:11 ` [PATCH v1 1/3] drm/vkms/crc: Implement verify_crc_source callback Mahesh Kumar
@ 2018-08-14  3:01   ` Mahesh Kumar
  2018-08-20 22:39     ` Haneen Mohammed
  0 siblings, 1 reply; 17+ messages in thread
From: Mahesh Kumar @ 2018-08-14  3:01 UTC (permalink / raw)
  To: intel-gfx; +Cc: Haneen Mohammed

This patch implements "verify_crc_source" callback function for
Virtual KMS drm driver.

Changes Since V1:
- update values_cnt in verify_crc_source

Cc: Haneen Mohammed <hamohammed.sa@gmail.com>
Signed-off-by: Mahesh Kumar <mahesh1.kumar@intel.com>
---
 drivers/gpu/drm/vkms/vkms_crc.c  | 38 ++++++++++++++++++++++++++++++++++----
 drivers/gpu/drm/vkms/vkms_crtc.c |  1 +
 drivers/gpu/drm/vkms/vkms_drv.h  |  2 ++
 3 files changed, 37 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/vkms/vkms_crc.c b/drivers/gpu/drm/vkms/vkms_crc.c
index 37d717f38e3c..b2a484b4e2ad 100644
--- a/drivers/gpu/drm/vkms/vkms_crc.c
+++ b/drivers/gpu/drm/vkms/vkms_crc.c
@@ -70,6 +70,37 @@ void vkms_crc_work_handle(struct work_struct *work)
 	drm_crtc_add_crc_entry(crtc, true, crtc_state->n_frame, &crc32);
 }
 
+static int vkms_crc_parse_source(const char *src_name, bool *enabled)
+{
+	int ret = 0;
+
+	if (!src_name) {
+		*enabled = false;
+	} else if (strcmp(src_name, "auto") == 0) {
+		*enabled = true;
+	} else {
+		*enabled = false;
+		ret = -EINVAL;
+	}
+
+	return ret;
+}
+
+int vkms_verify_crc_source(struct drm_crtc *crtc, const char *src_name,
+			   size_t *values_cnt)
+{
+	bool enabled;
+
+	if (vkms_crc_parse_source(src_name, &enabled) < 0) {
+		DRM_DEBUG_DRIVER("unknown source %s\n", src_name);
+		return -EINVAL;
+	}
+
+	*values_cnt = 1;
+
+	return 0;
+}
+
 int vkms_set_crc_source(struct drm_crtc *crtc, const char *src_name,
 			size_t *values_cnt)
 {
@@ -78,10 +109,9 @@ int vkms_set_crc_source(struct drm_crtc *crtc, const char *src_name,
 	unsigned long flags;
 	int ret = 0;
 
-	if (src_name && strcmp(src_name, "auto") == 0)
-		enabled = true;
-	else if (src_name)
-		ret = -EINVAL;
+	ret = vkms_crc_parse_source(src_name, &enabled);
+	if (ret)
+		return ret;
 
 	*values_cnt = 1;
 
diff --git a/drivers/gpu/drm/vkms/vkms_crtc.c b/drivers/gpu/drm/vkms/vkms_crtc.c
index bfe6e0312cc4..9d0b1a325a78 100644
--- a/drivers/gpu/drm/vkms/vkms_crtc.c
+++ b/drivers/gpu/drm/vkms/vkms_crtc.c
@@ -140,6 +140,7 @@ static const struct drm_crtc_funcs vkms_crtc_funcs = {
 	.enable_vblank		= vkms_enable_vblank,
 	.disable_vblank		= vkms_disable_vblank,
 	.set_crc_source		= vkms_set_crc_source,
+	.verify_crc_source	= vkms_verify_crc_source,
 };
 
 static void vkms_crtc_atomic_enable(struct drm_crtc *crtc,
diff --git a/drivers/gpu/drm/vkms/vkms_drv.h b/drivers/gpu/drm/vkms/vkms_drv.h
index f156c930366a..090c5e4f5544 100644
--- a/drivers/gpu/drm/vkms/vkms_drv.h
+++ b/drivers/gpu/drm/vkms/vkms_drv.h
@@ -125,6 +125,8 @@ void vkms_gem_vunmap(struct drm_gem_object *obj);
 /* CRC Support */
 int vkms_set_crc_source(struct drm_crtc *crtc, const char *src_name,
 			size_t *values_cnt);
+int vkms_verify_crc_source(struct drm_crtc *crtc, const char *source_name,
+			   size_t *values_cnt);
 void vkms_crc_work_handle(struct work_struct *work);
 
 #endif /* _VKMS_DRV_H_ */
-- 
2.16.2

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

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

* ✗ Fi.CI.BAT: failure for Improve crc-core driver interface (rev12)
  2018-08-13 15:11 [PATCH v5 0/3] Improve crc-core driver interface Mahesh Kumar
                   ` (3 preceding siblings ...)
  2018-08-13 15:40 ` ✗ Fi.CI.BAT: failure for Improve crc-core driver interface (rev11) Patchwork
@ 2018-08-14  3:26 ` Patchwork
  2018-08-21  4:55 ` ✓ Fi.CI.BAT: success for Improve crc-core driver interface (rev13) Patchwork
                   ` (4 subsequent siblings)
  9 siblings, 0 replies; 17+ messages in thread
From: Patchwork @ 2018-08-14  3:26 UTC (permalink / raw)
  To: Mahesh Kumar; +Cc: intel-gfx

== Series Details ==

Series: Improve crc-core driver interface (rev12)
URL   : https://patchwork.freedesktop.org/series/45246/
State : failure

== Summary ==

= CI Bug Log - changes from CI_DRM_4664 -> Patchwork_9932 =

== Summary - FAILURE ==

  Serious unknown changes coming with Patchwork_9932 absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_9932, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

  External URL: https://patchwork.freedesktop.org/api/1.0/series/45246/revisions/12/mbox/

== Possible new issues ==

  Here are the unknown changes that may have been introduced in Patchwork_9932:

  === IGT changes ===

    ==== Possible regressions ====

    igt@kms_pipe_crc_basic@nonblocking-crc-pipe-a:
      fi-ivb-3520m:       PASS -> FAIL +5
      fi-skl-6700hq:      PASS -> FAIL +5
      fi-skl-guc:         PASS -> FAIL +5
      fi-blb-e6850:       PASS -> FAIL +3
      fi-byt-j1900:       PASS -> FAIL +3

    igt@kms_pipe_crc_basic@nonblocking-crc-pipe-a-frame-sequence:
      fi-ilk-650:         PASS -> FAIL +3
      fi-elk-e7500:       PASS -> FAIL +3
      fi-byt-n2820:       PASS -> FAIL +3
      fi-snb-2520m:       PASS -> FAIL +3

    igt@kms_pipe_crc_basic@nonblocking-crc-pipe-b:
      fi-bdw-5557u:       PASS -> FAIL +5
      fi-pnv-d510:        PASS -> FAIL +3
      fi-skl-6600u:       PASS -> FAIL +5
      {fi-byt-clapper}:   PASS -> FAIL +3
      fi-bxt-dsi:         PASS -> FAIL +5
      fi-hsw-4770:        PASS -> FAIL +5
      fi-ivb-3770:        PASS -> FAIL +5
      fi-bwr-2160:        PASS -> FAIL +3

    igt@kms_pipe_crc_basic@nonblocking-crc-pipe-b-frame-sequence:
      {fi-bdw-samus}:     PASS -> FAIL +5
      fi-hsw-peppy:       PASS -> FAIL +5
      fi-bdw-gvtdvm:      PASS -> FAIL +5
      fi-gdg-551:         PASS -> FAIL +3
      fi-kbl-7500u:       PASS -> FAIL +5
      fi-snb-2600:        PASS -> FAIL +3
      fi-hsw-4770r:       PASS -> FAIL +5

    igt@kms_pipe_crc_basic@nonblocking-crc-pipe-c:
      fi-kbl-7567u:       PASS -> FAIL +5
      fi-skl-6260u:       PASS -> FAIL +5
      fi-skl-6700k2:      PASS -> FAIL +5
      fi-skl-gvtdvm:      PASS -> FAIL +5
      {fi-skl-iommu}:     PASS -> FAIL +5
      fi-skl-6770hq:      PASS -> FAIL +5
      fi-bxt-j4205:       PASS -> FAIL +5
      fi-kbl-7560u:       PASS -> FAIL +5
      fi-whl-u:           PASS -> FAIL +5
      fi-kbl-r:           PASS -> FAIL +5

    
== Known issues ==

  Here are the changes found in Patchwork_9932 that come from known issues:

  === IGT changes ===

    ==== Issues hit ====

    igt@drv_selftest@live_hangcheck:
      fi-skl-6600u:       PASS -> DMESG-FAIL (fdo#106560, fdo#107174)

    igt@kms_frontbuffer_tracking@basic:
      {fi-byt-clapper}:   PASS -> FAIL (fdo#103167)

    igt@kms_pipe_crc_basic@nonblocking-crc-pipe-a:
      fi-cfl-s3:          PASS -> FAIL (fdo#103481) +5

    igt@kms_pipe_crc_basic@nonblocking-crc-pipe-b:
      {fi-bsw-kefka}:     PASS -> FAIL (fdo#106211) +3
      {fi-cfl-8109u}:     PASS -> FAIL (fdo#103481) +5
      fi-cfl-guc:         PASS -> FAIL (fdo#103481) +5

    igt@kms_pipe_crc_basic@nonblocking-crc-pipe-b-frame-sequence:
      fi-cnl-psr:         PASS -> FAIL (fdo#106211) +5

    igt@kms_pipe_crc_basic@nonblocking-crc-pipe-c:
      fi-glk-j4005:       PASS -> FAIL (fdo#106211) +5
      fi-cfl-8700k:       PASS -> FAIL (fdo#103481) +5
      fi-bsw-n3050:       PASS -> FAIL (fdo#106211) +1

    igt@kms_pipe_crc_basic@nonblocking-crc-pipe-c-frame-sequence:
      fi-glk-dsi:         PASS -> FAIL (fdo#106211) +5

    igt@prime_vgem@basic-fence-flip:
      fi-ilk-650:         PASS -> FAIL (fdo#104008)

    
    ==== Possible fixes ====

    igt@drv_selftest@live_hangcheck:
      fi-skl-guc:         DMESG-FAIL (fdo#106685, fdo#107174) -> PASS

    igt@gem_exec_suspend@basic-s4-devices:
      fi-kbl-7500u:       DMESG-WARN (fdo#107139, fdo#105128) -> PASS

    igt@kms_chamelium@dp-crc-fast:
      fi-kbl-7500u:       DMESG-FAIL (fdo#103841) -> PASS

    
    ==== Warnings ====

    {igt@kms_psr@primary_page_flip}:
      fi-cnl-psr:         DMESG-FAIL (fdo#107372) -> DMESG-WARN (fdo#107372)

    
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  fdo#103167 https://bugs.freedesktop.org/show_bug.cgi?id=103167
  fdo#103481 https://bugs.freedesktop.org/show_bug.cgi?id=103481
  fdo#103841 https://bugs.freedesktop.org/show_bug.cgi?id=103841
  fdo#104008 https://bugs.freedesktop.org/show_bug.cgi?id=104008
  fdo#105128 https://bugs.freedesktop.org/show_bug.cgi?id=105128
  fdo#106211 https://bugs.freedesktop.org/show_bug.cgi?id=106211
  fdo#106560 https://bugs.freedesktop.org/show_bug.cgi?id=106560
  fdo#106685 https://bugs.freedesktop.org/show_bug.cgi?id=106685
  fdo#107139 https://bugs.freedesktop.org/show_bug.cgi?id=107139
  fdo#107174 https://bugs.freedesktop.org/show_bug.cgi?id=107174
  fdo#107372 https://bugs.freedesktop.org/show_bug.cgi?id=107372


== Participating hosts (54 -> 48) ==

  Missing    (6): fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-ctg-p8600 fi-icl-u 


== Build changes ==

    * Linux: CI_DRM_4664 -> Patchwork_9932

  CI_DRM_4664: 19e458884fe1d8d10e453529933199250cc8821f @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4593: c88e219c6e890d89b7836c5e248ffedf334d55a2 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_9932: edc809370c62169b8cfaeee5a675f8c28e81f71b @ git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

edc809370c62 Revert "drm: crc: Wait for a frame before returning from open()"
664027cdd442 drm/crc: Cleanup crtc_crc_open function
c1a160cb7674 drm/vkms/crc: Implement verify_crc_source callback

== Logs ==

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

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

* Re: [PATCH V2 1/3] drm/vkms/crc: Implement verify_crc_source callback
  2018-08-14  3:01   ` [PATCH V2 " Mahesh Kumar
@ 2018-08-20 22:39     ` Haneen Mohammed
  2018-08-21  4:23       ` Kumar, Mahesh
  0 siblings, 1 reply; 17+ messages in thread
From: Haneen Mohammed @ 2018-08-20 22:39 UTC (permalink / raw)
  To: Mahesh Kumar; +Cc: intel-gfx

On Tue, Aug 14, 2018 at 08:31:03AM +0530, Mahesh Kumar wrote:
> This patch implements "verify_crc_source" callback function for
> Virtual KMS drm driver.
> 
> Changes Since V1:
> - update values_cnt in verify_crc_source
> 
> Cc: Haneen Mohammed <hamohammed.sa@gmail.com>
> Signed-off-by: Mahesh Kumar <mahesh1.kumar@intel.com>
> ---
>  drivers/gpu/drm/vkms/vkms_crc.c  | 38 ++++++++++++++++++++++++++++++++++----
>  drivers/gpu/drm/vkms/vkms_crtc.c |  1 +
>  drivers/gpu/drm/vkms/vkms_drv.h  |  2 ++
>  3 files changed, 37 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/gpu/drm/vkms/vkms_crc.c b/drivers/gpu/drm/vkms/vkms_crc.c
> index 37d717f38e3c..b2a484b4e2ad 100644
> --- a/drivers/gpu/drm/vkms/vkms_crc.c
> +++ b/drivers/gpu/drm/vkms/vkms_crc.c
> @@ -70,6 +70,37 @@ void vkms_crc_work_handle(struct work_struct *work)
>  	drm_crtc_add_crc_entry(crtc, true, crtc_state->n_frame, &crc32);
>  }
>  
> +static int vkms_crc_parse_source(const char *src_name, bool *enabled)
> +{
> +	int ret = 0;
> +
> +	if (!src_name) {
> +		*enabled = false;
> +	} else if (strcmp(src_name, "auto") == 0) {
> +		*enabled = true;
> +	} else {
> +		*enabled = false;
> +		ret = -EINVAL;
> +	}
> +
> +	return ret;
> +}
> +
> +int vkms_verify_crc_source(struct drm_crtc *crtc, const char *src_name,
> +			   size_t *values_cnt)
> +{
> +	bool enabled;
> +
> +	if (vkms_crc_parse_source(src_name, &enabled) < 0) {
> +		DRM_DEBUG_DRIVER("unknown source %s\n", src_name);
> +		return -EINVAL;
> +	}
> +
> +	*values_cnt = 1;
> +
> +	return 0;
> +}
> +
>  int vkms_set_crc_source(struct drm_crtc *crtc, const char *src_name,
>  			size_t *values_cnt)
>  {
> @@ -78,10 +109,9 @@ int vkms_set_crc_source(struct drm_crtc *crtc, const char *src_name,
>  	unsigned long flags;
>  	int ret = 0;
>  
> -	if (src_name && strcmp(src_name, "auto") == 0)
> -		enabled = true;
> -	else if (src_name)
> -		ret = -EINVAL;
> +	ret = vkms_crc_parse_source(src_name, &enabled);
> +	if (ret)
> +		return ret;

I think the return value after vkms_crc_parse_source should be called
once instead at the end of vkms_set_crc_source otherwise crc_enabled
won't be updated?

- Haneen

>  
>  	*values_cnt = 1;
>  
> diff --git a/drivers/gpu/drm/vkms/vkms_crtc.c b/drivers/gpu/drm/vkms/vkms_crtc.c
> index bfe6e0312cc4..9d0b1a325a78 100644
> --- a/drivers/gpu/drm/vkms/vkms_crtc.c
> +++ b/drivers/gpu/drm/vkms/vkms_crtc.c
> @@ -140,6 +140,7 @@ static const struct drm_crtc_funcs vkms_crtc_funcs = {
>  	.enable_vblank		= vkms_enable_vblank,
>  	.disable_vblank		= vkms_disable_vblank,
>  	.set_crc_source		= vkms_set_crc_source,
> +	.verify_crc_source	= vkms_verify_crc_source,
>  };
>  
>  static void vkms_crtc_atomic_enable(struct drm_crtc *crtc,
> diff --git a/drivers/gpu/drm/vkms/vkms_drv.h b/drivers/gpu/drm/vkms/vkms_drv.h
> index f156c930366a..090c5e4f5544 100644
> --- a/drivers/gpu/drm/vkms/vkms_drv.h
> +++ b/drivers/gpu/drm/vkms/vkms_drv.h
> @@ -125,6 +125,8 @@ void vkms_gem_vunmap(struct drm_gem_object *obj);
>  /* CRC Support */
>  int vkms_set_crc_source(struct drm_crtc *crtc, const char *src_name,
>  			size_t *values_cnt);
> +int vkms_verify_crc_source(struct drm_crtc *crtc, const char *source_name,
> +			   size_t *values_cnt);
>  void vkms_crc_work_handle(struct work_struct *work);
>  
>  #endif /* _VKMS_DRV_H_ */
> -- 
> 2.16.2
> 
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH V2 1/3] drm/vkms/crc: Implement verify_crc_source callback
  2018-08-20 22:39     ` Haneen Mohammed
@ 2018-08-21  4:23       ` Kumar, Mahesh
  2018-08-21  4:34         ` [PATCH V3 " Mahesh Kumar
  2018-08-21  6:25         ` [PATCH V2 " Haneen Mohammed
  0 siblings, 2 replies; 17+ messages in thread
From: Kumar, Mahesh @ 2018-08-21  4:23 UTC (permalink / raw)
  To: Haneen Mohammed; +Cc: intel-gfx

Hi Haneen,


On 8/21/2018 4:09 AM, Haneen Mohammed wrote:
> On Tue, Aug 14, 2018 at 08:31:03AM +0530, Mahesh Kumar wrote:
>> This patch implements "verify_crc_source" callback function for
>> Virtual KMS drm driver.
>>
>> Changes Since V1:
>> - update values_cnt in verify_crc_source
>>
>> Cc: Haneen Mohammed <hamohammed.sa@gmail.com>
>> Signed-off-by: Mahesh Kumar <mahesh1.kumar@intel.com>
>> ---
>>   drivers/gpu/drm/vkms/vkms_crc.c  | 38 ++++++++++++++++++++++++++++++++++----
>>   drivers/gpu/drm/vkms/vkms_crtc.c |  1 +
>>   drivers/gpu/drm/vkms/vkms_drv.h  |  2 ++
>>   3 files changed, 37 insertions(+), 4 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/vkms/vkms_crc.c b/drivers/gpu/drm/vkms/vkms_crc.c
>> index 37d717f38e3c..b2a484b4e2ad 100644
>> --- a/drivers/gpu/drm/vkms/vkms_crc.c
>> +++ b/drivers/gpu/drm/vkms/vkms_crc.c
>> @@ -70,6 +70,37 @@ void vkms_crc_work_handle(struct work_struct *work)
>>   	drm_crtc_add_crc_entry(crtc, true, crtc_state->n_frame, &crc32);
>>   }
>>   
>> +static int vkms_crc_parse_source(const char *src_name, bool *enabled)
>> +{
>> +	int ret = 0;
>> +
>> +	if (!src_name) {
>> +		*enabled = false;
>> +	} else if (strcmp(src_name, "auto") == 0) {
>> +		*enabled = true;
>> +	} else {
>> +		*enabled = false;
>> +		ret = -EINVAL;
>> +	}
>> +
>> +	return ret;
>> +}
>> +
>> +int vkms_verify_crc_source(struct drm_crtc *crtc, const char *src_name,
>> +			   size_t *values_cnt)
>> +{
>> +	bool enabled;
>> +
>> +	if (vkms_crc_parse_source(src_name, &enabled) < 0) {
>> +		DRM_DEBUG_DRIVER("unknown source %s\n", src_name);
>> +		return -EINVAL;
>> +	}
>> +
>> +	*values_cnt = 1;
>> +
>> +	return 0;
>> +}
>> +
>>   int vkms_set_crc_source(struct drm_crtc *crtc, const char *src_name,
>>   			size_t *values_cnt)
>>   {
>> @@ -78,10 +109,9 @@ int vkms_set_crc_source(struct drm_crtc *crtc, const char *src_name,
>>   	unsigned long flags;
>>   	int ret = 0;
>>   
>> -	if (src_name && strcmp(src_name, "auto") == 0)
>> -		enabled = true;
>> -	else if (src_name)
>> -		ret = -EINVAL;
>> +	ret = vkms_crc_parse_source(src_name, &enabled);
>> +	if (ret)
>> +		return ret;
> I think the return value after vkms_crc_parse_source should be called
> once instead at the end of vkms_set_crc_source otherwise crc_enabled
> won't be updated?
Here I'm assuming if src_name is wrong we don't need to proceed further, 
let the CRC generation to continue whatever it was doing (enabled or 
disabled).
But anyway that is changing the original design, will remove above 
return to keep the behavior same.

-Mahesh
>
> - Haneen
>
>>   
>>   	*values_cnt = 1;
>>   
>> diff --git a/drivers/gpu/drm/vkms/vkms_crtc.c b/drivers/gpu/drm/vkms/vkms_crtc.c
>> index bfe6e0312cc4..9d0b1a325a78 100644
>> --- a/drivers/gpu/drm/vkms/vkms_crtc.c
>> +++ b/drivers/gpu/drm/vkms/vkms_crtc.c
>> @@ -140,6 +140,7 @@ static const struct drm_crtc_funcs vkms_crtc_funcs = {
>>   	.enable_vblank		= vkms_enable_vblank,
>>   	.disable_vblank		= vkms_disable_vblank,
>>   	.set_crc_source		= vkms_set_crc_source,
>> +	.verify_crc_source	= vkms_verify_crc_source,
>>   };
>>   
>>   static void vkms_crtc_atomic_enable(struct drm_crtc *crtc,
>> diff --git a/drivers/gpu/drm/vkms/vkms_drv.h b/drivers/gpu/drm/vkms/vkms_drv.h
>> index f156c930366a..090c5e4f5544 100644
>> --- a/drivers/gpu/drm/vkms/vkms_drv.h
>> +++ b/drivers/gpu/drm/vkms/vkms_drv.h
>> @@ -125,6 +125,8 @@ void vkms_gem_vunmap(struct drm_gem_object *obj);
>>   /* CRC Support */
>>   int vkms_set_crc_source(struct drm_crtc *crtc, const char *src_name,
>>   			size_t *values_cnt);
>> +int vkms_verify_crc_source(struct drm_crtc *crtc, const char *source_name,
>> +			   size_t *values_cnt);
>>   void vkms_crc_work_handle(struct work_struct *work);
>>   
>>   #endif /* _VKMS_DRV_H_ */
>> -- 
>> 2.16.2
>>

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

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

* [PATCH V3 1/3] drm/vkms/crc: Implement verify_crc_source callback
  2018-08-21  4:23       ` Kumar, Mahesh
@ 2018-08-21  4:34         ` Mahesh Kumar
  2018-08-21  6:16           ` Haneen Mohammed
  2018-08-21  6:25         ` [PATCH V2 " Haneen Mohammed
  1 sibling, 1 reply; 17+ messages in thread
From: Mahesh Kumar @ 2018-08-21  4:34 UTC (permalink / raw)
  To: intel-gfx; +Cc: Haneen Mohammed

This patch implements "verify_crc_source" callback function for
Virtual KMS drm driver.

Changes Since V1:
- update values_cnt in verify_crc_source
Changes Since V2:
- don't return early from set_crc_source to keep behavior same (Haneen)

Cc: Haneen Mohammed <hamohammed.sa@gmail.com>
Signed-off-by: Mahesh Kumar <mahesh1.kumar@intel.com>
---
 drivers/gpu/drm/vkms/vkms_crc.c  | 36 ++++++++++++++++++++++++++++++++----
 drivers/gpu/drm/vkms/vkms_crtc.c |  1 +
 drivers/gpu/drm/vkms/vkms_drv.h  |  2 ++
 3 files changed, 35 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/vkms/vkms_crc.c b/drivers/gpu/drm/vkms/vkms_crc.c
index 37d717f38e3c..68421d3d809a 100644
--- a/drivers/gpu/drm/vkms/vkms_crc.c
+++ b/drivers/gpu/drm/vkms/vkms_crc.c
@@ -70,6 +70,37 @@ void vkms_crc_work_handle(struct work_struct *work)
 	drm_crtc_add_crc_entry(crtc, true, crtc_state->n_frame, &crc32);
 }
 
+static int vkms_crc_parse_source(const char *src_name, bool *enabled)
+{
+	int ret = 0;
+
+	if (!src_name) {
+		*enabled = false;
+	} else if (strcmp(src_name, "auto") == 0) {
+		*enabled = true;
+	} else {
+		*enabled = false;
+		ret = -EINVAL;
+	}
+
+	return ret;
+}
+
+int vkms_verify_crc_source(struct drm_crtc *crtc, const char *src_name,
+			   size_t *values_cnt)
+{
+	bool enabled;
+
+	if (vkms_crc_parse_source(src_name, &enabled) < 0) {
+		DRM_DEBUG_DRIVER("unknown source %s\n", src_name);
+		return -EINVAL;
+	}
+
+	*values_cnt = 1;
+
+	return 0;
+}
+
 int vkms_set_crc_source(struct drm_crtc *crtc, const char *src_name,
 			size_t *values_cnt)
 {
@@ -78,10 +109,7 @@ int vkms_set_crc_source(struct drm_crtc *crtc, const char *src_name,
 	unsigned long flags;
 	int ret = 0;
 
-	if (src_name && strcmp(src_name, "auto") == 0)
-		enabled = true;
-	else if (src_name)
-		ret = -EINVAL;
+	ret = vkms_crc_parse_source(src_name, &enabled);
 
 	*values_cnt = 1;
 
diff --git a/drivers/gpu/drm/vkms/vkms_crtc.c b/drivers/gpu/drm/vkms/vkms_crtc.c
index bfe6e0312cc4..9d0b1a325a78 100644
--- a/drivers/gpu/drm/vkms/vkms_crtc.c
+++ b/drivers/gpu/drm/vkms/vkms_crtc.c
@@ -140,6 +140,7 @@ static const struct drm_crtc_funcs vkms_crtc_funcs = {
 	.enable_vblank		= vkms_enable_vblank,
 	.disable_vblank		= vkms_disable_vblank,
 	.set_crc_source		= vkms_set_crc_source,
+	.verify_crc_source	= vkms_verify_crc_source,
 };
 
 static void vkms_crtc_atomic_enable(struct drm_crtc *crtc,
diff --git a/drivers/gpu/drm/vkms/vkms_drv.h b/drivers/gpu/drm/vkms/vkms_drv.h
index f156c930366a..090c5e4f5544 100644
--- a/drivers/gpu/drm/vkms/vkms_drv.h
+++ b/drivers/gpu/drm/vkms/vkms_drv.h
@@ -125,6 +125,8 @@ void vkms_gem_vunmap(struct drm_gem_object *obj);
 /* CRC Support */
 int vkms_set_crc_source(struct drm_crtc *crtc, const char *src_name,
 			size_t *values_cnt);
+int vkms_verify_crc_source(struct drm_crtc *crtc, const char *source_name,
+			   size_t *values_cnt);
 void vkms_crc_work_handle(struct work_struct *work);
 
 #endif /* _VKMS_DRV_H_ */
-- 
2.16.2

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

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

* ✓ Fi.CI.BAT: success for Improve crc-core driver interface (rev13)
  2018-08-13 15:11 [PATCH v5 0/3] Improve crc-core driver interface Mahesh Kumar
                   ` (4 preceding siblings ...)
  2018-08-14  3:26 ` ✗ Fi.CI.BAT: failure for Improve crc-core driver interface (rev12) Patchwork
@ 2018-08-21  4:55 ` Patchwork
  2018-08-21  5:17 ` ✗ Fi.CI.BAT: failure " Patchwork
                   ` (3 subsequent siblings)
  9 siblings, 0 replies; 17+ messages in thread
From: Patchwork @ 2018-08-21  4:55 UTC (permalink / raw)
  To: Mahesh Kumar; +Cc: intel-gfx

== Series Details ==

Series: Improve crc-core driver interface (rev13)
URL   : https://patchwork.freedesktop.org/series/45246/
State : success

== Summary ==

= CI Bug Log - changes from CI_DRM_4692 -> Patchwork_9980 =

== Summary - SUCCESS ==

  No regressions found.

  External URL: https://patchwork.freedesktop.org/api/1.0/series/45246/revisions/13/mbox/

== Known issues ==

  Here are the changes found in Patchwork_9980 that come from known issues:

  === IGT changes ===

    ==== Issues hit ====

    igt@drv_selftest@live_hangcheck:
      fi-kbl-7560u:       PASS -> DMESG-FAIL (fdo#106560, fdo#106947)

    igt@kms_frontbuffer_tracking@basic:
      fi-hsw-peppy:       PASS -> DMESG-FAIL (fdo#102614)
      {fi-byt-clapper}:   PASS -> FAIL (fdo#103167)

    
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  fdo#102614 https://bugs.freedesktop.org/show_bug.cgi?id=102614
  fdo#103167 https://bugs.freedesktop.org/show_bug.cgi?id=103167
  fdo#106560 https://bugs.freedesktop.org/show_bug.cgi?id=106560
  fdo#106947 https://bugs.freedesktop.org/show_bug.cgi?id=106947


== Participating hosts (51 -> 47) ==

  Missing    (4): fi-ilk-m540 fi-byt-squawks fi-bsw-cyan fi-hsw-4200u 


== Build changes ==

    * Linux: CI_DRM_4692 -> Patchwork_9980

  CI_DRM_4692: d53f119472fc7daa532e46ea77098e9e9db2ac10 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4607: 6e0b3e7a2d241af36f8c6b1cc335aa1db3532d29 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_9980: 70f9435337d30e26426ebaa311efb29f7d52051a @ git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

70f9435337d3 Revert "drm: crc: Wait for a frame before returning from open()"
314b22dfdb36 drm/crc: Cleanup crtc_crc_open function
b30e97d93e8d drm/vkms/crc: Implement verify_crc_source callback

== Logs ==

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

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

* ✗ Fi.CI.BAT: failure for Improve crc-core driver interface (rev13)
  2018-08-13 15:11 [PATCH v5 0/3] Improve crc-core driver interface Mahesh Kumar
                   ` (5 preceding siblings ...)
  2018-08-21  4:55 ` ✓ Fi.CI.BAT: success for Improve crc-core driver interface (rev13) Patchwork
@ 2018-08-21  5:17 ` Patchwork
  2018-08-21  5:53 ` ✓ Fi.CI.IGT: success " Patchwork
                   ` (2 subsequent siblings)
  9 siblings, 0 replies; 17+ messages in thread
From: Patchwork @ 2018-08-21  5:17 UTC (permalink / raw)
  To: Mahesh Kumar; +Cc: intel-gfx

== Series Details ==

Series: Improve crc-core driver interface (rev13)
URL   : https://patchwork.freedesktop.org/series/45246/
State : failure

== Summary ==

= CI Bug Log - changes from CI_DRM_4692 -> Patchwork_9981 =

== Summary - FAILURE ==

  Serious unknown changes coming with Patchwork_9981 absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_9981, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

  External URL: https://patchwork.freedesktop.org/api/1.0/series/45246/revisions/13/mbox/

== Possible new issues ==

  Here are the unknown changes that may have been introduced in Patchwork_9981:

  === IGT changes ===

    ==== Possible regressions ====

    igt@drv_selftest@live_hangcheck:
      fi-cfl-guc:         PASS -> DMESG-FAIL

    
== Known issues ==

  Here are the changes found in Patchwork_9981 that come from known issues:

  === IGT changes ===

    ==== Issues hit ====

    igt@drv_selftest@live_guc:
      fi-skl-guc:         NOTRUN -> DMESG-WARN (fdo#107258, fdo#107175)

    igt@drv_selftest@live_hangcheck:
      fi-bdw-5557u:       PASS -> DMESG-FAIL (fdo#106560)

    igt@kms_pipe_crc_basic@suspend-read-crc-pipe-b:
      fi-snb-2520m:       PASS -> INCOMPLETE (fdo#103713)

    
  fdo#103713 https://bugs.freedesktop.org/show_bug.cgi?id=103713
  fdo#106560 https://bugs.freedesktop.org/show_bug.cgi?id=106560
  fdo#107175 https://bugs.freedesktop.org/show_bug.cgi?id=107175
  fdo#107258 https://bugs.freedesktop.org/show_bug.cgi?id=107258


== Participating hosts (51 -> 48) ==

  Additional (1): fi-skl-guc 
  Missing    (4): fi-ilk-m540 fi-byt-squawks fi-bsw-cyan fi-hsw-4200u 


== Build changes ==

    * Linux: CI_DRM_4692 -> Patchwork_9981

  CI_DRM_4692: d53f119472fc7daa532e46ea77098e9e9db2ac10 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4607: 6e0b3e7a2d241af36f8c6b1cc335aa1db3532d29 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_9981: 16455237058ae7e10b0fdee464c5e49e5164df75 @ git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

16455237058a Revert "drm: crc: Wait for a frame before returning from open()"
7a546236475c drm/crc: Cleanup crtc_crc_open function
1fa679413c80 drm/vkms/crc: Implement verify_crc_source callback

== Logs ==

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

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

* ✓ Fi.CI.IGT: success for Improve crc-core driver interface (rev13)
  2018-08-13 15:11 [PATCH v5 0/3] Improve crc-core driver interface Mahesh Kumar
                   ` (6 preceding siblings ...)
  2018-08-21  5:17 ` ✗ Fi.CI.BAT: failure " Patchwork
@ 2018-08-21  5:53 ` Patchwork
  2018-08-21  6:11 ` ✓ Fi.CI.BAT: " Patchwork
  2018-08-21  6:59 ` ✓ Fi.CI.IGT: " Patchwork
  9 siblings, 0 replies; 17+ messages in thread
From: Patchwork @ 2018-08-21  5:53 UTC (permalink / raw)
  To: Mahesh Kumar; +Cc: intel-gfx

== Series Details ==

Series: Improve crc-core driver interface (rev13)
URL   : https://patchwork.freedesktop.org/series/45246/
State : success

== Summary ==

= CI Bug Log - changes from CI_DRM_4692_full -> Patchwork_9980_full =

== Summary - SUCCESS ==

  No regressions found.

  

== Known issues ==

  Here are the changes found in Patchwork_9980_full that come from known issues:

  === IGT changes ===

    ==== Issues hit ====

    igt@gem_exec_await@wide-contexts:
      shard-apl:          PASS -> FAIL (fdo#106680, fdo#105900)

    igt@gem_ppgtt@blt-vs-render-ctxn:
      shard-kbl:          PASS -> INCOMPLETE (fdo#106023, fdo#103665)

    igt@gem_workarounds@suspend-resume:
      shard-glk:          PASS -> FAIL (fdo#103375)

    igt@kms_setmode@basic:
      shard-kbl:          PASS -> FAIL (fdo#99912)

    
    ==== Possible fixes ====

    igt@drv_suspend@shrink:
      shard-glk:          FAIL (fdo#106886) -> PASS

    igt@kms_setmode@basic:
      shard-apl:          FAIL (fdo#99912) -> PASS

    
  fdo#103375 https://bugs.freedesktop.org/show_bug.cgi?id=103375
  fdo#103665 https://bugs.freedesktop.org/show_bug.cgi?id=103665
  fdo#105900 https://bugs.freedesktop.org/show_bug.cgi?id=105900
  fdo#106023 https://bugs.freedesktop.org/show_bug.cgi?id=106023
  fdo#106680 https://bugs.freedesktop.org/show_bug.cgi?id=106680
  fdo#106886 https://bugs.freedesktop.org/show_bug.cgi?id=106886
  fdo#99912 https://bugs.freedesktop.org/show_bug.cgi?id=99912


== Participating hosts (5 -> 5) ==

  No changes in participating hosts


== Build changes ==

    * Linux: CI_DRM_4692 -> Patchwork_9980

  CI_DRM_4692: d53f119472fc7daa532e46ea77098e9e9db2ac10 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4607: 6e0b3e7a2d241af36f8c6b1cc335aa1db3532d29 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_9980: 70f9435337d30e26426ebaa311efb29f7d52051a @ git://anongit.freedesktop.org/gfx-ci/linux
  piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit

== Logs ==

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

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

* ✓ Fi.CI.BAT: success for Improve crc-core driver interface (rev13)
  2018-08-13 15:11 [PATCH v5 0/3] Improve crc-core driver interface Mahesh Kumar
                   ` (7 preceding siblings ...)
  2018-08-21  5:53 ` ✓ Fi.CI.IGT: success " Patchwork
@ 2018-08-21  6:11 ` Patchwork
  2018-08-21  6:59 ` ✓ Fi.CI.IGT: " Patchwork
  9 siblings, 0 replies; 17+ messages in thread
From: Patchwork @ 2018-08-21  6:11 UTC (permalink / raw)
  To: Mahesh Kumar; +Cc: intel-gfx

== Series Details ==

Series: Improve crc-core driver interface (rev13)
URL   : https://patchwork.freedesktop.org/series/45246/
State : success

== Summary ==

= CI Bug Log - changes from CI_DRM_4692 -> Patchwork_9982 =

== Summary - SUCCESS ==

  No regressions found.

  External URL: https://patchwork.freedesktop.org/api/1.0/series/45246/revisions/13/mbox/

== Known issues ==

  Here are the changes found in Patchwork_9982 that come from known issues:

  === IGT changes ===

    ==== Issues hit ====

    igt@drv_selftest@live_coherency:
      fi-gdg-551:         PASS -> DMESG-FAIL (fdo#107164)

    igt@drv_selftest@live_guc:
      fi-skl-guc:         NOTRUN -> DMESG-WARN (fdo#107175, fdo#107258)

    
    ==== Warnings ====

    {igt@kms_psr@primary_page_flip}:
      fi-cnl-psr:         DMESG-FAIL (fdo#107372) -> DMESG-WARN (fdo#107372)

    
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  fdo#107164 https://bugs.freedesktop.org/show_bug.cgi?id=107164
  fdo#107175 https://bugs.freedesktop.org/show_bug.cgi?id=107175
  fdo#107258 https://bugs.freedesktop.org/show_bug.cgi?id=107258
  fdo#107372 https://bugs.freedesktop.org/show_bug.cgi?id=107372


== Participating hosts (51 -> 48) ==

  Additional (1): fi-skl-guc 
  Missing    (4): fi-ilk-m540 fi-byt-squawks fi-bsw-cyan fi-hsw-4200u 


== Build changes ==

    * Linux: CI_DRM_4692 -> Patchwork_9982

  CI_DRM_4692: d53f119472fc7daa532e46ea77098e9e9db2ac10 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4607: 6e0b3e7a2d241af36f8c6b1cc335aa1db3532d29 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_9982: 9965c67bd8260b6b8ef1fd7fa7d0ef50ac4c68b2 @ git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

9965c67bd826 Revert "drm: crc: Wait for a frame before returning from open()"
ec08b989fbec drm/crc: Cleanup crtc_crc_open function
4152f023b866 drm/vkms/crc: Implement verify_crc_source callback

== Logs ==

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

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

* Re: [PATCH V3 1/3] drm/vkms/crc: Implement verify_crc_source callback
  2018-08-21  4:34         ` [PATCH V3 " Mahesh Kumar
@ 2018-08-21  6:16           ` Haneen Mohammed
  0 siblings, 0 replies; 17+ messages in thread
From: Haneen Mohammed @ 2018-08-21  6:16 UTC (permalink / raw)
  To: Mahesh Kumar; +Cc: intel-gfx, seanpaul

On Tue, Aug 21, 2018 at 10:04:01AM +0530, Mahesh Kumar wrote:
> This patch implements "verify_crc_source" callback function for
> Virtual KMS drm driver.
> 
> Changes Since V1:
> - update values_cnt in verify_crc_source
> Changes Since V2:
> - don't return early from set_crc_source to keep behavior same (Haneen)
> 
> Cc: Haneen Mohammed <hamohammed.sa@gmail.com>
> Signed-off-by: Mahesh Kumar <mahesh1.kumar@intel.com>
> ---

Reviewed-by: Haneen Mohammed <hamohammed.sa@gmail.com>

>  drivers/gpu/drm/vkms/vkms_crc.c  | 36 ++++++++++++++++++++++++++++++++----
>  drivers/gpu/drm/vkms/vkms_crtc.c |  1 +
>  drivers/gpu/drm/vkms/vkms_drv.h  |  2 ++
>  3 files changed, 35 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/gpu/drm/vkms/vkms_crc.c b/drivers/gpu/drm/vkms/vkms_crc.c
> index 37d717f38e3c..68421d3d809a 100644
> --- a/drivers/gpu/drm/vkms/vkms_crc.c
> +++ b/drivers/gpu/drm/vkms/vkms_crc.c
> @@ -70,6 +70,37 @@ void vkms_crc_work_handle(struct work_struct *work)
>  	drm_crtc_add_crc_entry(crtc, true, crtc_state->n_frame, &crc32);
>  }
>  
> +static int vkms_crc_parse_source(const char *src_name, bool *enabled)
> +{
> +	int ret = 0;
> +
> +	if (!src_name) {
> +		*enabled = false;
> +	} else if (strcmp(src_name, "auto") == 0) {
> +		*enabled = true;
> +	} else {
> +		*enabled = false;
> +		ret = -EINVAL;
> +	}
> +
> +	return ret;
> +}
> +
> +int vkms_verify_crc_source(struct drm_crtc *crtc, const char *src_name,
> +			   size_t *values_cnt)
> +{
> +	bool enabled;
> +
> +	if (vkms_crc_parse_source(src_name, &enabled) < 0) {
> +		DRM_DEBUG_DRIVER("unknown source %s\n", src_name);
> +		return -EINVAL;
> +	}
> +
> +	*values_cnt = 1;
> +
> +	return 0;
> +}
> +
>  int vkms_set_crc_source(struct drm_crtc *crtc, const char *src_name,
>  			size_t *values_cnt)
>  {
> @@ -78,10 +109,7 @@ int vkms_set_crc_source(struct drm_crtc *crtc, const char *src_name,
>  	unsigned long flags;
>  	int ret = 0;
>  
> -	if (src_name && strcmp(src_name, "auto") == 0)
> -		enabled = true;
> -	else if (src_name)
> -		ret = -EINVAL;
> +	ret = vkms_crc_parse_source(src_name, &enabled);
>  
>  	*values_cnt = 1;
>  
> diff --git a/drivers/gpu/drm/vkms/vkms_crtc.c b/drivers/gpu/drm/vkms/vkms_crtc.c
> index bfe6e0312cc4..9d0b1a325a78 100644
> --- a/drivers/gpu/drm/vkms/vkms_crtc.c
> +++ b/drivers/gpu/drm/vkms/vkms_crtc.c
> @@ -140,6 +140,7 @@ static const struct drm_crtc_funcs vkms_crtc_funcs = {
>  	.enable_vblank		= vkms_enable_vblank,
>  	.disable_vblank		= vkms_disable_vblank,
>  	.set_crc_source		= vkms_set_crc_source,
> +	.verify_crc_source	= vkms_verify_crc_source,
>  };
>  
>  static void vkms_crtc_atomic_enable(struct drm_crtc *crtc,
> diff --git a/drivers/gpu/drm/vkms/vkms_drv.h b/drivers/gpu/drm/vkms/vkms_drv.h
> index f156c930366a..090c5e4f5544 100644
> --- a/drivers/gpu/drm/vkms/vkms_drv.h
> +++ b/drivers/gpu/drm/vkms/vkms_drv.h
> @@ -125,6 +125,8 @@ void vkms_gem_vunmap(struct drm_gem_object *obj);
>  /* CRC Support */
>  int vkms_set_crc_source(struct drm_crtc *crtc, const char *src_name,
>  			size_t *values_cnt);
> +int vkms_verify_crc_source(struct drm_crtc *crtc, const char *source_name,
> +			   size_t *values_cnt);
>  void vkms_crc_work_handle(struct work_struct *work);
>  
>  #endif /* _VKMS_DRV_H_ */
> -- 
> 2.16.2
> 
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH V2 1/3] drm/vkms/crc: Implement verify_crc_source callback
  2018-08-21  4:23       ` Kumar, Mahesh
  2018-08-21  4:34         ` [PATCH V3 " Mahesh Kumar
@ 2018-08-21  6:25         ` Haneen Mohammed
  1 sibling, 0 replies; 17+ messages in thread
From: Haneen Mohammed @ 2018-08-21  6:25 UTC (permalink / raw)
  To: Kumar, Mahesh; +Cc: intel-gfx, seanpaul

On Tue, Aug 21, 2018 at 09:53:11AM +0530, Kumar, Mahesh wrote:
> Hi Haneen,
> 
> 
> On 8/21/2018 4:09 AM, Haneen Mohammed wrote:
> > On Tue, Aug 14, 2018 at 08:31:03AM +0530, Mahesh Kumar wrote:
> > > This patch implements "verify_crc_source" callback function for
> > > Virtual KMS drm driver.
> > > 
> > > Changes Since V1:
> > > - update values_cnt in verify_crc_source
> > > 
> > > Cc: Haneen Mohammed <hamohammed.sa@gmail.com>
> > > Signed-off-by: Mahesh Kumar <mahesh1.kumar@intel.com>
> > > ---
> > >   drivers/gpu/drm/vkms/vkms_crc.c  | 38 ++++++++++++++++++++++++++++++++++----
> > >   drivers/gpu/drm/vkms/vkms_crtc.c |  1 +
> > >   drivers/gpu/drm/vkms/vkms_drv.h  |  2 ++
> > >   3 files changed, 37 insertions(+), 4 deletions(-)
> > > 
> > > diff --git a/drivers/gpu/drm/vkms/vkms_crc.c b/drivers/gpu/drm/vkms/vkms_crc.c
> > > index 37d717f38e3c..b2a484b4e2ad 100644
> > > --- a/drivers/gpu/drm/vkms/vkms_crc.c
> > > +++ b/drivers/gpu/drm/vkms/vkms_crc.c
> > > @@ -70,6 +70,37 @@ void vkms_crc_work_handle(struct work_struct *work)
> > >   	drm_crtc_add_crc_entry(crtc, true, crtc_state->n_frame, &crc32);
> > >   }
> > > +static int vkms_crc_parse_source(const char *src_name, bool *enabled)
> > > +{
> > > +	int ret = 0;
> > > +
> > > +	if (!src_name) {
> > > +		*enabled = false;
> > > +	} else if (strcmp(src_name, "auto") == 0) {
> > > +		*enabled = true;
> > > +	} else {
> > > +		*enabled = false;
> > > +		ret = -EINVAL;
> > > +	}
> > > +
> > > +	return ret;
> > > +}
> > > +
> > > +int vkms_verify_crc_source(struct drm_crtc *crtc, const char *src_name,
> > > +			   size_t *values_cnt)
> > > +{
> > > +	bool enabled;
> > > +
> > > +	if (vkms_crc_parse_source(src_name, &enabled) < 0) {
> > > +		DRM_DEBUG_DRIVER("unknown source %s\n", src_name);
> > > +		return -EINVAL;
> > > +	}
> > > +
> > > +	*values_cnt = 1;
> > > +
> > > +	return 0;
> > > +}
> > > +
> > >   int vkms_set_crc_source(struct drm_crtc *crtc, const char *src_name,
> > >   			size_t *values_cnt)
> > >   {
> > > @@ -78,10 +109,9 @@ int vkms_set_crc_source(struct drm_crtc *crtc, const char *src_name,
> > >   	unsigned long flags;
> > >   	int ret = 0;
> > > -	if (src_name && strcmp(src_name, "auto") == 0)
> > > -		enabled = true;
> > > -	else if (src_name)
> > > -		ret = -EINVAL;
> > > +	ret = vkms_crc_parse_source(src_name, &enabled);
> > > +	if (ret)
> > > +		return ret;
> > I think the return value after vkms_crc_parse_source should be called
> > once instead at the end of vkms_set_crc_source otherwise crc_enabled
> > won't be updated?
> Here I'm assuming if src_name is wrong we don't need to proceed further, let
> the CRC generation to continue whatever it was doing (enabled or disabled).
> But anyway that is changing the original design, will remove above return to
> keep the behavior same.
> 
> -Mahesh

hm I'm not really sure if my approach was the right way, but if it wasn't
then I think maybe this change would be better if it was either in a separate patch or
here with more details

Thank you,
Haneen

> > 
> > - Haneen
> > 
> > >   	*values_cnt = 1;
> > > diff --git a/drivers/gpu/drm/vkms/vkms_crtc.c b/drivers/gpu/drm/vkms/vkms_crtc.c
> > > index bfe6e0312cc4..9d0b1a325a78 100644
> > > --- a/drivers/gpu/drm/vkms/vkms_crtc.c
> > > +++ b/drivers/gpu/drm/vkms/vkms_crtc.c
> > > @@ -140,6 +140,7 @@ static const struct drm_crtc_funcs vkms_crtc_funcs = {
> > >   	.enable_vblank		= vkms_enable_vblank,
> > >   	.disable_vblank		= vkms_disable_vblank,
> > >   	.set_crc_source		= vkms_set_crc_source,
> > > +	.verify_crc_source	= vkms_verify_crc_source,
> > >   };
> > >   static void vkms_crtc_atomic_enable(struct drm_crtc *crtc,
> > > diff --git a/drivers/gpu/drm/vkms/vkms_drv.h b/drivers/gpu/drm/vkms/vkms_drv.h
> > > index f156c930366a..090c5e4f5544 100644
> > > --- a/drivers/gpu/drm/vkms/vkms_drv.h
> > > +++ b/drivers/gpu/drm/vkms/vkms_drv.h
> > > @@ -125,6 +125,8 @@ void vkms_gem_vunmap(struct drm_gem_object *obj);
> > >   /* CRC Support */
> > >   int vkms_set_crc_source(struct drm_crtc *crtc, const char *src_name,
> > >   			size_t *values_cnt);
> > > +int vkms_verify_crc_source(struct drm_crtc *crtc, const char *source_name,
> > > +			   size_t *values_cnt);
> > >   void vkms_crc_work_handle(struct work_struct *work);
> > >   #endif /* _VKMS_DRV_H_ */
> > > -- 
> > > 2.16.2
> > > 
> 
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* ✓ Fi.CI.IGT: success for Improve crc-core driver interface (rev13)
  2018-08-13 15:11 [PATCH v5 0/3] Improve crc-core driver interface Mahesh Kumar
                   ` (8 preceding siblings ...)
  2018-08-21  6:11 ` ✓ Fi.CI.BAT: " Patchwork
@ 2018-08-21  6:59 ` Patchwork
  9 siblings, 0 replies; 17+ messages in thread
From: Patchwork @ 2018-08-21  6:59 UTC (permalink / raw)
  To: Mahesh Kumar; +Cc: intel-gfx

== Series Details ==

Series: Improve crc-core driver interface (rev13)
URL   : https://patchwork.freedesktop.org/series/45246/
State : success

== Summary ==

= CI Bug Log - changes from CI_DRM_4692_full -> Patchwork_9982_full =

== Summary - SUCCESS ==

  No regressions found.

  

== Known issues ==

  Here are the changes found in Patchwork_9982_full that come from known issues:

  === IGT changes ===

    ==== Issues hit ====

    igt@gem_workarounds@suspend-resume:
      shard-glk:          PASS -> FAIL (fdo#103375)

    igt@kms_setmode@basic:
      shard-kbl:          PASS -> FAIL (fdo#99912)

    
    ==== Possible fixes ====

    igt@drv_suspend@shrink:
      shard-glk:          FAIL (fdo#106886) -> PASS

    igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-indfb-draw-mmap-wc:
      shard-glk:          FAIL (fdo#103167) -> PASS

    
  fdo#103167 https://bugs.freedesktop.org/show_bug.cgi?id=103167
  fdo#103375 https://bugs.freedesktop.org/show_bug.cgi?id=103375
  fdo#106886 https://bugs.freedesktop.org/show_bug.cgi?id=106886
  fdo#99912 https://bugs.freedesktop.org/show_bug.cgi?id=99912


== Participating hosts (5 -> 5) ==

  No changes in participating hosts


== Build changes ==

    * Linux: CI_DRM_4692 -> Patchwork_9982

  CI_DRM_4692: d53f119472fc7daa532e46ea77098e9e9db2ac10 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4607: 6e0b3e7a2d241af36f8c6b1cc335aa1db3532d29 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_9982: 9965c67bd8260b6b8ef1fd7fa7d0ef50ac4c68b2 @ git://anongit.freedesktop.org/gfx-ci/linux
  piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit

== Logs ==

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

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

end of thread, other threads:[~2018-08-21  6:59 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-08-13 15:11 [PATCH v5 0/3] Improve crc-core driver interface Mahesh Kumar
2018-08-13 15:11 ` [PATCH v1 1/3] drm/vkms/crc: Implement verify_crc_source callback Mahesh Kumar
2018-08-14  3:01   ` [PATCH V2 " Mahesh Kumar
2018-08-20 22:39     ` Haneen Mohammed
2018-08-21  4:23       ` Kumar, Mahesh
2018-08-21  4:34         ` [PATCH V3 " Mahesh Kumar
2018-08-21  6:16           ` Haneen Mohammed
2018-08-21  6:25         ` [PATCH V2 " Haneen Mohammed
2018-08-13 15:11 ` [PATCH v5 2/3] drm/crc: Cleanup crtc_crc_open function Mahesh Kumar
2018-08-13 15:11 ` [PATCH v4 3/3] Revert "drm: crc: Wait for a frame before returning from open()" Mahesh Kumar
2018-08-13 15:40 ` ✗ Fi.CI.BAT: failure for Improve crc-core driver interface (rev11) Patchwork
2018-08-14  3:26 ` ✗ Fi.CI.BAT: failure for Improve crc-core driver interface (rev12) Patchwork
2018-08-21  4:55 ` ✓ Fi.CI.BAT: success for Improve crc-core driver interface (rev13) Patchwork
2018-08-21  5:17 ` ✗ Fi.CI.BAT: failure " Patchwork
2018-08-21  5:53 ` ✓ Fi.CI.IGT: success " Patchwork
2018-08-21  6:11 ` ✓ Fi.CI.BAT: " Patchwork
2018-08-21  6:59 ` ✓ Fi.CI.IGT: " Patchwork

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.