lkml.org 
[lkml]   [2017]   [Dec]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v4 4/9] drm: Add some HDCP related #defines
    Date
    In preparation for implementing HDCP in i915, add some HDCP related
    register offsets and defines. The dpcd register offsets will go in
    drm_dp_helper.h whereas the ddc offsets along with generic HDCP stuff
    will get stuffed in drm_hdcp.h, which is new.

    Changes in v2:
    - drm_hdcp.h gets MIT license (Daniel)
    Changes in v3:
    - None
    Changes in v4:
    - None

    Cc: Daniel Vetter <daniel.vetter@intel.com>
    Signed-off-by: Sean Paul <seanpaul@chromium.org>
    ---
    include/drm/drm_dp_helper.h | 17 ++++++++++++++
    include/drm/drm_hdcp.h | 56 +++++++++++++++++++++++++++++++++++++++++++++
    2 files changed, 73 insertions(+)
    create mode 100644 include/drm/drm_hdcp.h

    diff --git a/include/drm/drm_dp_helper.h b/include/drm/drm_dp_helper.h
    index 8b9ac321c3bd..4b2640d54c70 100644
    --- a/include/drm/drm_dp_helper.h
    +++ b/include/drm/drm_dp_helper.h
    @@ -815,6 +815,23 @@
    #define DP_CEC_TX_MESSAGE_BUFFER 0x3020
    #define DP_CEC_MESSAGE_BUFFER_LENGTH 0x10

    +#define DP_AUX_HDCP_BKSV 0x68000
    +#define DP_AUX_HDCP_RI_PRIME 0x68005
    +#define DP_AUX_HDCP_AKSV 0x68007
    +#define DP_AUX_HDCP_AN 0x6800C
    +#define DP_AUX_HDCP_V_PRIME(h) (0x68014 + h * 4)
    +#define DP_AUX_HDCP_BCAPS 0x68028
    +# define DP_BCAPS_REPEATER_PRESENT BIT(1)
    +# define DP_BCAPS_HDCP_CAPABLE BIT(0)
    +#define DP_AUX_HDCP_BSTATUS 0x68029
    +# define DP_BSTATUS_REAUTH_REQ BIT(3)
    +# define DP_BSTATUS_LINK_FAILURE BIT(2)
    +# define DP_BSTATUS_R0_PRIME_READY BIT(1)
    +# define DP_BSTATUS_READY BIT(0)
    +#define DP_AUX_HDCP_BINFO 0x6802A
    +#define DP_AUX_HDCP_KSV_FIFO 0x6802C
    +#define DP_AUX_HDCP_AINFO 0x6803B
    +
    /* DP 1.2 Sideband message defines */
    /* peer device type - DP 1.2a Table 2-92 */
    #define DP_PEER_DEVICE_NONE 0x0
    diff --git a/include/drm/drm_hdcp.h b/include/drm/drm_hdcp.h
    new file mode 100644
    index 000000000000..c9b2484240d4
    --- /dev/null
    +++ b/include/drm/drm_hdcp.h
    @@ -0,0 +1,56 @@
    +/*
    + * Copyright (C) 2017 Google, Inc.
    + *
    + * Permission is hereby granted, free of charge, to any person obtaining a
    + * copy of this software and associated documentation files (the "Software"),
    + * to deal in the Software without restriction, including without limitation
    + * the rights to use, copy, modify, merge, publish, distribute, sublicense,
    + * and/or sell copies of the Software, and to permit persons to whom the
    + * Software is furnished to do so, subject to the following conditions:
    + *
    + * The above copyright notice and this permission notice shall be included in
    + * all copies or substantial portions of the Software.
    + *
    + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
    + * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
    + * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
    + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
    + * OTHER DEALINGS IN THE SOFTWARE.
    + *
    + * Authors:
    + * Sean Paul <seanpaul@chromium.org>
    + */
    +
    +#ifndef _DRM_HDCP_H_INCLUDED_
    +#define _DRM_HDCP_H_INCLUDED_
    +
    +/* Period of hdcp checks (to ensure we're still authenticated) */
    +#define DRM_HDCP_CHECK_PERIOD_MS (128 * 16)
    +
    +/* Shared lengths/masks between HDMI/DVI/DisplayPort */
    +#define DRM_HDCP_AN_LEN 8
    +#define DRM_HDCP_BSTATUS_LEN 2
    +#define DRM_HDCP_KSV_LEN 5
    +#define DRM_HDCP_RI_LEN 2
    +#define DRM_HDCP_V_PRIME_PART_LEN 4
    +#define DRM_HDCP_V_PRIME_NUM_PARTS 5
    +#define DRM_HDCP_NUM_DOWNSTREAM(x) (x & 0x3f)
    +
    +/* Slave address for the HDCP registers in the receiver */
    +#define DRM_HDCP_DDC_ADDR 0x3A
    +
    +/* HDCP register offsets for HDMI/DVI devices */
    +#define DRM_HDCP_DDC_BKSV 0x00
    +#define DRM_HDCP_DDC_RI_PRIME 0x08
    +#define DRM_HDCP_DDC_AKSV 0x10
    +#define DRM_HDCP_DDC_AN 0x18
    +#define DRM_HDCP_DDC_V_PRIME(h) (0x20 + h * 4)
    +#define DRM_HDCP_DDC_BCAPS 0x40
    +#define DRM_HDCP_DDC_BCAPS_REPEATER_PRESENT BIT(6)
    +#define DRM_HDCP_DDC_BCAPS_KSV_FIFO_READY BIT(5)
    +#define DRM_HDCP_DDC_BSTATUS 0x41
    +#define DRM_HDCP_DDC_KSV_FIFO 0x43
    +
    +#endif
    --
    2.15.1.424.g9478a66081-goog
    \
     
     \ /
      Last update: 2017-12-07 01:02    [W:3.503 / U:0.608 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site