diff options
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.patch | 84 |
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 + |