aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/linux-yocto-4.19.8/0811-drm-crc-Introduce-verify_crc_source-callback.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.19.8/0811-drm-crc-Introduce-verify_crc_source-callback.patch')
-rw-r--r--common/recipes-kernel/linux/linux-yocto-4.19.8/0811-drm-crc-Introduce-verify_crc_source-callback.patch84
1 files changed, 84 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.19.8/0811-drm-crc-Introduce-verify_crc_source-callback.patch b/common/recipes-kernel/linux/linux-yocto-4.19.8/0811-drm-crc-Introduce-verify_crc_source-callback.patch
new file mode 100644
index 00000000..5eec1cc0
--- /dev/null
+++ b/common/recipes-kernel/linux/linux-yocto-4.19.8/0811-drm-crc-Introduce-verify_crc_source-callback.patch
@@ -0,0 +1,84 @@
+From bf952ebc80e84adf6d5849efd17dafa5f9d7a6a2 Mon Sep 17 00:00:00 2001
+From: Mahesh Kumar <mahesh1.kumar@intel.com>
+Date: Fri, 13 Jul 2018 19:29:33 +0530
+Subject: [PATCH 0811/2940] drm: crc: Introduce verify_crc_source callback
+
+This patch adds a new callback function "verify_crc_source" which will
+be used during setting the crc source in control node. This will help
+in avoiding setting of wrong string for source.
+
+Changes since V1:
+ - do not yet verify_crc_source during open.
+Changes since V1:
+ - improve callback description
+
+Signed-off-by: Mahesh Kumar <mahesh1.kumar@intel.com>
+Cc: dri-devel@lists.freedesktop.org
+Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
+Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
+Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
+Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
+Link: https://patchwork.freedesktop.org/patch/msgid/20180713135942.25061-2-mahesh1.kumar@intel.com
+---
+ drivers/gpu/drm/drm_debugfs_crc.c | 8 ++++++++
+ include/drm/drm_crtc.h | 18 ++++++++++++++++++
+ 2 files changed, 26 insertions(+)
+
+diff --git a/drivers/gpu/drm/drm_debugfs_crc.c b/drivers/gpu/drm/drm_debugfs_crc.c
+index 6e4734f55f97..ef1f449582ba 100644
+--- a/drivers/gpu/drm/drm_debugfs_crc.c
++++ b/drivers/gpu/drm/drm_debugfs_crc.c
+@@ -87,6 +87,8 @@ static ssize_t crc_control_write(struct file *file, const char __user *ubuf,
+ struct drm_crtc *crtc = m->private;
+ struct drm_crtc_crc *crc = &crtc->crc;
+ char *source;
++ size_t values_cnt;
++ int ret;
+
+ if (len == 0)
+ return 0;
+@@ -104,6 +106,12 @@ 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;
++ }
++
+ spin_lock_irq(&crc->lock);
+
+ if (crc->opened) {
+diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h
+index d089431a252c..9360f057effd 100644
+--- a/include/drm/drm_crtc.h
++++ b/include/drm/drm_crtc.h
+@@ -745,6 +745,24 @@ 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);
++
++ /**
++ * @verify_crc_source:
++ *
++ * verifies the source of CRC checksums of frames before setting the
++ * source for CRC and during crc open. Source parameter can be NULL
++ * while disabling crc source.
++ *
++ * This callback is optional if the driver does not support any CRC
++ * generation functionality.
++ *
++ * RETURNS:
++ *
++ * 0 on success or a negative error code on failure.
++ */
++ int (*verify_crc_source)(struct drm_crtc *crtc, const char *source,
++ size_t *values_cnt);
++
+ /**
+ * @atomic_print_state:
+ *
+--
+2.17.1
+