diff mbox

[v3] drm/cec: Add CEC over Aux register definitions

Message ID 1492703263-11494-1-git-send-email-clinton.a.taylor@intel.com (mailing list archive)
State New, archived
Headers show

Commit Message

Taylor, Clinton A April 20, 2017, 3:47 p.m. UTC
From: Clint Taylor <clinton.a.taylor@intel.com>

Adding DPCD register definitions from the DP 1.3 specification for CEC
over AUX support.

V2: Add DP_ prefix to all defines.
V3: missed prefixes from the ESI1 defines

Cc: Jani Nikula <jani.nikula@linux.intel.com>

Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Clint Taylor <clinton.a.taylor@intel.com>
---
 include/drm/drm_dp_helper.h |   59 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 59 insertions(+)

Comments

Jani Nikula April 21, 2017, 8:40 a.m. UTC | #1
On Thu, 20 Apr 2017, clinton.a.taylor@intel.com wrote:
> From: Clint Taylor <clinton.a.taylor@intel.com>
>
> Adding DPCD register definitions from the DP 1.3 specification for CEC
> over AUX support.
>
> V2: Add DP_ prefix to all defines.
> V3: missed prefixes from the ESI1 defines
>
> Cc: Jani Nikula <jani.nikula@linux.intel.com>
>
> Reviewed-by: Jani Nikula <jani.nikula@intel.com>
> Signed-off-by: Clint Taylor <clinton.a.taylor@intel.com>

Pushed to drm-misc-next, thanks for the patch.

BR,
Jani.

> ---
>  include/drm/drm_dp_helper.h |   59 +++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 59 insertions(+)
>
> diff --git a/include/drm/drm_dp_helper.h b/include/drm/drm_dp_helper.h
> index c0bd0d7..3f4ad70 100644
> --- a/include/drm/drm_dp_helper.h
> +++ b/include/drm/drm_dp_helper.h
> @@ -603,6 +603,9 @@
>  #define DP_DEVICE_SERVICE_IRQ_VECTOR_ESI0   0x2003   /* 1.2 */
>  
>  #define DP_DEVICE_SERVICE_IRQ_VECTOR_ESI1   0x2004   /* 1.2 */
> +# define DP_RX_GTC_MSTR_REQ_STATUS_CHANGE    (1 << 0)
> +# define DP_LOCK_ACQUISITION_REQUEST         (1 << 1)
> +# define DP_CEC_IRQ                          (1 << 2)
>  
>  #define DP_LINK_SERVICE_IRQ_VECTOR_ESI0     0x2005   /* 1.2 */
>  
> @@ -636,6 +639,62 @@
>  # define DP_VSC_EXT_CEA_SDP_SUPPORTED			(1 << 6)  /* DP 1.4 */
>  # define DP_VSC_EXT_CEA_SDP_CHAINING_SUPPORTED		(1 << 7)  /* DP 1.4 */
>  
> +/* HDMI CEC tunneling over AUX DP 1.3 section 5.3.3.3.1 DPCD 1.4+ */
> +#define DP_CEC_TUNNELING_CAPABILITY            0x3000
> +# define DP_CEC_TUNNELING_CAPABLE               (1 << 0)
> +# define DP_CEC_SNOOPING_CAPABLE                (1 << 1)
> +# define DP_CEC_MULTIPLE_LA_CAPABLE             (1 << 2)
> +
> +#define DP_CEC_TUNNELING_CONTROL               0x3001
> +# define DP_CEC_TUNNELING_ENABLE                (1 << 0)
> +# define DP_CEC_SNOOPING_ENABLE                 (1 << 1)
> +
> +#define DP_CEC_RX_MESSAGE_INFO                 0x3002
> +# define DP_CEC_RX_MESSAGE_LEN_MASK             (0xf << 0)
> +# define DP_CEC_RX_MESSAGE_LEN_SHIFT            0
> +# define DP_CEC_RX_MESSAGE_HPD_STATE            (1 << 4)
> +# define DP_CEC_RX_MESSAGE_HPD_LOST             (1 << 5)
> +# define DP_CEC_RX_MESSAGE_ACKED                (1 << 6)
> +# define DP_CEC_RX_MESSAGE_ENDED                (1 << 7)
> +
> +#define DP_CEC_TX_MESSAGE_INFO                 0x3003
> +# define DP_CEC_TX_MESSAGE_LEN_MASK             (0xf << 0)
> +# define DP_CEC_TX_MESSAGE_LEN_SHIFT            0
> +# define DP_CEC_TX_RETRY_COUNT_MASK             (0x7 << 4)
> +# define DP_CEC_TX_RETRY_COUNT_SHIFT            4
> +# define DP_CEC_TX_MESSAGE_SEND                 (1 << 7)
> +
> +#define DP_CEC_TUNNELING_IRQ_FLAGS             0x3004
> +# define DP_CEC_RX_MESSAGE_INFO_VALID           (1 << 0)
> +# define DP_CEC_RX_MESSAGE_OVERFLOW             (1 << 1)
> +# define DP_CEC_TX_MESSAGE_SENT                 (1 << 4)
> +# define DP_CEC_TX_LINE_ERROR                   (1 << 5)
> +# define DP_CEC_TX_ADDRESS_NACK_ERROR           (1 << 6)
> +# define DP_CEC_TX_DATA_NACK_ERROR              (1 << 7)
> +
> +#define DP_CEC_LOGICAL_ADDRESS_MASK            0x300E /* 0x300F word */
> +# define DP_CEC_LOGICAL_ADDRESS_0               (1 << 0)
> +# define DP_CEC_LOGICAL_ADDRESS_1               (1 << 1)
> +# define DP_CEC_LOGICAL_ADDRESS_2               (1 << 2)
> +# define DP_CEC_LOGICAL_ADDRESS_3               (1 << 3)
> +# define DP_CEC_LOGICAL_ADDRESS_4               (1 << 4)
> +# define DP_CEC_LOGICAL_ADDRESS_5               (1 << 5)
> +# define DP_CEC_LOGICAL_ADDRESS_6               (1 << 6)
> +# define DP_CEC_LOGICAL_ADDRESS_7               (1 << 7)
> +#define DP_CEC_LOGICAL_ADDRESS_MASK_2          0x300F /* 0x300E word */
> +# define DP_CEC_LOGICAL_ADDRESS_8               (1 << 0)
> +# define DP_CEC_LOGICAL_ADDRESS_9               (1 << 1)
> +# define DP_CEC_LOGICAL_ADDRESS_10              (1 << 2)
> +# define DP_CEC_LOGICAL_ADDRESS_11              (1 << 3)
> +# define DP_CEC_LOGICAL_ADDRESS_12              (1 << 4)
> +# define DP_CEC_LOGICAL_ADDRESS_13              (1 << 5)
> +# define DP_CEC_LOGICAL_ADDRESS_14              (1 << 6)
> +# define DP_CEC_LOGICAL_ADDRESS_15              (1 << 7)
> +
> +#define DP_CEC_RX_MESSAGE_BUFFER               0x3010
> +#define DP_CEC_TX_MESSAGE_BUFFER               0x3020
> +#define DP_CEC_MESSAGE_BUFFER_LENGTH             0x10
> +
>  /* DP 1.2 Sideband message defines */
>  /* peer device type - DP 1.2a Table 2-92 */
>  #define DP_PEER_DEVICE_NONE		0x0
diff mbox

Patch

diff --git a/include/drm/drm_dp_helper.h b/include/drm/drm_dp_helper.h
index c0bd0d7..3f4ad70 100644
--- a/include/drm/drm_dp_helper.h
+++ b/include/drm/drm_dp_helper.h
@@ -603,6 +603,9 @@ 
 #define DP_DEVICE_SERVICE_IRQ_VECTOR_ESI0   0x2003   /* 1.2 */
 
 #define DP_DEVICE_SERVICE_IRQ_VECTOR_ESI1   0x2004   /* 1.2 */
+# define DP_RX_GTC_MSTR_REQ_STATUS_CHANGE    (1 << 0)
+# define DP_LOCK_ACQUISITION_REQUEST         (1 << 1)
+# define DP_CEC_IRQ                          (1 << 2)
 
 #define DP_LINK_SERVICE_IRQ_VECTOR_ESI0     0x2005   /* 1.2 */
 
@@ -636,6 +639,62 @@ 
 # define DP_VSC_EXT_CEA_SDP_SUPPORTED			(1 << 6)  /* DP 1.4 */
 # define DP_VSC_EXT_CEA_SDP_CHAINING_SUPPORTED		(1 << 7)  /* DP 1.4 */
 
+/* HDMI CEC tunneling over AUX DP 1.3 section 5.3.3.3.1 DPCD 1.4+ */
+#define DP_CEC_TUNNELING_CAPABILITY            0x3000
+# define DP_CEC_TUNNELING_CAPABLE               (1 << 0)
+# define DP_CEC_SNOOPING_CAPABLE                (1 << 1)
+# define DP_CEC_MULTIPLE_LA_CAPABLE             (1 << 2)
+
+#define DP_CEC_TUNNELING_CONTROL               0x3001
+# define DP_CEC_TUNNELING_ENABLE                (1 << 0)
+# define DP_CEC_SNOOPING_ENABLE                 (1 << 1)
+
+#define DP_CEC_RX_MESSAGE_INFO                 0x3002
+# define DP_CEC_RX_MESSAGE_LEN_MASK             (0xf << 0)
+# define DP_CEC_RX_MESSAGE_LEN_SHIFT            0
+# define DP_CEC_RX_MESSAGE_HPD_STATE            (1 << 4)
+# define DP_CEC_RX_MESSAGE_HPD_LOST             (1 << 5)
+# define DP_CEC_RX_MESSAGE_ACKED                (1 << 6)
+# define DP_CEC_RX_MESSAGE_ENDED                (1 << 7)
+
+#define DP_CEC_TX_MESSAGE_INFO                 0x3003
+# define DP_CEC_TX_MESSAGE_LEN_MASK             (0xf << 0)
+# define DP_CEC_TX_MESSAGE_LEN_SHIFT            0
+# define DP_CEC_TX_RETRY_COUNT_MASK             (0x7 << 4)
+# define DP_CEC_TX_RETRY_COUNT_SHIFT            4
+# define DP_CEC_TX_MESSAGE_SEND                 (1 << 7)
+
+#define DP_CEC_TUNNELING_IRQ_FLAGS             0x3004
+# define DP_CEC_RX_MESSAGE_INFO_VALID           (1 << 0)
+# define DP_CEC_RX_MESSAGE_OVERFLOW             (1 << 1)
+# define DP_CEC_TX_MESSAGE_SENT                 (1 << 4)
+# define DP_CEC_TX_LINE_ERROR                   (1 << 5)
+# define DP_CEC_TX_ADDRESS_NACK_ERROR           (1 << 6)
+# define DP_CEC_TX_DATA_NACK_ERROR              (1 << 7)
+
+#define DP_CEC_LOGICAL_ADDRESS_MASK            0x300E /* 0x300F word */
+# define DP_CEC_LOGICAL_ADDRESS_0               (1 << 0)
+# define DP_CEC_LOGICAL_ADDRESS_1               (1 << 1)
+# define DP_CEC_LOGICAL_ADDRESS_2               (1 << 2)
+# define DP_CEC_LOGICAL_ADDRESS_3               (1 << 3)
+# define DP_CEC_LOGICAL_ADDRESS_4               (1 << 4)
+# define DP_CEC_LOGICAL_ADDRESS_5               (1 << 5)
+# define DP_CEC_LOGICAL_ADDRESS_6               (1 << 6)
+# define DP_CEC_LOGICAL_ADDRESS_7               (1 << 7)
+#define DP_CEC_LOGICAL_ADDRESS_MASK_2          0x300F /* 0x300E word */
+# define DP_CEC_LOGICAL_ADDRESS_8               (1 << 0)
+# define DP_CEC_LOGICAL_ADDRESS_9               (1 << 1)
+# define DP_CEC_LOGICAL_ADDRESS_10              (1 << 2)
+# define DP_CEC_LOGICAL_ADDRESS_11              (1 << 3)
+# define DP_CEC_LOGICAL_ADDRESS_12              (1 << 4)
+# define DP_CEC_LOGICAL_ADDRESS_13              (1 << 5)
+# define DP_CEC_LOGICAL_ADDRESS_14              (1 << 6)
+# define DP_CEC_LOGICAL_ADDRESS_15              (1 << 7)
+
+#define DP_CEC_RX_MESSAGE_BUFFER               0x3010
+#define DP_CEC_TX_MESSAGE_BUFFER               0x3020
+#define DP_CEC_MESSAGE_BUFFER_LENGTH             0x10
+
 /* DP 1.2 Sideband message defines */
 /* peer device type - DP 1.2a Table 2-92 */
 #define DP_PEER_DEVICE_NONE		0x0