Home | History | Annotate | Line # | Download | only in dce
      1 /*	$NetBSD: dce_stream_encoder.h,v 1.2 2021/12/18 23:45:02 riastradh Exp $	*/
      2 
      3 /*
      4  * Copyright 2012-15 Advanced Micro Devices, Inc.
      5  *
      6  * Permission is hereby granted, free of charge, to any person obtaining a
      7  * copy of this software and associated documentation files (the "Software"),
      8  * to deal in the Software without restriction, including without limitation
      9  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
     10  *  and/or sell copies of the Software, and to permit persons to whom the
     11  * Software is furnished to do so, subject to the following conditions:
     12  *
     13  * The above copyright notice and this permission notice shall be included in
     14  * all copies or substantial portions of the Software.
     15  *
     16  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
     17  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
     18  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
     19  * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
     20  * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
     21  * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
     22  * OTHER DEALINGS IN THE SOFTWARE.
     23  *
     24  * Authors: AMD
     25  *
     26  */
     27 
     28 #ifndef __DC_STREAM_ENCODER_DCE110_H__
     29 #define __DC_STREAM_ENCODER_DCE110_H__
     30 
     31 #include "stream_encoder.h"
     32 
     33 #define DCE110STRENC_FROM_STRENC(stream_encoder)\
     34 	container_of(stream_encoder, struct dce110_stream_encoder, base)
     35 
     36 #ifndef TMDS_CNTL__TMDS_PIXEL_ENCODING_MASK
     37 	#define TMDS_CNTL__TMDS_PIXEL_ENCODING_MASK       0x00000010L
     38 	#define TMDS_CNTL__TMDS_COLOR_FORMAT_MASK         0x00000300L
     39 	#define	TMDS_CNTL__TMDS_PIXEL_ENCODING__SHIFT     0x00000004
     40 	#define	TMDS_CNTL__TMDS_COLOR_FORMAT__SHIFT       0x00000008
     41 #endif
     42 
     43 
     44 #define SE_COMMON_REG_LIST_DCE_BASE(id) \
     45 	SE_COMMON_REG_LIST_BASE(id),\
     46 	SRI(AFMT_AVI_INFO0, DIG, id), \
     47 	SRI(AFMT_AVI_INFO1, DIG, id), \
     48 	SRI(AFMT_AVI_INFO2, DIG, id), \
     49 	SRI(AFMT_AVI_INFO3, DIG, id)
     50 
     51 #define SE_COMMON_REG_LIST_BASE(id) \
     52 	SRI(AFMT_GENERIC_0, DIG, id), \
     53 	SRI(AFMT_GENERIC_1, DIG, id), \
     54 	SRI(AFMT_GENERIC_2, DIG, id), \
     55 	SRI(AFMT_GENERIC_3, DIG, id), \
     56 	SRI(AFMT_GENERIC_4, DIG, id), \
     57 	SRI(AFMT_GENERIC_5, DIG, id), \
     58 	SRI(AFMT_GENERIC_6, DIG, id), \
     59 	SRI(AFMT_GENERIC_7, DIG, id), \
     60 	SRI(AFMT_GENERIC_HDR, DIG, id), \
     61 	SRI(AFMT_INFOFRAME_CONTROL0, DIG, id), \
     62 	SRI(AFMT_VBI_PACKET_CONTROL, DIG, id), \
     63 	SRI(AFMT_AUDIO_PACKET_CONTROL, DIG, id), \
     64 	SRI(AFMT_AUDIO_PACKET_CONTROL2, DIG, id), \
     65 	SRI(AFMT_AUDIO_SRC_CONTROL, DIG, id), \
     66 	SRI(AFMT_60958_0, DIG, id), \
     67 	SRI(AFMT_60958_1, DIG, id), \
     68 	SRI(AFMT_60958_2, DIG, id), \
     69 	SRI(DIG_FE_CNTL, DIG, id), \
     70 	SRI(HDMI_CONTROL, DIG, id), \
     71 	SRI(HDMI_GC, DIG, id), \
     72 	SRI(HDMI_GENERIC_PACKET_CONTROL0, DIG, id), \
     73 	SRI(HDMI_GENERIC_PACKET_CONTROL1, DIG, id), \
     74 	SRI(HDMI_INFOFRAME_CONTROL0, DIG, id), \
     75 	SRI(HDMI_INFOFRAME_CONTROL1, DIG, id), \
     76 	SRI(HDMI_VBI_PACKET_CONTROL, DIG, id), \
     77 	SRI(HDMI_AUDIO_PACKET_CONTROL, DIG, id),\
     78 	SRI(HDMI_ACR_PACKET_CONTROL, DIG, id),\
     79 	SRI(HDMI_ACR_32_0, DIG, id),\
     80 	SRI(HDMI_ACR_32_1, DIG, id),\
     81 	SRI(HDMI_ACR_44_0, DIG, id),\
     82 	SRI(HDMI_ACR_44_1, DIG, id),\
     83 	SRI(HDMI_ACR_48_0, DIG, id),\
     84 	SRI(HDMI_ACR_48_1, DIG, id),\
     85 	SRI(TMDS_CNTL, DIG, id), \
     86 	SRI(DP_MSE_RATE_CNTL, DP, id), \
     87 	SRI(DP_MSE_RATE_UPDATE, DP, id), \
     88 	SRI(DP_PIXEL_FORMAT, DP, id), \
     89 	SRI(DP_SEC_CNTL, DP, id), \
     90 	SRI(DP_STEER_FIFO, DP, id), \
     91 	SRI(DP_VID_M, DP, id), \
     92 	SRI(DP_VID_N, DP, id), \
     93 	SRI(DP_VID_STREAM_CNTL, DP, id), \
     94 	SRI(DP_VID_TIMING, DP, id), \
     95 	SRI(DP_SEC_AUD_N, DP, id), \
     96 	SRI(DP_SEC_TIMESTAMP, DP, id)
     97 
     98 #define SE_COMMON_REG_LIST(id)\
     99 	SE_COMMON_REG_LIST_DCE_BASE(id), \
    100 	SRI(AFMT_CNTL, DIG, id)
    101 
    102 #define SE_DCN_REG_LIST(id)\
    103 	SE_COMMON_REG_LIST_BASE(id),\
    104 	SRI(AFMT_CNTL, DIG, id),\
    105 	SRI(AFMT_VBI_PACKET_CONTROL1, DIG, id),\
    106 	SRI(HDMI_GENERIC_PACKET_CONTROL2, DIG, id), \
    107 	SRI(HDMI_GENERIC_PACKET_CONTROL3, DIG, id), \
    108 	SRI(DP_DB_CNTL, DP, id), \
    109 	SRI(DP_MSA_MISC, DP, id), \
    110 	SRI(DP_MSA_COLORIMETRY, DP, id), \
    111 	SRI(DP_MSA_TIMING_PARAM1, DP, id), \
    112 	SRI(DP_MSA_TIMING_PARAM2, DP, id), \
    113 	SRI(DP_MSA_TIMING_PARAM3, DP, id), \
    114 	SRI(DP_MSA_TIMING_PARAM4, DP, id), \
    115 	SRI(HDMI_DB_CONTROL, DIG, id)
    116 
    117 #define SE_SF(reg_name, field_name, post_fix)\
    118 	.field_name = reg_name ## __ ## field_name ## post_fix
    119 
    120 #define SE_COMMON_MASK_SH_LIST_DCE_COMMON_BASE(mask_sh)\
    121 	SE_SF(AFMT_VBI_PACKET_CONTROL, AFMT_GENERIC_INDEX, mask_sh),\
    122 	SE_SF(AFMT_VBI_PACKET_CONTROL, AFMT_GENERIC0_UPDATE, mask_sh),\
    123 	SE_SF(AFMT_VBI_PACKET_CONTROL, AFMT_GENERIC2_UPDATE, mask_sh),\
    124 	SE_SF(AFMT_GENERIC_HDR, AFMT_GENERIC_HB0, mask_sh),\
    125 	SE_SF(AFMT_GENERIC_HDR, AFMT_GENERIC_HB1, mask_sh),\
    126 	SE_SF(AFMT_GENERIC_HDR, AFMT_GENERIC_HB2, mask_sh),\
    127 	SE_SF(AFMT_GENERIC_HDR, AFMT_GENERIC_HB3, mask_sh),\
    128 	SE_SF(HDMI_GENERIC_PACKET_CONTROL0, HDMI_GENERIC0_CONT, mask_sh),\
    129 	SE_SF(HDMI_GENERIC_PACKET_CONTROL0, HDMI_GENERIC0_SEND, mask_sh),\
    130 	SE_SF(HDMI_GENERIC_PACKET_CONTROL0, HDMI_GENERIC0_LINE, mask_sh),\
    131 	SE_SF(HDMI_GENERIC_PACKET_CONTROL0, HDMI_GENERIC1_CONT, mask_sh),\
    132 	SE_SF(HDMI_GENERIC_PACKET_CONTROL0, HDMI_GENERIC1_SEND, mask_sh),\
    133 	SE_SF(HDMI_GENERIC_PACKET_CONTROL0, HDMI_GENERIC1_LINE, mask_sh),\
    134 	SE_SF(DP_PIXEL_FORMAT, DP_PIXEL_ENCODING, mask_sh),\
    135 	SE_SF(DP_PIXEL_FORMAT, DP_COMPONENT_DEPTH, mask_sh),\
    136 	SE_SF(DP_PIXEL_FORMAT, DP_DYN_RANGE, mask_sh),\
    137 	SE_SF(DP_PIXEL_FORMAT, DP_YCBCR_RANGE, mask_sh),\
    138 	SE_SF(HDMI_CONTROL, HDMI_PACKET_GEN_VERSION, mask_sh),\
    139 	SE_SF(HDMI_CONTROL, HDMI_KEEPOUT_MODE, mask_sh),\
    140 	SE_SF(HDMI_CONTROL, HDMI_DEEP_COLOR_ENABLE, mask_sh),\
    141 	SE_SF(HDMI_CONTROL, HDMI_DEEP_COLOR_DEPTH, mask_sh),\
    142 	SE_SF(HDMI_VBI_PACKET_CONTROL, HDMI_GC_CONT, mask_sh),\
    143 	SE_SF(HDMI_VBI_PACKET_CONTROL, HDMI_GC_SEND, mask_sh),\
    144 	SE_SF(HDMI_VBI_PACKET_CONTROL, HDMI_NULL_SEND, mask_sh),\
    145 	SE_SF(HDMI_INFOFRAME_CONTROL0, HDMI_AUDIO_INFO_SEND, mask_sh),\
    146 	SE_SF(AFMT_INFOFRAME_CONTROL0, AFMT_AUDIO_INFO_UPDATE, mask_sh),\
    147 	SE_SF(HDMI_INFOFRAME_CONTROL1, HDMI_AUDIO_INFO_LINE, mask_sh),\
    148 	SE_SF(HDMI_GC, HDMI_GC_AVMUTE, mask_sh),\
    149 	SE_SF(DP_MSE_RATE_CNTL, DP_MSE_RATE_X, mask_sh),\
    150 	SE_SF(DP_MSE_RATE_CNTL, DP_MSE_RATE_Y, mask_sh),\
    151 	SE_SF(DP_MSE_RATE_UPDATE, DP_MSE_RATE_UPDATE_PENDING, mask_sh),\
    152 	SE_SF(AFMT_AVI_INFO3, AFMT_AVI_INFO_VERSION, mask_sh),\
    153 	SE_SF(HDMI_INFOFRAME_CONTROL0, HDMI_AVI_INFO_SEND, mask_sh),\
    154 	SE_SF(HDMI_INFOFRAME_CONTROL0, HDMI_AVI_INFO_CONT, mask_sh),\
    155 	SE_SF(HDMI_INFOFRAME_CONTROL1, HDMI_AVI_INFO_LINE, mask_sh),\
    156 	SE_SF(DP_SEC_CNTL, DP_SEC_GSP0_ENABLE, mask_sh),\
    157 	SE_SF(DP_SEC_CNTL, DP_SEC_STREAM_ENABLE, mask_sh),\
    158 	SE_SF(DP_SEC_CNTL, DP_SEC_GSP1_ENABLE, mask_sh),\
    159 	SE_SF(DP_SEC_CNTL, DP_SEC_GSP2_ENABLE, mask_sh),\
    160 	SE_SF(DP_SEC_CNTL, DP_SEC_GSP3_ENABLE, mask_sh),\
    161 	SE_SF(DP_SEC_CNTL, DP_SEC_AVI_ENABLE, mask_sh),\
    162 	SE_SF(DP_SEC_CNTL, DP_SEC_MPG_ENABLE, mask_sh),\
    163 	SE_SF(DP_VID_STREAM_CNTL, DP_VID_STREAM_DIS_DEFER, mask_sh),\
    164 	SE_SF(DP_VID_STREAM_CNTL, DP_VID_STREAM_ENABLE, mask_sh),\
    165 	SE_SF(DP_VID_STREAM_CNTL, DP_VID_STREAM_STATUS, mask_sh),\
    166 	SE_SF(DP_STEER_FIFO, DP_STEER_FIFO_RESET, mask_sh),\
    167 	SE_SF(DP_VID_TIMING, DP_VID_M_N_GEN_EN, mask_sh),\
    168 	SE_SF(DP_VID_N, DP_VID_N, mask_sh),\
    169 	SE_SF(DP_VID_M, DP_VID_M, mask_sh),\
    170 	SE_SF(DIG_FE_CNTL, DIG_START, mask_sh),\
    171 	SE_SF(DIG_FE_CNTL, DIG_STEREOSYNC_SELECT, mask_sh),\
    172 	SE_SF(DIG_FE_CNTL, DIG_STEREOSYNC_GATE_EN, mask_sh),\
    173 	SE_SF(AFMT_AUDIO_SRC_CONTROL, AFMT_AUDIO_SRC_SELECT, mask_sh),\
    174 	SE_SF(AFMT_AUDIO_PACKET_CONTROL2, AFMT_AUDIO_CHANNEL_ENABLE, mask_sh),\
    175 	SE_SF(HDMI_AUDIO_PACKET_CONTROL, HDMI_AUDIO_PACKETS_PER_LINE, mask_sh),\
    176 	SE_SF(HDMI_AUDIO_PACKET_CONTROL, HDMI_AUDIO_DELAY_EN, mask_sh),\
    177 	SE_SF(AFMT_AUDIO_PACKET_CONTROL, AFMT_60958_CS_UPDATE, mask_sh),\
    178 	SE_SF(AFMT_AUDIO_PACKET_CONTROL2, AFMT_AUDIO_LAYOUT_OVRD, mask_sh),\
    179 	SE_SF(AFMT_AUDIO_PACKET_CONTROL2, AFMT_60958_OSF_OVRD, mask_sh),\
    180 	SE_SF(HDMI_ACR_PACKET_CONTROL, HDMI_ACR_AUTO_SEND, mask_sh),\
    181 	SE_SF(HDMI_ACR_PACKET_CONTROL, HDMI_ACR_SOURCE, mask_sh),\
    182 	SE_SF(HDMI_ACR_PACKET_CONTROL, HDMI_ACR_AUDIO_PRIORITY, mask_sh),\
    183 	SE_SF(HDMI_ACR_32_0, HDMI_ACR_CTS_32, mask_sh),\
    184 	SE_SF(HDMI_ACR_32_1, HDMI_ACR_N_32, mask_sh),\
    185 	SE_SF(HDMI_ACR_44_0, HDMI_ACR_CTS_44, mask_sh),\
    186 	SE_SF(HDMI_ACR_44_1, HDMI_ACR_N_44, mask_sh),\
    187 	SE_SF(HDMI_ACR_48_0, HDMI_ACR_CTS_48, mask_sh),\
    188 	SE_SF(HDMI_ACR_48_1, HDMI_ACR_N_48, mask_sh),\
    189 	SE_SF(AFMT_60958_0, AFMT_60958_CS_CHANNEL_NUMBER_L, mask_sh),\
    190 	SE_SF(AFMT_60958_0, AFMT_60958_CS_CLOCK_ACCURACY, mask_sh),\
    191 	SE_SF(AFMT_60958_1, AFMT_60958_CS_CHANNEL_NUMBER_R, mask_sh),\
    192 	SE_SF(AFMT_60958_2, AFMT_60958_CS_CHANNEL_NUMBER_2, mask_sh),\
    193 	SE_SF(AFMT_60958_2, AFMT_60958_CS_CHANNEL_NUMBER_3, mask_sh),\
    194 	SE_SF(AFMT_60958_2, AFMT_60958_CS_CHANNEL_NUMBER_4, mask_sh),\
    195 	SE_SF(AFMT_60958_2, AFMT_60958_CS_CHANNEL_NUMBER_5, mask_sh),\
    196 	SE_SF(AFMT_60958_2, AFMT_60958_CS_CHANNEL_NUMBER_6, mask_sh),\
    197 	SE_SF(AFMT_60958_2, AFMT_60958_CS_CHANNEL_NUMBER_7, mask_sh),\
    198 	SE_SF(DP_SEC_AUD_N, DP_SEC_AUD_N, mask_sh),\
    199 	SE_SF(DP_SEC_TIMESTAMP, DP_SEC_TIMESTAMP_MODE, mask_sh),\
    200 	SE_SF(DP_SEC_CNTL, DP_SEC_ASP_ENABLE, mask_sh),\
    201 	SE_SF(DP_SEC_CNTL, DP_SEC_ATP_ENABLE, mask_sh),\
    202 	SE_SF(DP_SEC_CNTL, DP_SEC_AIP_ENABLE, mask_sh),\
    203 	SE_SF(DP_SEC_CNTL, DP_SEC_ACM_ENABLE, mask_sh),\
    204 	SE_SF(AFMT_AUDIO_PACKET_CONTROL, AFMT_AUDIO_SAMPLE_SEND, mask_sh),\
    205 	SE_SF(DIG_FE_CNTL, DIG_SOURCE_SELECT, mask_sh)
    206 
    207 #define SE_COMMON_MASK_SH_LIST_DCE_COMMON(mask_sh)\
    208 	SE_COMMON_MASK_SH_LIST_DCE_COMMON_BASE(mask_sh)
    209 
    210 #define SE_COMMON_MASK_SH_LIST_SOC_BASE(mask_sh)\
    211 	SE_SF(DIG0_AFMT_VBI_PACKET_CONTROL, AFMT_GENERIC_INDEX, mask_sh),\
    212 	SE_SF(DIG0_AFMT_GENERIC_HDR, AFMT_GENERIC_HB0, mask_sh),\
    213 	SE_SF(DIG0_AFMT_GENERIC_HDR, AFMT_GENERIC_HB1, mask_sh),\
    214 	SE_SF(DIG0_AFMT_GENERIC_HDR, AFMT_GENERIC_HB2, mask_sh),\
    215 	SE_SF(DIG0_AFMT_GENERIC_HDR, AFMT_GENERIC_HB3, mask_sh),\
    216 	SE_SF(DIG0_HDMI_GENERIC_PACKET_CONTROL0, HDMI_GENERIC0_CONT, mask_sh),\
    217 	SE_SF(DIG0_HDMI_GENERIC_PACKET_CONTROL0, HDMI_GENERIC0_SEND, mask_sh),\
    218 	SE_SF(DIG0_HDMI_GENERIC_PACKET_CONTROL0, HDMI_GENERIC0_LINE, mask_sh),\
    219 	SE_SF(DIG0_HDMI_GENERIC_PACKET_CONTROL0, HDMI_GENERIC1_CONT, mask_sh),\
    220 	SE_SF(DIG0_HDMI_GENERIC_PACKET_CONTROL0, HDMI_GENERIC1_SEND, mask_sh),\
    221 	SE_SF(DIG0_HDMI_GENERIC_PACKET_CONTROL0, HDMI_GENERIC1_LINE, mask_sh),\
    222 	SE_SF(DP0_DP_PIXEL_FORMAT, DP_PIXEL_ENCODING, mask_sh),\
    223 	SE_SF(DP0_DP_PIXEL_FORMAT, DP_COMPONENT_DEPTH, mask_sh),\
    224 	SE_SF(DIG0_HDMI_CONTROL, HDMI_PACKET_GEN_VERSION, mask_sh),\
    225 	SE_SF(DIG0_HDMI_CONTROL, HDMI_KEEPOUT_MODE, mask_sh),\
    226 	SE_SF(DIG0_HDMI_CONTROL, HDMI_DEEP_COLOR_ENABLE, mask_sh),\
    227 	SE_SF(DIG0_HDMI_CONTROL, HDMI_DEEP_COLOR_DEPTH, mask_sh),\
    228 	SE_SF(DIG0_HDMI_CONTROL, HDMI_DATA_SCRAMBLE_EN, mask_sh),\
    229 	SE_SF(DIG0_HDMI_VBI_PACKET_CONTROL, HDMI_GC_CONT, mask_sh),\
    230 	SE_SF(DIG0_HDMI_VBI_PACKET_CONTROL, HDMI_GC_SEND, mask_sh),\
    231 	SE_SF(DIG0_HDMI_VBI_PACKET_CONTROL, HDMI_NULL_SEND, mask_sh),\
    232 	SE_SF(DIG0_HDMI_INFOFRAME_CONTROL0, HDMI_AUDIO_INFO_SEND, mask_sh),\
    233 	SE_SF(DIG0_AFMT_INFOFRAME_CONTROL0, AFMT_AUDIO_INFO_UPDATE, mask_sh),\
    234 	SE_SF(DIG0_HDMI_INFOFRAME_CONTROL1, HDMI_AUDIO_INFO_LINE, mask_sh),\
    235 	SE_SF(DIG0_HDMI_GC, HDMI_GC_AVMUTE, mask_sh),\
    236 	SE_SF(DP0_DP_MSE_RATE_CNTL, DP_MSE_RATE_X, mask_sh),\
    237 	SE_SF(DP0_DP_MSE_RATE_CNTL, DP_MSE_RATE_Y, mask_sh),\
    238 	SE_SF(DP0_DP_MSE_RATE_UPDATE, DP_MSE_RATE_UPDATE_PENDING, mask_sh),\
    239 	SE_SF(DP0_DP_SEC_CNTL, DP_SEC_GSP0_ENABLE, mask_sh),\
    240 	SE_SF(DP0_DP_SEC_CNTL, DP_SEC_STREAM_ENABLE, mask_sh),\
    241 	SE_SF(DP0_DP_SEC_CNTL, DP_SEC_GSP1_ENABLE, mask_sh),\
    242 	SE_SF(DP0_DP_SEC_CNTL, DP_SEC_GSP2_ENABLE, mask_sh),\
    243 	SE_SF(DP0_DP_SEC_CNTL, DP_SEC_GSP3_ENABLE, mask_sh),\
    244 	SE_SF(DP0_DP_SEC_CNTL, DP_SEC_MPG_ENABLE, mask_sh),\
    245 	SE_SF(DP0_DP_VID_STREAM_CNTL, DP_VID_STREAM_DIS_DEFER, mask_sh),\
    246 	SE_SF(DP0_DP_VID_STREAM_CNTL, DP_VID_STREAM_ENABLE, mask_sh),\
    247 	SE_SF(DP0_DP_VID_STREAM_CNTL, DP_VID_STREAM_STATUS, mask_sh),\
    248 	SE_SF(DP0_DP_STEER_FIFO, DP_STEER_FIFO_RESET, mask_sh),\
    249 	SE_SF(DP0_DP_VID_TIMING, DP_VID_M_N_GEN_EN, mask_sh),\
    250 	SE_SF(DP0_DP_VID_N, DP_VID_N, mask_sh),\
    251 	SE_SF(DP0_DP_VID_M, DP_VID_M, mask_sh),\
    252 	SE_SF(DIG0_DIG_FE_CNTL, DIG_START, mask_sh),\
    253 	SE_SF(DIG0_AFMT_AUDIO_SRC_CONTROL, AFMT_AUDIO_SRC_SELECT, mask_sh),\
    254 	SE_SF(DIG0_AFMT_AUDIO_PACKET_CONTROL2, AFMT_AUDIO_CHANNEL_ENABLE, mask_sh),\
    255 	SE_SF(DIG0_HDMI_AUDIO_PACKET_CONTROL, HDMI_AUDIO_PACKETS_PER_LINE, mask_sh),\
    256 	SE_SF(DIG0_HDMI_AUDIO_PACKET_CONTROL, HDMI_AUDIO_DELAY_EN, mask_sh),\
    257 	SE_SF(DIG0_AFMT_AUDIO_PACKET_CONTROL, AFMT_60958_CS_UPDATE, mask_sh),\
    258 	SE_SF(DIG0_AFMT_AUDIO_PACKET_CONTROL2, AFMT_AUDIO_LAYOUT_OVRD, mask_sh),\
    259 	SE_SF(DIG0_AFMT_AUDIO_PACKET_CONTROL2, AFMT_60958_OSF_OVRD, mask_sh),\
    260 	SE_SF(DIG0_HDMI_ACR_PACKET_CONTROL, HDMI_ACR_AUTO_SEND, mask_sh),\
    261 	SE_SF(DIG0_HDMI_ACR_PACKET_CONTROL, HDMI_ACR_SOURCE, mask_sh),\
    262 	SE_SF(DIG0_HDMI_ACR_PACKET_CONTROL, HDMI_ACR_AUDIO_PRIORITY, mask_sh),\
    263 	SE_SF(DIG0_HDMI_ACR_32_0, HDMI_ACR_CTS_32, mask_sh),\
    264 	SE_SF(DIG0_HDMI_ACR_32_1, HDMI_ACR_N_32, mask_sh),\
    265 	SE_SF(DIG0_HDMI_ACR_44_0, HDMI_ACR_CTS_44, mask_sh),\
    266 	SE_SF(DIG0_HDMI_ACR_44_1, HDMI_ACR_N_44, mask_sh),\
    267 	SE_SF(DIG0_HDMI_ACR_48_0, HDMI_ACR_CTS_48, mask_sh),\
    268 	SE_SF(DIG0_HDMI_ACR_48_1, HDMI_ACR_N_48, mask_sh),\
    269 	SE_SF(DIG0_AFMT_60958_0, AFMT_60958_CS_CHANNEL_NUMBER_L, mask_sh),\
    270 	SE_SF(DIG0_AFMT_60958_0, AFMT_60958_CS_CLOCK_ACCURACY, mask_sh),\
    271 	SE_SF(DIG0_AFMT_60958_1, AFMT_60958_CS_CHANNEL_NUMBER_R, mask_sh),\
    272 	SE_SF(DIG0_AFMT_60958_2, AFMT_60958_CS_CHANNEL_NUMBER_2, mask_sh),\
    273 	SE_SF(DIG0_AFMT_60958_2, AFMT_60958_CS_CHANNEL_NUMBER_3, mask_sh),\
    274 	SE_SF(DIG0_AFMT_60958_2, AFMT_60958_CS_CHANNEL_NUMBER_4, mask_sh),\
    275 	SE_SF(DIG0_AFMT_60958_2, AFMT_60958_CS_CHANNEL_NUMBER_5, mask_sh),\
    276 	SE_SF(DIG0_AFMT_60958_2, AFMT_60958_CS_CHANNEL_NUMBER_6, mask_sh),\
    277 	SE_SF(DIG0_AFMT_60958_2, AFMT_60958_CS_CHANNEL_NUMBER_7, mask_sh),\
    278 	SE_SF(DP0_DP_SEC_AUD_N, DP_SEC_AUD_N, mask_sh),\
    279 	SE_SF(DP0_DP_SEC_TIMESTAMP, DP_SEC_TIMESTAMP_MODE, mask_sh),\
    280 	SE_SF(DP0_DP_SEC_CNTL, DP_SEC_ASP_ENABLE, mask_sh),\
    281 	SE_SF(DP0_DP_SEC_CNTL, DP_SEC_ATP_ENABLE, mask_sh),\
    282 	SE_SF(DP0_DP_SEC_CNTL, DP_SEC_AIP_ENABLE, mask_sh),\
    283 	SE_SF(DP0_DP_SEC_CNTL, DP_SEC_ACM_ENABLE, mask_sh),\
    284 	SE_SF(DIG0_AFMT_AUDIO_PACKET_CONTROL, AFMT_AUDIO_SAMPLE_SEND, mask_sh),\
    285 	SE_SF(DIG0_AFMT_CNTL, AFMT_AUDIO_CLOCK_EN, mask_sh),\
    286 	SE_SF(DIG0_HDMI_CONTROL, HDMI_CLOCK_CHANNEL_RATE, mask_sh),\
    287 	SE_SF(DIG0_DIG_FE_CNTL, TMDS_PIXEL_ENCODING, mask_sh),\
    288 	SE_SF(DIG0_DIG_FE_CNTL, TMDS_COLOR_FORMAT, mask_sh),\
    289 	SE_SF(DIG0_DIG_FE_CNTL, DIG_STEREOSYNC_SELECT, mask_sh),\
    290 	SE_SF(DIG0_DIG_FE_CNTL, DIG_STEREOSYNC_GATE_EN, mask_sh),\
    291 	SE_SF(DIG0_DIG_FE_CNTL, DIG_SOURCE_SELECT, mask_sh)
    292 
    293 #define SE_COMMON_MASK_SH_LIST_SOC(mask_sh)\
    294 	SE_COMMON_MASK_SH_LIST_SOC_BASE(mask_sh)
    295 
    296 #define SE_COMMON_MASK_SH_LIST_DCE80_100(mask_sh)\
    297 	SE_COMMON_MASK_SH_LIST_DCE_COMMON(mask_sh),\
    298 	SE_SF(TMDS_CNTL, TMDS_PIXEL_ENCODING, mask_sh),\
    299 	SE_SF(TMDS_CNTL, TMDS_COLOR_FORMAT, mask_sh)
    300 
    301 #define SE_COMMON_MASK_SH_LIST_DCE110(mask_sh)\
    302 	SE_COMMON_MASK_SH_LIST_DCE_COMMON(mask_sh),\
    303 	SE_SF(AFMT_CNTL, AFMT_AUDIO_CLOCK_EN, mask_sh),\
    304 	SE_SF(HDMI_CONTROL, HDMI_CLOCK_CHANNEL_RATE, mask_sh),\
    305 	SE_SF(HDMI_CONTROL, HDMI_DATA_SCRAMBLE_EN, mask_sh),\
    306 	SE_SF(DIG_FE_CNTL, TMDS_PIXEL_ENCODING, mask_sh),\
    307 	SE_SF(DIG_FE_CNTL, TMDS_COLOR_FORMAT, mask_sh),\
    308 	SE_SF(DIG_FE_CNTL, DIG_STEREOSYNC_SELECT, mask_sh),\
    309 	SE_SF(DIG_FE_CNTL, DIG_STEREOSYNC_GATE_EN, mask_sh)
    310 
    311 #define SE_COMMON_MASK_SH_LIST_DCE112(mask_sh)\
    312 	SE_COMMON_MASK_SH_LIST_DCE_COMMON(mask_sh),\
    313 	SE_SF(AFMT_CNTL, AFMT_AUDIO_CLOCK_EN, mask_sh),\
    314 	SE_SF(HDMI_CONTROL, HDMI_CLOCK_CHANNEL_RATE, mask_sh),\
    315 	SE_SF(HDMI_CONTROL, HDMI_DATA_SCRAMBLE_EN, mask_sh),\
    316 	SE_SF(DIG_FE_CNTL, TMDS_PIXEL_ENCODING, mask_sh),\
    317 	SE_SF(DIG_FE_CNTL, TMDS_COLOR_FORMAT, mask_sh),\
    318 	SE_SF(DP_VID_TIMING, DP_VID_M_DOUBLE_VALUE_EN, mask_sh)
    319 
    320 #define SE_COMMON_MASK_SH_LIST_DCE120(mask_sh)\
    321 	SE_COMMON_MASK_SH_LIST_SOC(mask_sh),\
    322 	SE_SF(DIG0_AFMT_VBI_PACKET_CONTROL, AFMT_GENERIC0_UPDATE, mask_sh),\
    323 	SE_SF(DIG0_AFMT_VBI_PACKET_CONTROL, AFMT_GENERIC2_UPDATE, mask_sh),\
    324 	SE_SF(DP0_DP_PIXEL_FORMAT, DP_DYN_RANGE, mask_sh),\
    325 	SE_SF(DP0_DP_PIXEL_FORMAT, DP_YCBCR_RANGE, mask_sh),\
    326 	SE_SF(DIG0_HDMI_INFOFRAME_CONTROL0, HDMI_AVI_INFO_SEND, mask_sh),\
    327 	SE_SF(DIG0_HDMI_INFOFRAME_CONTROL0, HDMI_AVI_INFO_CONT, mask_sh),\
    328 	SE_SF(DIG0_HDMI_INFOFRAME_CONTROL1, HDMI_AVI_INFO_LINE, mask_sh),\
    329 	SE_SF(DP0_DP_SEC_CNTL, DP_SEC_AVI_ENABLE, mask_sh),\
    330 	SE_SF(DIG0_AFMT_AVI_INFO3, AFMT_AVI_INFO_VERSION, mask_sh),\
    331 	SE_SF(DP0_DP_VID_TIMING, DP_VID_M_DOUBLE_VALUE_EN, mask_sh)
    332 
    333 #define SE_COMMON_MASK_SH_LIST_DCN10(mask_sh)\
    334 	SE_COMMON_MASK_SH_LIST_SOC(mask_sh),\
    335 	SE_SF(DIG0_AFMT_VBI_PACKET_CONTROL, AFMT_GENERIC_LOCK_STATUS, mask_sh),\
    336 	SE_SF(DIG0_AFMT_VBI_PACKET_CONTROL, AFMT_GENERIC_CONFLICT, mask_sh),\
    337 	SE_SF(DIG0_AFMT_VBI_PACKET_CONTROL, AFMT_GENERIC_CONFLICT_CLR, mask_sh),\
    338 	SE_SF(DIG0_AFMT_VBI_PACKET_CONTROL1, AFMT_GENERIC0_FRAME_UPDATE_PENDING, mask_sh),\
    339 	SE_SF(DIG0_AFMT_VBI_PACKET_CONTROL1, AFMT_GENERIC1_FRAME_UPDATE_PENDING, mask_sh),\
    340 	SE_SF(DIG0_AFMT_VBI_PACKET_CONTROL1, AFMT_GENERIC2_FRAME_UPDATE_PENDING, mask_sh),\
    341 	SE_SF(DIG0_AFMT_VBI_PACKET_CONTROL1, AFMT_GENERIC3_FRAME_UPDATE_PENDING, mask_sh),\
    342 	SE_SF(DIG0_AFMT_VBI_PACKET_CONTROL1, AFMT_GENERIC4_FRAME_UPDATE_PENDING, mask_sh),\
    343 	SE_SF(DIG0_AFMT_VBI_PACKET_CONTROL1, AFMT_GENERIC5_FRAME_UPDATE_PENDING, mask_sh),\
    344 	SE_SF(DIG0_AFMT_VBI_PACKET_CONTROL1, AFMT_GENERIC6_FRAME_UPDATE_PENDING, mask_sh),\
    345 	SE_SF(DIG0_AFMT_VBI_PACKET_CONTROL1, AFMT_GENERIC7_FRAME_UPDATE_PENDING, mask_sh),\
    346 	SE_SF(DIG0_AFMT_VBI_PACKET_CONTROL1, AFMT_GENERIC0_FRAME_UPDATE, mask_sh),\
    347 	SE_SF(DIG0_AFMT_VBI_PACKET_CONTROL1, AFMT_GENERIC1_FRAME_UPDATE, mask_sh),\
    348 	SE_SF(DIG0_AFMT_VBI_PACKET_CONTROL1, AFMT_GENERIC2_FRAME_UPDATE, mask_sh),\
    349 	SE_SF(DIG0_AFMT_VBI_PACKET_CONTROL1, AFMT_GENERIC3_FRAME_UPDATE, mask_sh),\
    350 	SE_SF(DIG0_AFMT_VBI_PACKET_CONTROL1, AFMT_GENERIC4_FRAME_UPDATE, mask_sh),\
    351 	SE_SF(DIG0_AFMT_VBI_PACKET_CONTROL1, AFMT_GENERIC5_FRAME_UPDATE, mask_sh),\
    352 	SE_SF(DIG0_AFMT_VBI_PACKET_CONTROL1, AFMT_GENERIC6_FRAME_UPDATE, mask_sh),\
    353 	SE_SF(DIG0_AFMT_VBI_PACKET_CONTROL1, AFMT_GENERIC7_FRAME_UPDATE, mask_sh),\
    354 	SE_SF(DP0_DP_SEC_CNTL, DP_SEC_GSP4_ENABLE, mask_sh),\
    355 	SE_SF(DP0_DP_SEC_CNTL, DP_SEC_GSP5_ENABLE, mask_sh),\
    356 	SE_SF(DP0_DP_SEC_CNTL, DP_SEC_GSP6_ENABLE, mask_sh),\
    357 	SE_SF(DP0_DP_SEC_CNTL, DP_SEC_GSP7_ENABLE, mask_sh),\
    358 	SE_SF(DP0_DP_DB_CNTL, DP_DB_DISABLE, mask_sh),\
    359 	SE_SF(DP0_DP_MSA_COLORIMETRY, DP_MSA_MISC0, mask_sh),\
    360 	SE_SF(DP0_DP_MSA_TIMING_PARAM1, DP_MSA_HTOTAL, mask_sh),\
    361 	SE_SF(DP0_DP_MSA_TIMING_PARAM1, DP_MSA_VTOTAL, mask_sh),\
    362 	SE_SF(DP0_DP_MSA_TIMING_PARAM2, DP_MSA_HSTART, mask_sh),\
    363 	SE_SF(DP0_DP_MSA_TIMING_PARAM2, DP_MSA_VSTART, mask_sh),\
    364 	SE_SF(DP0_DP_MSA_TIMING_PARAM3, DP_MSA_HSYNCWIDTH, mask_sh),\
    365 	SE_SF(DP0_DP_MSA_TIMING_PARAM3, DP_MSA_HSYNCPOLARITY, mask_sh),\
    366 	SE_SF(DP0_DP_MSA_TIMING_PARAM3, DP_MSA_VSYNCWIDTH, mask_sh),\
    367 	SE_SF(DP0_DP_MSA_TIMING_PARAM3, DP_MSA_VSYNCPOLARITY, mask_sh),\
    368 	SE_SF(DP0_DP_MSA_TIMING_PARAM4, DP_MSA_HWIDTH, mask_sh),\
    369 	SE_SF(DP0_DP_MSA_TIMING_PARAM4, DP_MSA_VHEIGHT, mask_sh),\
    370 	SE_SF(DIG0_HDMI_DB_CONTROL, HDMI_DB_DISABLE, mask_sh),\
    371 	SE_SF(DP0_DP_VID_TIMING, DP_VID_N_MUL, mask_sh)
    372 
    373 struct dce_stream_encoder_shift {
    374 	uint8_t AFMT_GENERIC_INDEX;
    375 	uint8_t AFMT_GENERIC0_UPDATE;
    376 	uint8_t AFMT_GENERIC2_UPDATE;
    377 	uint8_t AFMT_GENERIC_HB0;
    378 	uint8_t AFMT_GENERIC_HB1;
    379 	uint8_t AFMT_GENERIC_HB2;
    380 	uint8_t AFMT_GENERIC_HB3;
    381 	uint8_t AFMT_GENERIC_LOCK_STATUS;
    382 	uint8_t AFMT_GENERIC_CONFLICT;
    383 	uint8_t AFMT_GENERIC_CONFLICT_CLR;
    384 	uint8_t AFMT_GENERIC0_FRAME_UPDATE_PENDING;
    385 	uint8_t AFMT_GENERIC1_FRAME_UPDATE_PENDING;
    386 	uint8_t AFMT_GENERIC2_FRAME_UPDATE_PENDING;
    387 	uint8_t AFMT_GENERIC3_FRAME_UPDATE_PENDING;
    388 	uint8_t AFMT_GENERIC4_FRAME_UPDATE_PENDING;
    389 	uint8_t AFMT_GENERIC5_FRAME_UPDATE_PENDING;
    390 	uint8_t AFMT_GENERIC6_FRAME_UPDATE_PENDING;
    391 	uint8_t AFMT_GENERIC7_FRAME_UPDATE_PENDING;
    392 	uint8_t AFMT_GENERIC0_FRAME_UPDATE;
    393 	uint8_t AFMT_GENERIC1_FRAME_UPDATE;
    394 	uint8_t AFMT_GENERIC2_FRAME_UPDATE;
    395 	uint8_t AFMT_GENERIC3_FRAME_UPDATE;
    396 	uint8_t AFMT_GENERIC4_FRAME_UPDATE;
    397 	uint8_t AFMT_GENERIC5_FRAME_UPDATE;
    398 	uint8_t AFMT_GENERIC6_FRAME_UPDATE;
    399 	uint8_t AFMT_GENERIC7_FRAME_UPDATE;
    400 	uint8_t HDMI_GENERIC0_CONT;
    401 	uint8_t HDMI_GENERIC0_SEND;
    402 	uint8_t HDMI_GENERIC0_LINE;
    403 	uint8_t HDMI_GENERIC1_CONT;
    404 	uint8_t HDMI_GENERIC1_SEND;
    405 	uint8_t HDMI_GENERIC1_LINE;
    406 	uint8_t DP_PIXEL_ENCODING;
    407 	uint8_t DP_COMPONENT_DEPTH;
    408 	uint8_t DP_DYN_RANGE;
    409 	uint8_t DP_YCBCR_RANGE;
    410 	uint8_t HDMI_PACKET_GEN_VERSION;
    411 	uint8_t HDMI_KEEPOUT_MODE;
    412 	uint8_t HDMI_DEEP_COLOR_ENABLE;
    413 	uint8_t HDMI_CLOCK_CHANNEL_RATE;
    414 	uint8_t HDMI_DEEP_COLOR_DEPTH;
    415 	uint8_t HDMI_GC_CONT;
    416 	uint8_t HDMI_GC_SEND;
    417 	uint8_t HDMI_NULL_SEND;
    418 	uint8_t HDMI_DATA_SCRAMBLE_EN;
    419 	uint8_t HDMI_AUDIO_INFO_SEND;
    420 	uint8_t AFMT_AUDIO_INFO_UPDATE;
    421 	uint8_t HDMI_AUDIO_INFO_LINE;
    422 	uint8_t HDMI_GC_AVMUTE;
    423 	uint8_t DP_MSE_RATE_X;
    424 	uint8_t DP_MSE_RATE_Y;
    425 	uint8_t DP_MSE_RATE_UPDATE_PENDING;
    426 	uint8_t AFMT_AVI_INFO_VERSION;
    427 	uint8_t HDMI_AVI_INFO_SEND;
    428 	uint8_t HDMI_AVI_INFO_CONT;
    429 	uint8_t HDMI_AVI_INFO_LINE;
    430 	uint8_t DP_SEC_GSP0_ENABLE;
    431 	uint8_t DP_SEC_STREAM_ENABLE;
    432 	uint8_t DP_SEC_GSP1_ENABLE;
    433 	uint8_t DP_SEC_GSP2_ENABLE;
    434 	uint8_t DP_SEC_GSP3_ENABLE;
    435 	uint8_t DP_SEC_GSP4_ENABLE;
    436 	uint8_t DP_SEC_GSP5_ENABLE;
    437 	uint8_t DP_SEC_GSP6_ENABLE;
    438 	uint8_t DP_SEC_GSP7_ENABLE;
    439 	uint8_t DP_SEC_AVI_ENABLE;
    440 	uint8_t DP_SEC_MPG_ENABLE;
    441 	uint8_t DP_VID_STREAM_DIS_DEFER;
    442 	uint8_t DP_VID_STREAM_ENABLE;
    443 	uint8_t DP_VID_STREAM_STATUS;
    444 	uint8_t DP_STEER_FIFO_RESET;
    445 	uint8_t DP_VID_M_N_GEN_EN;
    446 	uint8_t DP_VID_N;
    447 	uint8_t DP_VID_M;
    448 	uint8_t DIG_START;
    449 	uint8_t AFMT_AUDIO_SRC_SELECT;
    450 	uint8_t AFMT_AUDIO_CHANNEL_ENABLE;
    451 	uint8_t HDMI_AUDIO_PACKETS_PER_LINE;
    452 	uint8_t HDMI_AUDIO_DELAY_EN;
    453 	uint8_t AFMT_60958_CS_UPDATE;
    454 	uint8_t AFMT_AUDIO_LAYOUT_OVRD;
    455 	uint8_t AFMT_60958_OSF_OVRD;
    456 	uint8_t HDMI_ACR_AUTO_SEND;
    457 	uint8_t HDMI_ACR_SOURCE;
    458 	uint8_t HDMI_ACR_AUDIO_PRIORITY;
    459 	uint8_t HDMI_ACR_CTS_32;
    460 	uint8_t HDMI_ACR_N_32;
    461 	uint8_t HDMI_ACR_CTS_44;
    462 	uint8_t HDMI_ACR_N_44;
    463 	uint8_t HDMI_ACR_CTS_48;
    464 	uint8_t HDMI_ACR_N_48;
    465 	uint8_t AFMT_60958_CS_CHANNEL_NUMBER_L;
    466 	uint8_t AFMT_60958_CS_CLOCK_ACCURACY;
    467 	uint8_t AFMT_60958_CS_CHANNEL_NUMBER_R;
    468 	uint8_t AFMT_60958_CS_CHANNEL_NUMBER_2;
    469 	uint8_t AFMT_60958_CS_CHANNEL_NUMBER_3;
    470 	uint8_t AFMT_60958_CS_CHANNEL_NUMBER_4;
    471 	uint8_t AFMT_60958_CS_CHANNEL_NUMBER_5;
    472 	uint8_t AFMT_60958_CS_CHANNEL_NUMBER_6;
    473 	uint8_t AFMT_60958_CS_CHANNEL_NUMBER_7;
    474 	uint8_t DP_SEC_AUD_N;
    475 	uint8_t DP_SEC_TIMESTAMP_MODE;
    476 	uint8_t DP_SEC_ASP_ENABLE;
    477 	uint8_t DP_SEC_ATP_ENABLE;
    478 	uint8_t DP_SEC_AIP_ENABLE;
    479 	uint8_t DP_SEC_ACM_ENABLE;
    480 	uint8_t AFMT_AUDIO_SAMPLE_SEND;
    481 	uint8_t AFMT_AUDIO_CLOCK_EN;
    482 	uint8_t TMDS_PIXEL_ENCODING;
    483 	uint8_t TMDS_COLOR_FORMAT;
    484 	uint8_t DIG_STEREOSYNC_SELECT;
    485 	uint8_t DIG_STEREOSYNC_GATE_EN;
    486 	uint8_t DP_DB_DISABLE;
    487 	uint8_t DP_MSA_MISC0;
    488 	uint8_t DP_MSA_HTOTAL;
    489 	uint8_t DP_MSA_VTOTAL;
    490 	uint8_t DP_MSA_HSTART;
    491 	uint8_t DP_MSA_VSTART;
    492 	uint8_t DP_MSA_HSYNCWIDTH;
    493 	uint8_t DP_MSA_HSYNCPOLARITY;
    494 	uint8_t DP_MSA_VSYNCWIDTH;
    495 	uint8_t DP_MSA_VSYNCPOLARITY;
    496 	uint8_t DP_MSA_HWIDTH;
    497 	uint8_t DP_MSA_VHEIGHT;
    498 	uint8_t HDMI_DB_DISABLE;
    499 	uint8_t DP_VID_N_MUL;
    500 	uint8_t DP_VID_M_DOUBLE_VALUE_EN;
    501 	uint8_t DIG_SOURCE_SELECT;
    502 };
    503 
    504 struct dce_stream_encoder_mask {
    505 	uint32_t AFMT_GENERIC_INDEX;
    506 	uint32_t AFMT_GENERIC0_UPDATE;
    507 	uint32_t AFMT_GENERIC2_UPDATE;
    508 	uint32_t AFMT_GENERIC_HB0;
    509 	uint32_t AFMT_GENERIC_HB1;
    510 	uint32_t AFMT_GENERIC_HB2;
    511 	uint32_t AFMT_GENERIC_HB3;
    512 	uint32_t AFMT_GENERIC_LOCK_STATUS;
    513 	uint32_t AFMT_GENERIC_CONFLICT;
    514 	uint32_t AFMT_GENERIC_CONFLICT_CLR;
    515 	uint32_t AFMT_GENERIC0_FRAME_UPDATE_PENDING;
    516 	uint32_t AFMT_GENERIC1_FRAME_UPDATE_PENDING;
    517 	uint32_t AFMT_GENERIC2_FRAME_UPDATE_PENDING;
    518 	uint32_t AFMT_GENERIC3_FRAME_UPDATE_PENDING;
    519 	uint32_t AFMT_GENERIC4_FRAME_UPDATE_PENDING;
    520 	uint32_t AFMT_GENERIC5_FRAME_UPDATE_PENDING;
    521 	uint32_t AFMT_GENERIC6_FRAME_UPDATE_PENDING;
    522 	uint32_t AFMT_GENERIC7_FRAME_UPDATE_PENDING;
    523 	uint32_t AFMT_GENERIC0_FRAME_UPDATE;
    524 	uint32_t AFMT_GENERIC1_FRAME_UPDATE;
    525 	uint32_t AFMT_GENERIC2_FRAME_UPDATE;
    526 	uint32_t AFMT_GENERIC3_FRAME_UPDATE;
    527 	uint32_t AFMT_GENERIC4_FRAME_UPDATE;
    528 	uint32_t AFMT_GENERIC5_FRAME_UPDATE;
    529 	uint32_t AFMT_GENERIC6_FRAME_UPDATE;
    530 	uint32_t AFMT_GENERIC7_FRAME_UPDATE;
    531 	uint32_t HDMI_GENERIC0_CONT;
    532 	uint32_t HDMI_GENERIC0_SEND;
    533 	uint32_t HDMI_GENERIC0_LINE;
    534 	uint32_t HDMI_GENERIC1_CONT;
    535 	uint32_t HDMI_GENERIC1_SEND;
    536 	uint32_t HDMI_GENERIC1_LINE;
    537 	uint32_t DP_PIXEL_ENCODING;
    538 	uint32_t DP_COMPONENT_DEPTH;
    539 	uint32_t DP_DYN_RANGE;
    540 	uint32_t DP_YCBCR_RANGE;
    541 	uint32_t HDMI_PACKET_GEN_VERSION;
    542 	uint32_t HDMI_KEEPOUT_MODE;
    543 	uint32_t HDMI_DEEP_COLOR_ENABLE;
    544 	uint32_t HDMI_CLOCK_CHANNEL_RATE;
    545 	uint32_t HDMI_DEEP_COLOR_DEPTH;
    546 	uint32_t HDMI_GC_CONT;
    547 	uint32_t HDMI_GC_SEND;
    548 	uint32_t HDMI_NULL_SEND;
    549 	uint32_t HDMI_DATA_SCRAMBLE_EN;
    550 	uint32_t HDMI_AUDIO_INFO_SEND;
    551 	uint32_t AFMT_AUDIO_INFO_UPDATE;
    552 	uint32_t HDMI_AUDIO_INFO_LINE;
    553 	uint32_t HDMI_GC_AVMUTE;
    554 	uint32_t DP_MSE_RATE_X;
    555 	uint32_t DP_MSE_RATE_Y;
    556 	uint32_t DP_MSE_RATE_UPDATE_PENDING;
    557 	uint32_t AFMT_AVI_INFO_VERSION;
    558 	uint32_t HDMI_AVI_INFO_SEND;
    559 	uint32_t HDMI_AVI_INFO_CONT;
    560 	uint32_t HDMI_AVI_INFO_LINE;
    561 	uint32_t DP_SEC_GSP0_ENABLE;
    562 	uint32_t DP_SEC_STREAM_ENABLE;
    563 	uint32_t DP_SEC_GSP1_ENABLE;
    564 	uint32_t DP_SEC_GSP2_ENABLE;
    565 	uint32_t DP_SEC_GSP3_ENABLE;
    566 	uint32_t DP_SEC_GSP4_ENABLE;
    567 	uint32_t DP_SEC_GSP5_ENABLE;
    568 	uint32_t DP_SEC_GSP6_ENABLE;
    569 	uint32_t DP_SEC_GSP7_ENABLE;
    570 	uint32_t DP_SEC_AVI_ENABLE;
    571 	uint32_t DP_SEC_MPG_ENABLE;
    572 	uint32_t DP_VID_STREAM_DIS_DEFER;
    573 	uint32_t DP_VID_STREAM_ENABLE;
    574 	uint32_t DP_VID_STREAM_STATUS;
    575 	uint32_t DP_STEER_FIFO_RESET;
    576 	uint32_t DP_VID_M_N_GEN_EN;
    577 	uint32_t DP_VID_N;
    578 	uint32_t DP_VID_M;
    579 	uint32_t DIG_START;
    580 	uint32_t AFMT_AUDIO_SRC_SELECT;
    581 	uint32_t AFMT_AUDIO_CHANNEL_ENABLE;
    582 	uint32_t HDMI_AUDIO_PACKETS_PER_LINE;
    583 	uint32_t HDMI_AUDIO_DELAY_EN;
    584 	uint32_t AFMT_60958_CS_UPDATE;
    585 	uint32_t AFMT_AUDIO_LAYOUT_OVRD;
    586 	uint32_t AFMT_60958_OSF_OVRD;
    587 	uint32_t HDMI_ACR_AUTO_SEND;
    588 	uint32_t HDMI_ACR_SOURCE;
    589 	uint32_t HDMI_ACR_AUDIO_PRIORITY;
    590 	uint32_t HDMI_ACR_CTS_32;
    591 	uint32_t HDMI_ACR_N_32;
    592 	uint32_t HDMI_ACR_CTS_44;
    593 	uint32_t HDMI_ACR_N_44;
    594 	uint32_t HDMI_ACR_CTS_48;
    595 	uint32_t HDMI_ACR_N_48;
    596 	uint32_t AFMT_60958_CS_CHANNEL_NUMBER_L;
    597 	uint32_t AFMT_60958_CS_CLOCK_ACCURACY;
    598 	uint32_t AFMT_60958_CS_CHANNEL_NUMBER_R;
    599 	uint32_t AFMT_60958_CS_CHANNEL_NUMBER_2;
    600 	uint32_t AFMT_60958_CS_CHANNEL_NUMBER_3;
    601 	uint32_t AFMT_60958_CS_CHANNEL_NUMBER_4;
    602 	uint32_t AFMT_60958_CS_CHANNEL_NUMBER_5;
    603 	uint32_t AFMT_60958_CS_CHANNEL_NUMBER_6;
    604 	uint32_t AFMT_60958_CS_CHANNEL_NUMBER_7;
    605 	uint32_t DP_SEC_AUD_N;
    606 	uint32_t DP_SEC_TIMESTAMP_MODE;
    607 	uint32_t DP_SEC_ASP_ENABLE;
    608 	uint32_t DP_SEC_ATP_ENABLE;
    609 	uint32_t DP_SEC_AIP_ENABLE;
    610 	uint32_t DP_SEC_ACM_ENABLE;
    611 	uint32_t AFMT_AUDIO_SAMPLE_SEND;
    612 	uint32_t AFMT_AUDIO_CLOCK_EN;
    613 	uint32_t TMDS_PIXEL_ENCODING;
    614 	uint32_t DIG_STEREOSYNC_SELECT;
    615 	uint32_t DIG_STEREOSYNC_GATE_EN;
    616 	uint32_t TMDS_COLOR_FORMAT;
    617 	uint32_t DP_DB_DISABLE;
    618 	uint32_t DP_MSA_MISC0;
    619 	uint32_t DP_MSA_HTOTAL;
    620 	uint32_t DP_MSA_VTOTAL;
    621 	uint32_t DP_MSA_HSTART;
    622 	uint32_t DP_MSA_VSTART;
    623 	uint32_t DP_MSA_HSYNCWIDTH;
    624 	uint32_t DP_MSA_HSYNCPOLARITY;
    625 	uint32_t DP_MSA_VSYNCWIDTH;
    626 	uint32_t DP_MSA_VSYNCPOLARITY;
    627 	uint32_t DP_MSA_HWIDTH;
    628 	uint32_t DP_MSA_VHEIGHT;
    629 	uint32_t HDMI_DB_DISABLE;
    630 	uint32_t DP_VID_N_MUL;
    631 	uint32_t DP_VID_M_DOUBLE_VALUE_EN;
    632 	uint32_t DIG_SOURCE_SELECT;
    633 };
    634 
    635 struct dce110_stream_enc_registers {
    636 	uint32_t AFMT_CNTL;
    637 	uint32_t AFMT_AVI_INFO0;
    638 	uint32_t AFMT_AVI_INFO1;
    639 	uint32_t AFMT_AVI_INFO2;
    640 	uint32_t AFMT_AVI_INFO3;
    641 	uint32_t AFMT_GENERIC_0;
    642 	uint32_t AFMT_GENERIC_1;
    643 	uint32_t AFMT_GENERIC_2;
    644 	uint32_t AFMT_GENERIC_3;
    645 	uint32_t AFMT_GENERIC_4;
    646 	uint32_t AFMT_GENERIC_5;
    647 	uint32_t AFMT_GENERIC_6;
    648 	uint32_t AFMT_GENERIC_7;
    649 	uint32_t AFMT_GENERIC_HDR;
    650 	uint32_t AFMT_INFOFRAME_CONTROL0;
    651 	uint32_t AFMT_VBI_PACKET_CONTROL;
    652 	uint32_t AFMT_VBI_PACKET_CONTROL1;
    653 	uint32_t AFMT_AUDIO_PACKET_CONTROL;
    654 	uint32_t AFMT_AUDIO_PACKET_CONTROL2;
    655 	uint32_t AFMT_AUDIO_SRC_CONTROL;
    656 	uint32_t AFMT_60958_0;
    657 	uint32_t AFMT_60958_1;
    658 	uint32_t AFMT_60958_2;
    659 	uint32_t DIG_FE_CNTL;
    660 	uint32_t DP_MSE_RATE_CNTL;
    661 	uint32_t DP_MSE_RATE_UPDATE;
    662 	uint32_t DP_PIXEL_FORMAT;
    663 	uint32_t DP_SEC_CNTL;
    664 	uint32_t DP_STEER_FIFO;
    665 	uint32_t DP_VID_M;
    666 	uint32_t DP_VID_N;
    667 	uint32_t DP_VID_STREAM_CNTL;
    668 	uint32_t DP_VID_TIMING;
    669 	uint32_t DP_SEC_AUD_N;
    670 	uint32_t DP_SEC_TIMESTAMP;
    671 	uint32_t HDMI_CONTROL;
    672 	uint32_t HDMI_GC;
    673 	uint32_t HDMI_GENERIC_PACKET_CONTROL0;
    674 	uint32_t HDMI_GENERIC_PACKET_CONTROL1;
    675 	uint32_t HDMI_GENERIC_PACKET_CONTROL2;
    676 	uint32_t HDMI_GENERIC_PACKET_CONTROL3;
    677 	uint32_t HDMI_INFOFRAME_CONTROL0;
    678 	uint32_t HDMI_INFOFRAME_CONTROL1;
    679 	uint32_t HDMI_VBI_PACKET_CONTROL;
    680 	uint32_t HDMI_AUDIO_PACKET_CONTROL;
    681 	uint32_t HDMI_ACR_PACKET_CONTROL;
    682 	uint32_t HDMI_ACR_32_0;
    683 	uint32_t HDMI_ACR_32_1;
    684 	uint32_t HDMI_ACR_44_0;
    685 	uint32_t HDMI_ACR_44_1;
    686 	uint32_t HDMI_ACR_48_0;
    687 	uint32_t HDMI_ACR_48_1;
    688 	uint32_t TMDS_CNTL;
    689 	uint32_t DP_DB_CNTL;
    690 	uint32_t DP_MSA_MISC;
    691 	uint32_t DP_MSA_COLORIMETRY;
    692 	uint32_t DP_MSA_TIMING_PARAM1;
    693 	uint32_t DP_MSA_TIMING_PARAM2;
    694 	uint32_t DP_MSA_TIMING_PARAM3;
    695 	uint32_t DP_MSA_TIMING_PARAM4;
    696 	uint32_t HDMI_DB_CONTROL;
    697 };
    698 
    699 struct dce110_stream_encoder {
    700 	struct stream_encoder base;
    701 	const struct dce110_stream_enc_registers *regs;
    702 	const struct dce_stream_encoder_shift *se_shift;
    703 	const struct dce_stream_encoder_mask *se_mask;
    704 };
    705 
    706 void dce110_stream_encoder_construct(
    707 	struct dce110_stream_encoder *enc110,
    708 	struct dc_context *ctx,
    709 	struct dc_bios *bp,
    710 	enum engine_id eng_id,
    711 	const struct dce110_stream_enc_registers *regs,
    712 	const struct dce_stream_encoder_shift *se_shift,
    713 	const struct dce_stream_encoder_mask *se_mask);
    714 
    715 
    716 void dce110_se_audio_mute_control(
    717 	struct stream_encoder *enc, bool mute);
    718 
    719 void dce110_se_dp_audio_setup(
    720 	struct stream_encoder *enc,
    721 	unsigned int az_inst,
    722 	struct audio_info *info);
    723 
    724 void dce110_se_dp_audio_enable(
    725 		struct stream_encoder *enc);
    726 
    727 void dce110_se_dp_audio_disable(
    728 		struct stream_encoder *enc);
    729 
    730 void dce110_se_hdmi_audio_setup(
    731 	struct stream_encoder *enc,
    732 	unsigned int az_inst,
    733 	struct audio_info *info,
    734 	struct audio_crtc_info *audio_crtc_info);
    735 
    736 void dce110_se_hdmi_audio_disable(
    737 	struct stream_encoder *enc);
    738 
    739 #endif /* __DC_STREAM_ENCODER_DCE110_H__ */
    740