All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mahesh Kumar <mahesh1.kumar@intel.com>
To: intel-gfx@lists.freedesktop.org
Cc: laurent.pinchart@ideasonboard.com, dri-devel@lists.freedesktop.org
Subject: [PATCH v4 02/10] drm: crc: Introduce get_crc_sources callback
Date: Fri, 13 Jul 2018 19:29:34 +0530	[thread overview]
Message-ID: <20180713135942.25061-3-mahesh1.kumar@intel.com> (raw)
In-Reply-To: <20180713135942.25061-1-mahesh1.kumar@intel.com>

This patch introduce a callback function "get_crc_sources" which
will be called during read of control node. It is an optional
callback function and if driver implements this callback, driver
should return a constant pointer to an array of crc sources list
and update count according to the number of source in the list.

Changes Since V1: (Daniel)
 - return const pointer to an array of crc sources list
 - do validation of sources in CRC-core
Changes Since V2:
 - update commit message
 - update callback documentation
 - print one source name per line

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>
---
 drivers/gpu/drm/drm_debugfs_crc.c | 23 ++++++++++++++++++++++-
 include/drm/drm_crtc.h            | 22 ++++++++++++++++++++++
 2 files changed, 44 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/drm_debugfs_crc.c b/drivers/gpu/drm/drm_debugfs_crc.c
index 72bfd8af3f7a..d7e626331eca 100644
--- a/drivers/gpu/drm/drm_debugfs_crc.c
+++ b/drivers/gpu/drm/drm_debugfs_crc.c
@@ -68,8 +68,29 @@ static int crc_control_show(struct seq_file *m, void *data)
 {
 	struct drm_crtc *crtc = m->private;
 
-	seq_printf(m, "%s\n", crtc->crc.source);
+	if (crtc->funcs->get_crc_sources) {
+		size_t count;
+		const char *const *sources = crtc->funcs->get_crc_sources(crtc,
+									&count);
+		size_t values_cnt;
+		int i;
+
+		if (count == 0 || !sources)
+			goto out;
+
+		for (i = 0; i < count; i++)
+			if (!crtc->funcs->verify_crc_source(crtc, sources[i],
+							    &values_cnt)) {
+				if (strcmp(sources[i], crtc->crc.source))
+					seq_printf(m, "%s\n", sources[i]);
+				else
+					seq_printf(m, "%s*\n", sources[i]);
+			}
+	}
+	return 0;
 
+out:
+	seq_printf(m, "%s*\n", crtc->crc.source);
 	return 0;
 }
 
diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h
index 664be20b763f..c309f371853d 100644
--- a/include/drm/drm_crtc.h
+++ b/include/drm/drm_crtc.h
@@ -700,6 +700,28 @@ struct drm_crtc_funcs {
 	 */
 	int (*verify_crc_source)(struct drm_crtc *crtc, const char *source,
 				 size_t *values_cnt);
+	/**
+	 * @get_crc_sources:
+	 *
+	 * Driver callback for getting a list of all the available sources for
+	 * CRC generation. This callback depends upon verify_crc_source, So
+	 * verify_crc_source callback should be implemented before implementing
+	 * this. Driver can pass full list of available crc sources, this
+	 * callback does the verification on each crc-source before passing it
+	 * to userspace.
+	 *
+	 * This callback is optional if the driver does not support exporting of
+	 * possible CRC sources list.
+	 *
+	 * RETURNS:
+	 *
+	 * a constant character pointer to the list of all the available CRC
+	 * sources. On failure driver should return NULL. count should be
+	 * updated with number of sources in list. if zero we don't process any
+	 * source from the list.
+	 */
+	const char *const *(*get_crc_sources)(struct drm_crtc *crtc,
+					      size_t *count);
 
 	/**
 	 * @atomic_print_state:
-- 
2.16.2

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

  parent reply	other threads:[~2018-07-13 13:59 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-07-13 13:59 [PATCH 00/10] Improve crc-core driver interface Mahesh Kumar
2018-07-13 13:59 ` [PATCH v4 01/10] drm: crc: Introduce verify_crc_source callback Mahesh Kumar
2018-07-13 13:59 ` Mahesh Kumar [this message]
2018-07-13 13:59 ` [PATCH v4 03/10] drm/rockchip/crc: Implement " Mahesh Kumar
2018-07-13 13:59 ` [PATCH v4 04/10] drm/amdgpu_dm/crc: " Mahesh Kumar
2018-07-13 13:59 ` [PATCH v4 05/10] drm/rcar-du/crc: " Mahesh Kumar
2018-07-19 10:56   ` Laurent Pinchart
2018-07-23 10:38     ` [PATCH v5 " Mahesh Kumar
2018-07-13 13:59 ` [PATCH v4 06/10] drm/i915/crc: implement " Mahesh Kumar
2018-07-13 13:59 ` [PATCH v4 07/10] drm/i915/crc: implement get_crc_sources callback Mahesh Kumar
2018-07-13 13:59 ` [PATCH v4 08/10] drm/crc: Cleanup crtc_crc_open function Mahesh Kumar
2018-07-13 13:59 ` [PATCH v4 09/10] Revert "drm: crc: Wait for a frame before returning from open()" Mahesh Kumar
2018-07-13 13:59 ` [PATCH v4 10/10] drm/rcar-du/crc: Implement get_crc_sources callback Mahesh Kumar
2018-07-19 11:12   ` Laurent Pinchart
2018-07-19 11:24     ` Kumar, Mahesh
2018-07-23 10:44     ` [PATCH v5 " Mahesh Kumar
2018-08-08  8:25       ` Laurent Pinchart
2018-08-08 15:26         ` [PATCH V6 " Mahesh Kumar
2018-08-13 12:13           ` Maarten Lankhorst
2018-07-13 14:16 ` ✗ Fi.CI.SPARSE: warning for Improve crc-core driver interface (rev7) Patchwork
2018-07-13 14:26 ` ✗ Fi.CI.BAT: failure " Patchwork
2018-07-23 11:03 ` ✗ Fi.CI.SPARSE: warning for Improve crc-core driver interface (rev9) Patchwork
2018-07-23 11:19 ` ✗ Fi.CI.BAT: failure " Patchwork
2018-08-02 13:16 ` Patchwork
2018-08-08 15:49 ` ✗ Fi.CI.SPARSE: warning for Improve crc-core driver interface (rev10) Patchwork
2018-08-08 15:59 ` ✗ Fi.CI.BAT: failure " Patchwork

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=20180713135942.25061-3-mahesh1.kumar@intel.com \
    --to=mahesh1.kumar@intel.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=laurent.pinchart@ideasonboard.com \
    /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.