From: Sean Paul <seanpaul@chromium.org>
To: Ramalingam C <ramalingam.c@intel.com>
Cc: daniel.vetter@ffwll.ch, intel-gfx@lists.freedesktop.org,
rodrigo.vivi@intel.com, tomas.winkler@intel.com
Subject: Re: [PATCH 26/43] drm/i915: Define Intel HDCP2.2 registers
Date: Thu, 22 Feb 2018 10:43:56 -0500 [thread overview]
Message-ID: <20180222154356.GD223881@art_vandelay> (raw)
In-Reply-To: <1518617638-21684-27-git-send-email-ramalingam.c@intel.com>
On Wed, Feb 14, 2018 at 07:43:41PM +0530, Ramalingam C wrote:
> Intel HDCP2.2 registers are defined with addr offsets and bit details.
>
> Macros are defined for referencing the register offsets based on the
> port index.
>
> Signed-off-by: Ramalingam C <ramalingam.c@intel.com>
> ---
> drivers/gpu/drm/i915/i915_reg.h | 120 ++++++++++++++++++++++++++++++++++++++++
> 1 file changed, 120 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
> index f6afa5e5e7c1..6a57b12d8dab 100644
> --- a/drivers/gpu/drm/i915/i915_reg.h
> +++ b/drivers/gpu/drm/i915/i915_reg.h
> @@ -2268,6 +2268,126 @@ enum i915_power_well_id {
> _PORT_TX_DW14_LN0_C) + \
> _BXT_LANE_OFFSET(lane))
>
> +/*
> + *HDCP Registers
> + **/
Do you need a new section for these? Just stick them with the existing HDCP
registers.
> +
> +/*
> + * HW register offsets are incresing in the order of B, C, D, A, F, E.
> + * But enum value increses in the order of A, B, C, D, E, F.
> + * So port numbers are adjusted for offset calculations.
> + */
> +#define HDCP_PORT_INDEX_ADJUST(p) (((p) == PORT_A ? PORT_E : \
> + (p) == PORT_E ? (0x6) : \
> + (p)) - 1)
> +#define _MMIO_HDCP_PORT(p, a, b) _MMIO_PORT(HDCP_PORT_INDEX_ADJUST(p), \
> + a, b)
Can you do this the same was as I did _PORT_HDCP_AUTHENC, with _PICK? Then you
aren't limited to just ports a and b (and you don't need the arithmatic above.
> +
> +
> +/* RO Registers for I915. Programmable from FW(ME) only */
> +#define HDCP2_AUTH_DDI_A 0x66898
> +#define HDCP2_AUTH_DDI_B 0x66598
> +#define HDCP2_AUTH_DDI_C 0x66698
> +#define HDCP2_AUTH_DDI_D 0x66798
> +#define HDCP2_AUTH_DDI_E 0x66A98
> +#define HDCP2_AUTH_DDI_F 0x66998
> +#define AUTH_LINK_AUTHENTICATED (1 << 31)
> +#define AUTH_LINK_TYPE (1 << 30)
> +#define AUTH_FORCE_CLR_INPUTCTR (1 << 19)
> +#define AUTH_CLR_KEYS (1 << 18)
> +
> +#define HDCP2_AUTH_DDI(port) _MMIO_HDCP_PORT(port, \
> + HDCP2_AUTH_DDI_B, \
> + HDCP2_AUTH_DDI_C)
> +
> +
> +/* Multi stream DP registers */
> +/* RO Registers for I915. Programmable from FW(ME) only */
> +#define HDCP2_AUTH_STREAM_A 0x66F00
> +#define HDCP2_AUTH_STREAM_B 0x66F04
> +#define HDCP2_AUTH_STREAM_C 0x66F08
> +#define HDCP2_AUTH_STREAM_D 0x66F0C
> +#define AUTH_STREAM_TYPE (1 << 31)
> +
> +#define HDCP2_AUTH_STREAM(stream) _MMIO_PORT(stream, \
> + HDCP2_AUTH_STREAM_A, \
> + HDCP2_AUTH_STREAM_B)
> +
> +/* RW Registers for I915 */
> +#define HDCP2_CTL_DDI_A 0x668B0
> +#define HDCP2_CTL_DDI_B 0x665B0
> +#define HDCP2_CTL_DDI_C 0x666B0
> +#define HDCP2_CTL_DDI_D 0x667B0
> +#define HDCP2_CTL_DDI_E 0x66AB0
> +#define HDCP2_CTL_DDI_F 0x669B0
> +#define CTL_LINK_ENCRYPTION_REQ (1 << 31)
> +#define CTL_VBID_TYPE_SELECT_SHIFT 29
> +#define CTL_VBID_TYPE_SELECT_MASK (3 << CTL_VBID_TYPE_SELECT_SHIFT)
> +
> +#define HDCP2_CTR_DDI(port) _MMIO_HDCP_PORT(port, HDCP2_CTL_DDI_B, \
> + HDCP2_CTL_DDI_C)
> +
> +/* RO only. For Debug purpose */
> +#define HDCP2_INPUTCTR_DDI_A 0x668B8
> +#define HDCP2_INPUTCTR_DDI_B 0x665B8
> +#define HDCP2_INPUTCTR_DDI_C 0x666B8
> +#define HDCP2_INPUTCTR_DDI_D 0x667B8
> +#define HDCP2_INPUTCTR_DDI_E 0x66AB8
> +#define HDCP2_INPUTCTR_DDI_F 0x669B8
> +
> +#define HDCP2_INPUTCTR_LO_DDI(port) _MMIO_HDCP_PORT(port, \
> + HDCP2_INPUTCTL_DDI_B, \
> + HDCP2_INPUTCTL_DDI_C)
> +
> +#define HDCP2_INPUTCTR_HI_DDI(port) _MMIO_HDCP_PORT(port, \
> + (HDCP2_INPUTCTL_DDI_B + 4), \
> + (HDCP2_INPUTCTL_DDI_C + 4))
> +
> +/* RO Registers for I915. Programmable from FW(ME) only */
> +#define HDCP2_RIV_DDI_A 0x66890
> +#define HDCP2_RIV_DDI_B 0x66590
> +#define HDCP2_RIV_DDI_C 0x66690
> +#define HDCP2_RIV_DDI_D 0x66790
> +#define HDCP2_RIV_DDI_E 0x66A90
> +#define HDCP2_RIV_DDI_F 0x66990
> +
> +#define HDCP2_RIV_LO_DDI(port) _MMIO_HDCP_PORT(port, HDCP2_RIV_DDI_B, \
> + HDCP2_RIV_DDI_C)
> +
> +#define HDCP2_RIV_HI_DDI(port) _MMIO_HDCP_PORT(port, \
> + (HDCP2_RIV_DDI_B + 4), \
> + (HDCP2_RIV_DDI_C + 4))
> +
> +/* RO only. For Debug purpose */
> +#define HDCP2_STATUS_DDI_A 0x668B4
> +#define HDCP2_STATUS_DDI_B 0x665B4
> +#define HDCP2_STATUS_DDI_C 0x666B4
> +#define HDCP2_STATUS_DDI_D 0x667B4
> +#define HDCP2_STATUS_DDI_E 0x66AB4
> +#define HDCP2_STATUS_DDI_F 0x669B4
> +#define STREAM_ENCRYPTION_STATUS_A (1 << 31)
> +#define STREAM_ENCRYPTION_STATUS_B (1 << 30)
> +#define STREAM_ENCRYPTION_STATUS_C (1 << 29)
> +#define LINK_TYPE_STATUS (1 << 22)
> +#define LINK_AUTH_STATUS (1 << 21)
> +#define LINK_ENCRYPTION_STATUS (1 << 20)
> +
> +#define HDCP2_STATUS_DDI(port) _MMIO_HDCP_PORT(port, \
> + HDCP2_STATUS_DDI_B, \
> + HDCP2_STATUS_DDI_C)
> +
> +/* RO only. For Debug purpose */
> +#define HDCP2_STREAM_STATUS_A 0x668C0
> +#define HDCP2_STREAM_STATUS_B 0x665C0
> +#define HDCP2_STREAM_STATUS_C 0x666C0
> +#define HDCP2_STREAM_STATUS_D 0x667C0
> +#define STREAM_ENCRYPTION_STATUS (1 << 31)
> +#define STREAM_TYPE_STATUS (1 << 30)
> +
> +#define HDCP2_STREAM_STATUS(stream) _MMIO_HDCP_PORT(stream, \
> + HDCP2_STREAM_STATUS_B, \
> + HDCP2_STREAM_STATUS_C)
> +
> /* UAIMI scratch pad register 1 */
> #define UAIMI_SPR1 _MMIO(0x4F074)
> /* SKL VccIO mask */
> --
> 2.7.4
>
--
Sean Paul, Software Engineer, Google / Chromium OS
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
next prev parent reply other threads:[~2018-02-22 15:43 UTC|newest]
Thread overview: 79+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-02-14 14:13 [PATCH 00/43] drm/i915: Implement HDCP2.2 Ramalingam C
2018-02-14 14:13 ` [PATCH 01/43] drm: hdcp2.2 authentication msg definitions Ramalingam C
2018-02-14 15:15 ` Winkler, Tomas
2018-02-14 19:40 ` Jani Nikula
2018-02-22 5:24 ` Ramalingam C
2018-02-22 5:29 ` Ramalingam C
2018-02-14 14:13 ` [PATCH 02/43] drm: HDMI and DP specific HDCP2.2 defines Ramalingam C
2018-02-14 14:13 ` [PATCH 03/43] mei: bus: whitelist hdcp client Ramalingam C
2018-02-14 14:13 ` [PATCH 04/43] mei: me: add gemini lake devices ids Ramalingam C
2018-02-14 14:45 ` Winkler, Tomas
2018-02-22 5:22 ` Ramalingam C
2018-02-14 14:13 ` [PATCH 05/43] misc/mei/hdcp: Client driver for HDCP application Ramalingam C
2018-02-14 14:54 ` Winkler, Tomas
2018-02-14 14:57 ` Ramalingam C
2018-02-14 14:13 ` [PATCH 06/43] misc/mei/hdcp: Add KBuild for mei hdcp driver Ramalingam C
2018-02-14 14:54 ` Winkler, Tomas
2018-02-14 14:58 ` Ramalingam C
2018-02-28 15:43 ` Ramalingam C
2018-02-28 16:11 ` Winkler, Tomas
2018-02-14 14:13 ` [PATCH 07/43] misc/mei/hdcp: Verify mei client device status Ramalingam C
2018-02-14 14:13 ` [PATCH 08/43] misc/mei/hdcp: Get & Put for mei cl_device Ramalingam C
2018-02-14 14:13 ` [PATCH 09/43] misc/mei/hdcp: Define ME FW interface for HDCP2.2 Ramalingam C
2018-02-14 14:13 ` [PATCH 10/43] linux/mei: Header for mei_hdcp driver interface Ramalingam C
2018-02-14 14:13 ` [PATCH 11/43] misc/mei/hdcp: Initiate Wired HDCP2.2 Tx Session Ramalingam C
2018-02-14 14:13 ` [PATCH 12/43] misc/mei/hdcp: Verify Receiver Cert and prepare km Ramalingam C
2018-02-14 14:13 ` [PATCH 13/43] misc/mei/hdcp: Verify H_prime Ramalingam C
2018-02-14 14:13 ` [PATCH 14/43] misc/mei/hdcp: Store the HDCP Pairing info Ramalingam C
2018-02-14 14:13 ` [PATCH 15/43] misc/mei/hdcp: Initiate Locality check Ramalingam C
2018-02-14 14:13 ` [PATCH 16/43] misc/mei/hdcp: Verify L_prime Ramalingam C
2018-02-14 14:13 ` [PATCH 17/43] misc/mei/hdcp: Prepare Session Key Ramalingam C
2018-02-14 14:13 ` [PATCH 18/43] misc/mei/hdcp: Repeater topology verifcation and ack Ramalingam C
2018-02-14 14:13 ` [PATCH 19/43] misc/mei/hdcp: Verify M_prime Ramalingam C
2018-02-14 14:13 ` [PATCH 20/43] misc/mei/hdcp: Enabling the HDCP authentication Ramalingam C
2018-02-14 14:13 ` [PATCH 21/43] misc/mei/hdcp: Closing wired HDCP2.2 Tx Session Ramalingam C
2018-02-14 14:13 ` [PATCH 22/43] drm/i915: Async execution of hdcp authentication Ramalingam C
2018-02-22 14:39 ` Sean Paul
2018-02-26 6:32 ` Ramalingam C
2018-02-14 14:13 ` [PATCH 23/43] drm/i915: wrapping all hdcp var into intel_hdcp Ramalingam C
2018-02-22 14:47 ` Sean Paul
2018-02-26 6:05 ` Ramalingam C
2018-02-14 14:13 ` [PATCH 24/43] drm/i915: wait for cp_irq Ramalingam C
2018-02-22 15:46 ` Sean Paul
2018-02-26 5:49 ` Ramalingam C
2018-02-14 14:13 ` [PATCH 25/43] drm/i915: Define HDCP2.2 related variables Ramalingam C
2018-02-14 14:36 ` Chris Wilson
2018-02-14 14:56 ` Ramalingam C
2018-02-22 14:59 ` Sean Paul
2018-02-26 5:46 ` Ramalingam C
2018-02-14 14:13 ` [PATCH 26/43] drm/i915: Define Intel HDCP2.2 registers Ramalingam C
2018-02-22 15:43 ` Sean Paul [this message]
2018-02-26 5:33 ` Ramalingam C
2018-02-14 14:13 ` [PATCH 27/43] drm/i915: Wrappers for mei HDCP2.2 services Ramalingam C
2018-02-14 14:13 ` [PATCH 28/43] drm/i915: Implement HDCP2.2 receiver authentication Ramalingam C
2018-02-14 14:13 ` [PATCH 29/43] drm/i915: Implement HDCP2.2 repeater authentication Ramalingam C
2018-02-14 14:13 ` [PATCH 30/43] drm/i915: Enable and Disable HDCP2.2 port encryption Ramalingam C
2018-02-14 14:38 ` Chris Wilson
2018-02-14 14:52 ` Ramalingam C
2018-02-14 14:13 ` [PATCH 31/43] drm/i915: Implement HDCP2.2 En/Dis-able Ramalingam C
2018-02-14 14:13 ` [PATCH 32/43] drm/i915: Implement HDCP2.2 link integrity check Ramalingam C
2018-02-14 14:13 ` [PATCH 33/43] drm/i915: Handle HDCP2.2 downstream topology change Ramalingam C
2018-02-14 14:13 ` [PATCH 34/43] drm/i915: Pullout the bksv read and validation Ramalingam C
2018-02-14 14:13 ` [PATCH 35/43] drm/i915: Enable HDCP version that is best capable Ramalingam C
2018-02-14 14:42 ` Chris Wilson
2018-02-14 14:51 ` Ramalingam C
2018-02-14 15:00 ` Chris Wilson
2018-02-14 15:00 ` Ramalingam C
2018-02-14 14:13 ` [PATCH 36/43] drm/i915: Enable HDCP1.4 incase of HDCP2.2 failure Ramalingam C
2018-02-14 14:13 ` [PATCH 37/43] drm/i915: Initialize HDCP2.2 and its MEI interface Ramalingam C
2018-02-14 14:45 ` Chris Wilson
2018-02-14 14:45 ` Ramalingam C
2018-02-14 14:13 ` [PATCH 38/43] drm/i915: Implement gmbus burst read Ramalingam C
2018-02-14 14:13 ` [PATCH 39/43] drm/i915: Implement the HDCP2.2 support for DP Ramalingam C
2018-02-14 14:13 ` [PATCH 40/43] drm/i915: Implement the HDCP2.2 support for HDMI Ramalingam C
2018-02-14 14:13 ` [PATCH 41/43] drm/i915: Add HDCP2.2 support for DP connectors Ramalingam C
2018-02-14 14:13 ` [PATCH 42/43] drm/i915: Add HDCP2.2 support for HDMI connectors Ramalingam C
2018-02-14 14:13 ` [PATCH 43/43] drm/i915: Invoke check link on CP_IRQ of DP Ramalingam C
2018-02-14 15:07 ` ✗ Fi.CI.CHECKPATCH: warning for drm/i915: Implement HDCP2.2 Patchwork
2018-02-14 15:13 ` ✗ Fi.CI.SPARSE: " Patchwork
2018-02-14 15:20 ` ✗ 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=20180222154356.GD223881@art_vandelay \
--to=seanpaul@chromium.org \
--cc=daniel.vetter@ffwll.ch \
--cc=intel-gfx@lists.freedesktop.org \
--cc=ramalingam.c@intel.com \
--cc=rodrigo.vivi@intel.com \
--cc=tomas.winkler@intel.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.