All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sagar Arun Kamble <sagar.a.kamble@intel.com>
To: intel-gfx@lists.freedesktop.org
Cc: Tom O'Rourke <Tom.O'Rourke@intel.com>
Subject: [PATCH v6 11/23] drm/i915/slpc: Add SLPC communication interfaces
Date: Thu, 16 Mar 2017 23:58:15 +0530	[thread overview]
Message-ID: <1489688907-18718-12-git-send-email-sagar.a.kamble@intel.com> (raw)
In-Reply-To: <1489688907-18718-1-git-send-email-sagar.a.kamble@intel.com>

Communication with SLPC is via Host to GuC interrupt.
This patch defines the data structure to be passed as input
and received as output from SLPC. This patch also defines the
events to be sent as input and status values output by GuC
on processing SLPC events.

v1: fix whitespace (Sagar)

v2-v3: Rebase.

v4: Updated with GuC firmware v9.

v5: Added definition of input and output data structures for SLPC
events. Updated commit message.

v6: Removed definition of host2guc_slpc. Will be added in the next
patch that uses it. Commit subject update. Rebase.

Signed-off-by: Tom O'Rourke <Tom.O'Rourke@intel.com>
Signed-off-by: Sagar Arun Kamble <sagar.a.kamble@intel.com>
---
 drivers/gpu/drm/i915/intel_slpc.h | 71 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 71 insertions(+)

diff --git a/drivers/gpu/drm/i915/intel_slpc.h b/drivers/gpu/drm/i915/intel_slpc.h
index 3b8c27b..f7819ed 100644
--- a/drivers/gpu/drm/i915/intel_slpc.h
+++ b/drivers/gpu/drm/i915/intel_slpc.h
@@ -123,6 +123,77 @@ struct intel_slpc {
 	struct i915_vma *vma;
 };
 
+#define SLPC_EVENT_MAX_INPUT_ARGS  7
+#define SLPC_EVENT_MAX_OUTPUT_ARGS 1
+
+union slpc_event_input_header {
+	u32 value;
+	struct {
+		u32 num_args:8;
+		u32 event_id:8;
+	};
+};
+
+struct slpc_event_input {
+	u32 h2g_action_id;
+	union slpc_event_input_header header;
+	u32 args[SLPC_EVENT_MAX_INPUT_ARGS];
+} __packed;
+
+union slpc_event_output_header {
+	u32 value;
+	struct {
+		u32 num_args:8;
+		u32 event_id:8;
+		u32 status:16;
+	};
+};
+
+struct slpc_event_output {
+	u32 reserved;
+	union slpc_event_output_header header;
+	u32 args[SLPC_EVENT_MAX_OUTPUT_ARGS];
+} __packed;
+
+enum slpc_event_id {
+	SLPC_EVENT_RESET = 0,
+	SLPC_EVENT_SHUTDOWN = 1,
+	SLPC_EVENT_PLATFORM_INFO_CHANGE = 2,
+	SLPC_EVENT_DISPLAY_MODE_CHANGE = 3,
+	SLPC_EVENT_FLIP_COMPLETE = 4,
+	SLPC_EVENT_QUERY_TASK_STATE = 5,
+	SLPC_EVENT_PARAMETER_SET = 6,
+	SLPC_EVENT_PARAMETER_UNSET = 7,
+};
+
+#define SLPC_EVENT(id, argc)	((u32) (id) << 8 | (argc))
+
+enum slpc_status {
+	SLPC_STATUS_OK = 0,
+	SLPC_STATUS_ERROR = 1,
+	SLPC_STATUS_ILLEGAL_COMMAND = 2,
+	SLPC_STATUS_INVALID_ARGS = 3,
+	SLPC_STATUS_INVALID_PARAMS = 4,
+	SLPC_STATUS_INVALID_DATA = 5,
+	SLPC_STATUS_OUT_OF_RANGE = 6,
+	SLPC_STATUS_NOT_SUPPORTED = 7,
+	SLPC_STATUS_NOT_IMPLEMENTED = 8,
+	SLPC_STATUS_NO_DATA = 9,
+	SLPC_STATUS_EVENT_NOT_REGISTERED = 10,
+	SLPC_STATUS_REGISTER_LOCKED = 11,
+	SLPC_STATUS_TEMPORARILY_UNAVAILABLE = 12,
+	SLPC_STATUS_VALUE_ALREADY_SET = 13,
+	SLPC_STATUS_VALUE_ALREADY_UNSET = 14,
+	SLPC_STATUS_VALUE_NOT_CHANGED = 15,
+	SLPC_STATUS_MEMIO_ERROR = 16,
+	SLPC_STATUS_EVENT_QUEUED_REQ_DPC = 17,
+	SLPC_STATUS_EVENT_QUEUED_NOREQ_DPC = 18,
+	SLPC_STATUS_NO_EVENT_QUEUED = 19,
+	SLPC_STATUS_OUT_OF_SPACE = 20,
+	SLPC_STATUS_TIMEOUT = 21,
+	SLPC_STATUS_NO_LOCK = 22,
+};
+
 /* intel_slpc.c */
 void intel_slpc_init(struct drm_i915_private *dev_priv);
 void intel_slpc_cleanup(struct drm_i915_private *dev_priv);
-- 
1.9.1

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

  parent reply	other threads:[~2017-03-16 18:26 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-03-16 18:28 [PATCH v6 00/23] Add support for GuC-based SLPC Sagar Arun Kamble
2017-03-16 18:28 ` [PATCH v6 01/23] drm/i915/debugfs: Create generic string tokenize function and update CRC control parsing Sagar Arun Kamble
2017-03-16 18:28 ` [PATCH v6 02/23] drm/i915/gen9: Separate RPS and RC6 handling Sagar Arun Kamble
2017-03-17 20:05   ` Chris Wilson
2017-03-16 18:28 ` [PATCH v6 03/23] drm/i915/slpc: Add has_slpc capability flag Sagar Arun Kamble
2017-03-16 18:28 ` [PATCH v6 04/23] drm/i915/slpc: Add enable_slpc module parameter Sagar Arun Kamble
2017-03-16 18:28 ` [PATCH v6 05/23] drm/i915/slpc: Sanitize GuC version Sagar Arun Kamble
2017-03-16 20:56   ` Chris Wilson
2017-03-17  9:21     ` Kamble, Sagar A
2017-03-16 18:28 ` [PATCH v6 06/23] drm/i915/slpc: Use intel_slpc_* functions if supported Sagar Arun Kamble
2017-03-16 21:05   ` Chris Wilson
2017-03-17  9:58     ` Kamble, Sagar A
2017-03-16 18:28 ` [PATCH v6 07/23] drm/i915/slpc: Enable SLPC in GuC " Sagar Arun Kamble
2017-03-16 18:28 ` [PATCH v6 08/23] drm/i915/slpc: If using SLPC, do not set frequency Sagar Arun Kamble
2017-03-16 18:28 ` [PATCH v6 09/23] drm/i915/slpc: Allocate/Release/Initialize SLPC shared data Sagar Arun Kamble
2017-03-16 18:28 ` [PATCH v6 10/23] drm/i915/slpc: Add SLPC banner to RPS debugfs interfaces Sagar Arun Kamble
2017-03-16 18:28 ` Sagar Arun Kamble [this message]
2017-03-16 18:28 ` [PATCH v6 12/23] drm/i915/slpc: Send RESET event to enable SLPC Sagar Arun Kamble
2017-03-16 18:28 ` [PATCH v6 13/23] drm/i915/slpc: Send SHUTDOWN event Sagar Arun Kamble
2017-03-16 18:28 ` [PATCH v6 14/23] drm/i915/slpc: Add parameter set/unset/get functions Sagar Arun Kamble
2017-03-16 18:28 ` [PATCH v6 15/23] drm/i915/slpc: Add debugfs support to read/write/revert the parameters Sagar Arun Kamble
2017-03-16 18:28 ` [PATCH v6 16/23] drm/i915/slpc: Add support for min/max frequency control Sagar Arun Kamble
2017-03-16 18:28 ` [PATCH v6 17/23] drm/i915/slpc: Add enable/disable controls for SLPC tasks Sagar Arun Kamble
2017-03-16 18:28 ` [PATCH v6 18/23] drm/i915/slpc: Add i915_slpc_info to debugfs Sagar Arun Kamble
2017-03-16 18:28 ` [PATCH v6 19/23] drm/i915/slpc: Set default values for tasks and min frequency parameters Sagar Arun Kamble
2017-03-16 21:18   ` Chris Wilson
2017-03-17 10:02     ` Kamble, Sagar A
2017-03-16 18:28 ` [PATCH v6 20/23] drm/i915/slpc: Add SKL SLPC Support Sagar Arun Kamble
2017-03-16 18:28 ` [PATCH v6 21/23] drm/i915/slpc: Add Broxton SLPC support Sagar Arun Kamble
2017-03-16 18:28 ` [PATCH v6 22/23] drm/i915/slpc: Add Kabylake " Sagar Arun Kamble
2017-03-16 18:28 ` [PATCH v6 23/23] drm/i915/slpc: Enable SLPC, where supported Sagar Arun Kamble
2017-03-16 21:16   ` Chris Wilson
2017-03-16 18:45 ` ✓ Fi.CI.BAT: success for Add support for GuC-based SLPC (rev8) Patchwork
  -- strict thread matches above, loose matches on Subject: below --
2017-03-16 16:32 [PATCH v6 00/23] Add support for GuC-based SLPC Sagar Arun Kamble
2017-03-16 16:32 ` [PATCH v6 11/23] drm/i915/slpc: Add SLPC communication interfaces Sagar Arun Kamble

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=1489688907-18718-12-git-send-email-sagar.a.kamble@intel.com \
    --to=sagar.a.kamble@intel.com \
    --cc=Tom.O'Rourke@intel.com \
    --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.