All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mahesh Kumar <mahesh1.kumar@intel.com>
To: intel-gfx@lists.freedesktop.org
Cc: Mahesh Kumar <mahesh1.kumar@intel.com>, dri-devel@lists.freedesktop.org
Subject: [PATCH 01/10] drm: crc: Introduce verify_crc_source callback
Date: Mon,  2 Jul 2018 16:37:20 +0530	[thread overview]
Message-ID: <20180702110729.8171-2-mahesh1.kumar@intel.com> (raw)
In-Reply-To: <20180702110729.8171-1-mahesh1.kumar@intel.com>

This patch adds a new callback function "verify_crc_source" which will
be used during setting the crc source in control node and while opening
data node for crc reading. This will help in avoiding setting of wrong
string for source.

Signed-off-by: Mahesh Kumar <mahesh1.kumar@intel.com>
Cc: dri-devel@lists.freedesktop.org
Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
---
 drivers/gpu/drm/drm_debugfs_crc.c | 15 +++++++++++++++
 include/drm/drm_crtc.h            | 15 +++++++++++++++
 2 files changed, 30 insertions(+)

diff --git a/drivers/gpu/drm/drm_debugfs_crc.c b/drivers/gpu/drm/drm_debugfs_crc.c
index 9f8312137cad..c6a725b79ac6 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 = 0;
 
 	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) {
@@ -167,6 +175,13 @@ static int crtc_crc_open(struct inode *inode, struct file *filep)
 			return ret;
 	}
 
+	if (crtc->funcs->verify_crc_source) {
+		ret = crtc->funcs->verify_crc_source(crtc, crc->source,
+						     &values_cnt);
+		if (ret)
+			return ret;
+	}
+
 	spin_lock_irq(&crc->lock);
 	if (!crc->opened)
 		crc->opened = true;
diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h
index 23eddbccab10..1a6dcbf91744 100644
--- a/include/drm/drm_crtc.h
+++ b/include/drm/drm_crtc.h
@@ -661,6 +661,21 @@ struct drm_crtc_funcs {
 	 */
 	int (*set_crc_source)(struct drm_crtc *crtc, const char *source,
 			      size_t *values_cnt);
+	/**
+	 * @verify_crc_source:
+	 *
+	 * verifies the source of CRC checksums of frames before setting the
+	 * source for CRC and during crc open.
+	 *
+	 * 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.16.2

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

  reply	other threads:[~2018-07-02 11:07 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-07-02 11:07 [PATCH 00/10] Improve crc-core driver interface Mahesh Kumar
2018-07-02 11:07 ` Mahesh Kumar [this message]
2018-07-10 11:26   ` [PATCH 01/10] drm: crc: Introduce verify_crc_source callback Laurent Pinchart
2018-07-10 11:54     ` Kumar, Mahesh
2018-07-10 12:10       ` Laurent Pinchart
2018-07-10 12:12         ` Kumar, Mahesh
2018-07-02 11:07 ` [PATCH 02/10] drm: crc: Introduce get_crc_sources callback Mahesh Kumar
2018-07-10 11:22   ` Laurent Pinchart
2018-07-10 12:01     ` Kumar, Mahesh
2018-07-10 12:09       ` Laurent Pinchart
2018-07-10 12:11         ` Kumar, Mahesh
2018-07-02 11:07 ` [PATCH 03/10] drm/rockchip/crc: Implement verify_crc_source callback Mahesh Kumar
2018-07-03 10:16   ` Maarten Lankhorst
2018-07-03 10:46     ` Heiko Stübner
2018-07-02 11:07 ` [PATCH 04/10] drm/amdgpu_dm/crc: " Mahesh Kumar
2018-07-03 10:19   ` Maarten Lankhorst
2018-07-03 13:04     ` Leo Li
2018-07-02 11:07 ` [PATCH 05/10] drm/rcar-du/crc: " Mahesh Kumar
2018-07-03 10:20   ` Maarten Lankhorst
2018-07-10 11:37   ` Laurent Pinchart
2018-07-10 12:59     ` Kumar, Mahesh
2018-07-11 10:45       ` Laurent Pinchart
2018-07-02 11:07 ` [PATCH 06/10] drm/i915/crc: implement " Mahesh Kumar
2018-07-02 12:18   ` Maarten Lankhorst
2018-07-02 11:07 ` [PATCH 07/10] drm/i915/crc: implement get_crc_sources callback Mahesh Kumar
2018-07-02 11:07 ` [PATCH 08/10] drm/crc: Cleanup crtc_crc_open function Mahesh Kumar
2018-07-03 13:05   ` Leo Li
2018-07-10 11:49   ` Laurent Pinchart
2018-07-10 13:18     ` Kumar, Mahesh
2018-07-02 11:07 ` [PATCH 09/10] Revert "drm: crc: Wait for a frame before returning from open()" Mahesh Kumar
2018-07-10 12:02   ` Laurent Pinchart
2018-07-02 11:07 ` [PATCH 10/10] drm: crc: Introduce pre_crc_read function Mahesh Kumar
2018-07-10 12:05   ` Laurent Pinchart
2018-07-02 11:46 ` ✗ Fi.CI.BAT: failure for Improve crc-core driver interface (rev4) Patchwork
2018-07-02 16:15 ` [PATCH 00/10] Improve crc-core driver interface Alex Deucher
  -- strict thread matches above, loose matches on Subject: below --
2018-07-12  8:36 Mahesh Kumar
2018-07-12  8:36 ` [PATCH 01/10] drm: crc: Introduce verify_crc_source callback Mahesh Kumar
2018-07-12 11:06   ` Laurent Pinchart
2018-07-11 15:11 [PATCH 00/10] Improve crc-core driver interface Mahesh Kumar
2018-07-11 15:11 ` [PATCH 01/10] drm: crc: Introduce verify_crc_source callback Mahesh Kumar
2018-06-27 14:44 [PATCH 00/10] Improve crc-core driver interface Mahesh Kumar
2018-06-27 14:44 ` [PATCH 01/10] drm: crc: Introduce verify_crc_source callback Mahesh Kumar
2018-06-26  6:22 [PATCH 00/10] Improve crc-core driver interface Mahesh Kumar
2018-06-26  6:22 ` [PATCH 01/10] drm: crc: Introduce verify_crc_source callback Mahesh Kumar
2018-06-22 10:41 [PATCH 00/10] Improve crc-core driver interface Mahesh Kumar
2018-06-22 10:41 ` [PATCH 01/10] drm: crc: Introduce verify_crc_source callback Mahesh Kumar
2018-06-25 15:38   ` Daniel Vetter

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180702110729.8171-2-mahesh1.kumar@intel.com \
    --to=mahesh1.kumar@intel.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=intel-gfx@lists.freedesktop.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.