1*b843c749SSergey Zigachev /* Copyright 2012-15 Advanced Micro Devices, Inc. 2*b843c749SSergey Zigachev * 3*b843c749SSergey Zigachev * Permission is hereby granted, free of charge, to any person obtaining a 4*b843c749SSergey Zigachev * copy of this software and associated documentation files (the "Software"), 5*b843c749SSergey Zigachev * to deal in the Software without restriction, including without limitation 6*b843c749SSergey Zigachev * the rights to use, copy, modify, merge, publish, distribute, sublicense, 7*b843c749SSergey Zigachev * and/or sell copies of the Software, and to permit persons to whom the 8*b843c749SSergey Zigachev * Software is furnished to do so, subject to the following conditions: 9*b843c749SSergey Zigachev * 10*b843c749SSergey Zigachev * The above copyright notice and this permission notice shall be included in 11*b843c749SSergey Zigachev * all copies or substantial portions of the Software. 12*b843c749SSergey Zigachev * 13*b843c749SSergey Zigachev * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14*b843c749SSergey Zigachev * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15*b843c749SSergey Zigachev * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 16*b843c749SSergey Zigachev * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR 17*b843c749SSergey Zigachev * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 18*b843c749SSergey Zigachev * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 19*b843c749SSergey Zigachev * OTHER DEALINGS IN THE SOFTWARE. 20*b843c749SSergey Zigachev * 21*b843c749SSergey Zigachev * Authors: AMD 22*b843c749SSergey Zigachev * 23*b843c749SSergey Zigachev */ 24*b843c749SSergey Zigachev 25*b843c749SSergey Zigachev #ifndef __DC_MEM_INPUT_DCN10_H__ 26*b843c749SSergey Zigachev #define __DC_MEM_INPUT_DCN10_H__ 27*b843c749SSergey Zigachev 28*b843c749SSergey Zigachev #include "hubp.h" 29*b843c749SSergey Zigachev 30*b843c749SSergey Zigachev #define TO_DCN10_HUBP(hubp)\ 31*b843c749SSergey Zigachev container_of(hubp, struct dcn10_hubp, base) 32*b843c749SSergey Zigachev 33*b843c749SSergey Zigachev /* Register address initialization macro for all ASICs (including those with reduced functionality) */ 34*b843c749SSergey Zigachev #define HUBP_REG_LIST_DCN(id)\ 35*b843c749SSergey Zigachev SRI(DCHUBP_CNTL, HUBP, id),\ 36*b843c749SSergey Zigachev SRI(HUBPREQ_DEBUG_DB, HUBP, id),\ 37*b843c749SSergey Zigachev SRI(DCSURF_ADDR_CONFIG, HUBP, id),\ 38*b843c749SSergey Zigachev SRI(DCSURF_TILING_CONFIG, HUBP, id),\ 39*b843c749SSergey Zigachev SRI(DCSURF_SURFACE_PITCH, HUBPREQ, id),\ 40*b843c749SSergey Zigachev SRI(DCSURF_SURFACE_PITCH_C, HUBPREQ, id),\ 41*b843c749SSergey Zigachev SRI(DCSURF_SURFACE_CONFIG, HUBP, id),\ 42*b843c749SSergey Zigachev SRI(DCSURF_FLIP_CONTROL, HUBPREQ, id),\ 43*b843c749SSergey Zigachev SRI(DCSURF_PRI_VIEWPORT_DIMENSION, HUBP, id), \ 44*b843c749SSergey Zigachev SRI(DCSURF_PRI_VIEWPORT_START, HUBP, id), \ 45*b843c749SSergey Zigachev SRI(DCSURF_SEC_VIEWPORT_DIMENSION, HUBP, id), \ 46*b843c749SSergey Zigachev SRI(DCSURF_SEC_VIEWPORT_START, HUBP, id), \ 47*b843c749SSergey Zigachev SRI(DCSURF_PRI_VIEWPORT_DIMENSION_C, HUBP, id), \ 48*b843c749SSergey Zigachev SRI(DCSURF_PRI_VIEWPORT_START_C, HUBP, id), \ 49*b843c749SSergey Zigachev SRI(DCSURF_PRIMARY_SURFACE_ADDRESS_HIGH, HUBPREQ, id),\ 50*b843c749SSergey Zigachev SRI(DCSURF_PRIMARY_SURFACE_ADDRESS, HUBPREQ, id),\ 51*b843c749SSergey Zigachev SRI(DCSURF_SECONDARY_SURFACE_ADDRESS_HIGH, HUBPREQ, id),\ 52*b843c749SSergey Zigachev SRI(DCSURF_SECONDARY_SURFACE_ADDRESS, HUBPREQ, id),\ 53*b843c749SSergey Zigachev SRI(DCSURF_PRIMARY_META_SURFACE_ADDRESS_HIGH, HUBPREQ, id),\ 54*b843c749SSergey Zigachev SRI(DCSURF_PRIMARY_META_SURFACE_ADDRESS, HUBPREQ, id),\ 55*b843c749SSergey Zigachev SRI(DCSURF_SECONDARY_META_SURFACE_ADDRESS_HIGH, HUBPREQ, id),\ 56*b843c749SSergey Zigachev SRI(DCSURF_SECONDARY_META_SURFACE_ADDRESS, HUBPREQ, id),\ 57*b843c749SSergey Zigachev SRI(DCSURF_PRIMARY_SURFACE_ADDRESS_HIGH_C, HUBPREQ, id),\ 58*b843c749SSergey Zigachev SRI(DCSURF_PRIMARY_SURFACE_ADDRESS_C, HUBPREQ, id),\ 59*b843c749SSergey Zigachev SRI(DCSURF_PRIMARY_META_SURFACE_ADDRESS_HIGH_C, HUBPREQ, id),\ 60*b843c749SSergey Zigachev SRI(DCSURF_PRIMARY_META_SURFACE_ADDRESS_C, HUBPREQ, id),\ 61*b843c749SSergey Zigachev SRI(DCSURF_SURFACE_INUSE, HUBPREQ, id),\ 62*b843c749SSergey Zigachev SRI(DCSURF_SURFACE_INUSE_HIGH, HUBPREQ, id),\ 63*b843c749SSergey Zigachev SRI(DCSURF_SURFACE_INUSE_C, HUBPREQ, id),\ 64*b843c749SSergey Zigachev SRI(DCSURF_SURFACE_INUSE_HIGH_C, HUBPREQ, id),\ 65*b843c749SSergey Zigachev SRI(DCSURF_SURFACE_EARLIEST_INUSE, HUBPREQ, id),\ 66*b843c749SSergey Zigachev SRI(DCSURF_SURFACE_EARLIEST_INUSE_HIGH, HUBPREQ, id),\ 67*b843c749SSergey Zigachev SRI(DCSURF_SURFACE_EARLIEST_INUSE_C, HUBPREQ, id),\ 68*b843c749SSergey Zigachev SRI(DCSURF_SURFACE_EARLIEST_INUSE_HIGH_C, HUBPREQ, id),\ 69*b843c749SSergey Zigachev SRI(DCSURF_SURFACE_CONTROL, HUBPREQ, id),\ 70*b843c749SSergey Zigachev SRI(HUBPRET_CONTROL, HUBPRET, id),\ 71*b843c749SSergey Zigachev SRI(DCN_EXPANSION_MODE, HUBPREQ, id),\ 72*b843c749SSergey Zigachev SRI(DCHUBP_REQ_SIZE_CONFIG, HUBP, id),\ 73*b843c749SSergey Zigachev SRI(DCHUBP_REQ_SIZE_CONFIG_C, HUBP, id),\ 74*b843c749SSergey Zigachev SRI(BLANK_OFFSET_0, HUBPREQ, id),\ 75*b843c749SSergey Zigachev SRI(BLANK_OFFSET_1, HUBPREQ, id),\ 76*b843c749SSergey Zigachev SRI(DST_DIMENSIONS, HUBPREQ, id),\ 77*b843c749SSergey Zigachev SRI(DST_AFTER_SCALER, HUBPREQ, id),\ 78*b843c749SSergey Zigachev SRI(VBLANK_PARAMETERS_0, HUBPREQ, id),\ 79*b843c749SSergey Zigachev SRI(REF_FREQ_TO_PIX_FREQ, HUBPREQ, id),\ 80*b843c749SSergey Zigachev SRI(VBLANK_PARAMETERS_1, HUBPREQ, id),\ 81*b843c749SSergey Zigachev SRI(VBLANK_PARAMETERS_3, HUBPREQ, id),\ 82*b843c749SSergey Zigachev SRI(NOM_PARAMETERS_4, HUBPREQ, id),\ 83*b843c749SSergey Zigachev SRI(NOM_PARAMETERS_5, HUBPREQ, id),\ 84*b843c749SSergey Zigachev SRI(PER_LINE_DELIVERY_PRE, HUBPREQ, id),\ 85*b843c749SSergey Zigachev SRI(PER_LINE_DELIVERY, HUBPREQ, id),\ 86*b843c749SSergey Zigachev SRI(VBLANK_PARAMETERS_2, HUBPREQ, id),\ 87*b843c749SSergey Zigachev SRI(VBLANK_PARAMETERS_4, HUBPREQ, id),\ 88*b843c749SSergey Zigachev SRI(NOM_PARAMETERS_6, HUBPREQ, id),\ 89*b843c749SSergey Zigachev SRI(NOM_PARAMETERS_7, HUBPREQ, id),\ 90*b843c749SSergey Zigachev SRI(DCN_TTU_QOS_WM, HUBPREQ, id),\ 91*b843c749SSergey Zigachev SRI(DCN_GLOBAL_TTU_CNTL, HUBPREQ, id),\ 92*b843c749SSergey Zigachev SRI(DCN_SURF0_TTU_CNTL0, HUBPREQ, id),\ 93*b843c749SSergey Zigachev SRI(DCN_SURF0_TTU_CNTL1, HUBPREQ, id),\ 94*b843c749SSergey Zigachev SRI(DCN_SURF1_TTU_CNTL0, HUBPREQ, id),\ 95*b843c749SSergey Zigachev SRI(DCN_SURF1_TTU_CNTL1, HUBPREQ, id),\ 96*b843c749SSergey Zigachev SRI(DCN_CUR0_TTU_CNTL0, HUBPREQ, id),\ 97*b843c749SSergey Zigachev SRI(DCN_CUR0_TTU_CNTL1, HUBPREQ, id),\ 98*b843c749SSergey Zigachev SRI(HUBP_CLK_CNTL, HUBP, id) 99*b843c749SSergey Zigachev 100*b843c749SSergey Zigachev /* Register address initialization macro for ASICs with VM */ 101*b843c749SSergey Zigachev #define HUBP_REG_LIST_DCN_VM(id)\ 102*b843c749SSergey Zigachev SRI(NOM_PARAMETERS_0, HUBPREQ, id),\ 103*b843c749SSergey Zigachev SRI(NOM_PARAMETERS_1, HUBPREQ, id),\ 104*b843c749SSergey Zigachev SRI(NOM_PARAMETERS_2, HUBPREQ, id),\ 105*b843c749SSergey Zigachev SRI(NOM_PARAMETERS_3, HUBPREQ, id),\ 106*b843c749SSergey Zigachev SRI(DCN_VM_MX_L1_TLB_CNTL, HUBPREQ, id) 107*b843c749SSergey Zigachev 108*b843c749SSergey Zigachev #define HUBP_REG_LIST_DCN10(id)\ 109*b843c749SSergey Zigachev HUBP_REG_LIST_DCN(id),\ 110*b843c749SSergey Zigachev HUBP_REG_LIST_DCN_VM(id),\ 111*b843c749SSergey Zigachev SRI(PREFETCH_SETTINS, HUBPREQ, id),\ 112*b843c749SSergey Zigachev SRI(PREFETCH_SETTINS_C, HUBPREQ, id),\ 113*b843c749SSergey Zigachev SRI(DCN_VM_CONTEXT0_PAGE_TABLE_BASE_ADDR_MSB, HUBPREQ, id),\ 114*b843c749SSergey Zigachev SRI(DCN_VM_CONTEXT0_PAGE_TABLE_BASE_ADDR_LSB, HUBPREQ, id),\ 115*b843c749SSergey Zigachev SRI(DCN_VM_CONTEXT0_PAGE_TABLE_START_ADDR_MSB, HUBPREQ, id),\ 116*b843c749SSergey Zigachev SRI(DCN_VM_CONTEXT0_PAGE_TABLE_START_ADDR_LSB, HUBPREQ, id),\ 117*b843c749SSergey Zigachev SRI(DCN_VM_CONTEXT0_PAGE_TABLE_END_ADDR_MSB, HUBPREQ, id),\ 118*b843c749SSergey Zigachev SRI(DCN_VM_CONTEXT0_PAGE_TABLE_END_ADDR_LSB, HUBPREQ, id),\ 119*b843c749SSergey Zigachev SRI(DCN_VM_CONTEXT0_PROTECTION_FAULT_DEFAULT_ADDR_MSB, HUBPREQ, id),\ 120*b843c749SSergey Zigachev SRI(DCN_VM_CONTEXT0_PROTECTION_FAULT_DEFAULT_ADDR_LSB, HUBPREQ, id),\ 121*b843c749SSergey Zigachev SRI(DCN_VM_SYSTEM_APERTURE_DEFAULT_ADDR_MSB, HUBPREQ, id),\ 122*b843c749SSergey Zigachev SRI(DCN_VM_SYSTEM_APERTURE_DEFAULT_ADDR_LSB, HUBPREQ, id),\ 123*b843c749SSergey Zigachev SRI(DCN_VM_SYSTEM_APERTURE_LOW_ADDR_MSB, HUBPREQ, id),\ 124*b843c749SSergey Zigachev SRI(DCN_VM_SYSTEM_APERTURE_LOW_ADDR_LSB, HUBPREQ, id),\ 125*b843c749SSergey Zigachev SRI(DCN_VM_SYSTEM_APERTURE_HIGH_ADDR_MSB, HUBPREQ, id),\ 126*b843c749SSergey Zigachev SRI(DCN_VM_SYSTEM_APERTURE_HIGH_ADDR_LSB, HUBPREQ, id),\ 127*b843c749SSergey Zigachev SR(DCHUBBUB_SDPIF_FB_BASE),\ 128*b843c749SSergey Zigachev SR(DCHUBBUB_SDPIF_FB_OFFSET),\ 129*b843c749SSergey Zigachev SRI(CURSOR_SETTINS, HUBPREQ, id), \ 130*b843c749SSergey Zigachev SRI(CURSOR_SURFACE_ADDRESS_HIGH, CURSOR, id), \ 131*b843c749SSergey Zigachev SRI(CURSOR_SURFACE_ADDRESS, CURSOR, id), \ 132*b843c749SSergey Zigachev SRI(CURSOR_SIZE, CURSOR, id), \ 133*b843c749SSergey Zigachev SRI(CURSOR_CONTROL, CURSOR, id), \ 134*b843c749SSergey Zigachev SRI(CURSOR_POSITION, CURSOR, id), \ 135*b843c749SSergey Zigachev SRI(CURSOR_HOT_SPOT, CURSOR, id), \ 136*b843c749SSergey Zigachev SRI(CURSOR_DST_OFFSET, CURSOR, id) 137*b843c749SSergey Zigachev 138*b843c749SSergey Zigachev #define HUBP_COMMON_REG_VARIABLE_LIST \ 139*b843c749SSergey Zigachev uint32_t DCHUBP_CNTL; \ 140*b843c749SSergey Zigachev uint32_t HUBPREQ_DEBUG_DB; \ 141*b843c749SSergey Zigachev uint32_t DCSURF_ADDR_CONFIG; \ 142*b843c749SSergey Zigachev uint32_t DCSURF_TILING_CONFIG; \ 143*b843c749SSergey Zigachev uint32_t DCSURF_SURFACE_PITCH; \ 144*b843c749SSergey Zigachev uint32_t DCSURF_SURFACE_PITCH_C; \ 145*b843c749SSergey Zigachev uint32_t DCSURF_SURFACE_CONFIG; \ 146*b843c749SSergey Zigachev uint32_t DCSURF_FLIP_CONTROL; \ 147*b843c749SSergey Zigachev uint32_t DCSURF_PRI_VIEWPORT_DIMENSION; \ 148*b843c749SSergey Zigachev uint32_t DCSURF_PRI_VIEWPORT_START; \ 149*b843c749SSergey Zigachev uint32_t DCSURF_SEC_VIEWPORT_DIMENSION; \ 150*b843c749SSergey Zigachev uint32_t DCSURF_SEC_VIEWPORT_START; \ 151*b843c749SSergey Zigachev uint32_t DCSURF_PRI_VIEWPORT_DIMENSION_C; \ 152*b843c749SSergey Zigachev uint32_t DCSURF_PRI_VIEWPORT_START_C; \ 153*b843c749SSergey Zigachev uint32_t DCSURF_PRIMARY_SURFACE_ADDRESS_HIGH; \ 154*b843c749SSergey Zigachev uint32_t DCSURF_PRIMARY_SURFACE_ADDRESS; \ 155*b843c749SSergey Zigachev uint32_t DCSURF_SECONDARY_SURFACE_ADDRESS_HIGH; \ 156*b843c749SSergey Zigachev uint32_t DCSURF_SECONDARY_SURFACE_ADDRESS; \ 157*b843c749SSergey Zigachev uint32_t DCSURF_PRIMARY_META_SURFACE_ADDRESS_HIGH; \ 158*b843c749SSergey Zigachev uint32_t DCSURF_PRIMARY_META_SURFACE_ADDRESS; \ 159*b843c749SSergey Zigachev uint32_t DCSURF_SECONDARY_META_SURFACE_ADDRESS_HIGH; \ 160*b843c749SSergey Zigachev uint32_t DCSURF_SECONDARY_META_SURFACE_ADDRESS; \ 161*b843c749SSergey Zigachev uint32_t DCSURF_PRIMARY_SURFACE_ADDRESS_HIGH_C; \ 162*b843c749SSergey Zigachev uint32_t DCSURF_PRIMARY_SURFACE_ADDRESS_C; \ 163*b843c749SSergey Zigachev uint32_t DCSURF_PRIMARY_META_SURFACE_ADDRESS_HIGH_C; \ 164*b843c749SSergey Zigachev uint32_t DCSURF_PRIMARY_META_SURFACE_ADDRESS_C; \ 165*b843c749SSergey Zigachev uint32_t DCSURF_SURFACE_INUSE; \ 166*b843c749SSergey Zigachev uint32_t DCSURF_SURFACE_INUSE_HIGH; \ 167*b843c749SSergey Zigachev uint32_t DCSURF_SURFACE_INUSE_C; \ 168*b843c749SSergey Zigachev uint32_t DCSURF_SURFACE_INUSE_HIGH_C; \ 169*b843c749SSergey Zigachev uint32_t DCSURF_SURFACE_EARLIEST_INUSE; \ 170*b843c749SSergey Zigachev uint32_t DCSURF_SURFACE_EARLIEST_INUSE_HIGH; \ 171*b843c749SSergey Zigachev uint32_t DCSURF_SURFACE_EARLIEST_INUSE_C; \ 172*b843c749SSergey Zigachev uint32_t DCSURF_SURFACE_EARLIEST_INUSE_HIGH_C; \ 173*b843c749SSergey Zigachev uint32_t DCSURF_SURFACE_CONTROL; \ 174*b843c749SSergey Zigachev uint32_t HUBPRET_CONTROL; \ 175*b843c749SSergey Zigachev uint32_t DCN_EXPANSION_MODE; \ 176*b843c749SSergey Zigachev uint32_t DCHUBP_REQ_SIZE_CONFIG; \ 177*b843c749SSergey Zigachev uint32_t DCHUBP_REQ_SIZE_CONFIG_C; \ 178*b843c749SSergey Zigachev uint32_t BLANK_OFFSET_0; \ 179*b843c749SSergey Zigachev uint32_t BLANK_OFFSET_1; \ 180*b843c749SSergey Zigachev uint32_t DST_DIMENSIONS; \ 181*b843c749SSergey Zigachev uint32_t DST_AFTER_SCALER; \ 182*b843c749SSergey Zigachev uint32_t PREFETCH_SETTINS; \ 183*b843c749SSergey Zigachev uint32_t PREFETCH_SETTINGS; \ 184*b843c749SSergey Zigachev uint32_t VBLANK_PARAMETERS_0; \ 185*b843c749SSergey Zigachev uint32_t REF_FREQ_TO_PIX_FREQ; \ 186*b843c749SSergey Zigachev uint32_t VBLANK_PARAMETERS_1; \ 187*b843c749SSergey Zigachev uint32_t VBLANK_PARAMETERS_3; \ 188*b843c749SSergey Zigachev uint32_t NOM_PARAMETERS_0; \ 189*b843c749SSergey Zigachev uint32_t NOM_PARAMETERS_1; \ 190*b843c749SSergey Zigachev uint32_t NOM_PARAMETERS_4; \ 191*b843c749SSergey Zigachev uint32_t NOM_PARAMETERS_5; \ 192*b843c749SSergey Zigachev uint32_t PER_LINE_DELIVERY_PRE; \ 193*b843c749SSergey Zigachev uint32_t PER_LINE_DELIVERY; \ 194*b843c749SSergey Zigachev uint32_t PREFETCH_SETTINS_C; \ 195*b843c749SSergey Zigachev uint32_t PREFETCH_SETTINGS_C; \ 196*b843c749SSergey Zigachev uint32_t VBLANK_PARAMETERS_2; \ 197*b843c749SSergey Zigachev uint32_t VBLANK_PARAMETERS_4; \ 198*b843c749SSergey Zigachev uint32_t NOM_PARAMETERS_2; \ 199*b843c749SSergey Zigachev uint32_t NOM_PARAMETERS_3; \ 200*b843c749SSergey Zigachev uint32_t NOM_PARAMETERS_6; \ 201*b843c749SSergey Zigachev uint32_t NOM_PARAMETERS_7; \ 202*b843c749SSergey Zigachev uint32_t DCN_TTU_QOS_WM; \ 203*b843c749SSergey Zigachev uint32_t DCN_GLOBAL_TTU_CNTL; \ 204*b843c749SSergey Zigachev uint32_t DCN_SURF0_TTU_CNTL0; \ 205*b843c749SSergey Zigachev uint32_t DCN_SURF0_TTU_CNTL1; \ 206*b843c749SSergey Zigachev uint32_t DCN_SURF1_TTU_CNTL0; \ 207*b843c749SSergey Zigachev uint32_t DCN_SURF1_TTU_CNTL1; \ 208*b843c749SSergey Zigachev uint32_t DCN_CUR0_TTU_CNTL0; \ 209*b843c749SSergey Zigachev uint32_t DCN_CUR0_TTU_CNTL1; \ 210*b843c749SSergey Zigachev uint32_t DCN_VM_CONTEXT0_PAGE_TABLE_BASE_ADDR_MSB; \ 211*b843c749SSergey Zigachev uint32_t DCN_VM_CONTEXT0_PAGE_TABLE_BASE_ADDR_LSB; \ 212*b843c749SSergey Zigachev uint32_t DCN_VM_CONTEXT0_PAGE_TABLE_START_ADDR_MSB; \ 213*b843c749SSergey Zigachev uint32_t DCN_VM_CONTEXT0_PAGE_TABLE_START_ADDR_LSB; \ 214*b843c749SSergey Zigachev uint32_t DCN_VM_CONTEXT0_PAGE_TABLE_END_ADDR_MSB; \ 215*b843c749SSergey Zigachev uint32_t DCN_VM_CONTEXT0_PAGE_TABLE_END_ADDR_LSB; \ 216*b843c749SSergey Zigachev uint32_t DCN_VM_CONTEXT0_PROTECTION_FAULT_DEFAULT_ADDR_MSB; \ 217*b843c749SSergey Zigachev uint32_t DCN_VM_CONTEXT0_PROTECTION_FAULT_DEFAULT_ADDR_LSB; \ 218*b843c749SSergey Zigachev uint32_t DCN_VM_MX_L1_TLB_CNTL; \ 219*b843c749SSergey Zigachev uint32_t DCN_VM_SYSTEM_APERTURE_DEFAULT_ADDR_MSB; \ 220*b843c749SSergey Zigachev uint32_t DCN_VM_SYSTEM_APERTURE_DEFAULT_ADDR_LSB; \ 221*b843c749SSergey Zigachev uint32_t DCN_VM_SYSTEM_APERTURE_LOW_ADDR_MSB; \ 222*b843c749SSergey Zigachev uint32_t DCN_VM_SYSTEM_APERTURE_LOW_ADDR_LSB; \ 223*b843c749SSergey Zigachev uint32_t DCN_VM_SYSTEM_APERTURE_HIGH_ADDR_MSB; \ 224*b843c749SSergey Zigachev uint32_t DCN_VM_SYSTEM_APERTURE_HIGH_ADDR_LSB; \ 225*b843c749SSergey Zigachev uint32_t DCN_VM_SYSTEM_APERTURE_LOW_ADDR; \ 226*b843c749SSergey Zigachev uint32_t DCN_VM_SYSTEM_APERTURE_HIGH_ADDR; \ 227*b843c749SSergey Zigachev uint32_t DCHUBBUB_SDPIF_FB_BASE; \ 228*b843c749SSergey Zigachev uint32_t DCHUBBUB_SDPIF_FB_OFFSET; \ 229*b843c749SSergey Zigachev uint32_t DCN_VM_FB_LOCATION_TOP; \ 230*b843c749SSergey Zigachev uint32_t DCN_VM_FB_LOCATION_BASE; \ 231*b843c749SSergey Zigachev uint32_t DCN_VM_FB_OFFSET; \ 232*b843c749SSergey Zigachev uint32_t DCN_VM_AGP_BASE; \ 233*b843c749SSergey Zigachev uint32_t DCN_VM_AGP_BOT; \ 234*b843c749SSergey Zigachev uint32_t DCN_VM_AGP_TOP; \ 235*b843c749SSergey Zigachev uint32_t CURSOR_SETTINS; \ 236*b843c749SSergey Zigachev uint32_t CURSOR_SETTINGS; \ 237*b843c749SSergey Zigachev uint32_t CURSOR_SURFACE_ADDRESS_HIGH; \ 238*b843c749SSergey Zigachev uint32_t CURSOR_SURFACE_ADDRESS; \ 239*b843c749SSergey Zigachev uint32_t CURSOR_SIZE; \ 240*b843c749SSergey Zigachev uint32_t CURSOR_CONTROL; \ 241*b843c749SSergey Zigachev uint32_t CURSOR_POSITION; \ 242*b843c749SSergey Zigachev uint32_t CURSOR_HOT_SPOT; \ 243*b843c749SSergey Zigachev uint32_t CURSOR_DST_OFFSET; \ 244*b843c749SSergey Zigachev uint32_t HUBP_CLK_CNTL 245*b843c749SSergey Zigachev 246*b843c749SSergey Zigachev #define HUBP_SF(reg_name, field_name, post_fix)\ 247*b843c749SSergey Zigachev .field_name = reg_name ## __ ## field_name ## post_fix 248*b843c749SSergey Zigachev 249*b843c749SSergey Zigachev /* Mask/shift struct generation macro for all ASICs (including those with reduced functionality) */ 250*b843c749SSergey Zigachev #define HUBP_MASK_SH_LIST_DCN(mask_sh)\ 251*b843c749SSergey Zigachev HUBP_SF(HUBP0_DCHUBP_CNTL, HUBP_BLANK_EN, mask_sh),\ 252*b843c749SSergey Zigachev HUBP_SF(HUBP0_DCHUBP_CNTL, HUBP_TTU_DISABLE, mask_sh),\ 253*b843c749SSergey Zigachev HUBP_SF(HUBP0_DCHUBP_CNTL, HUBP_UNDERFLOW_STATUS, mask_sh),\ 254*b843c749SSergey Zigachev HUBP_SF(HUBP0_DCHUBP_CNTL, HUBP_NO_OUTSTANDING_REQ, mask_sh),\ 255*b843c749SSergey Zigachev HUBP_SF(HUBP0_DCHUBP_CNTL, HUBP_VTG_SEL, mask_sh),\ 256*b843c749SSergey Zigachev HUBP_SF(HUBP0_DCHUBP_CNTL, HUBP_DISABLE, mask_sh),\ 257*b843c749SSergey Zigachev HUBP_SF(HUBP0_DCSURF_ADDR_CONFIG, NUM_PIPES, mask_sh),\ 258*b843c749SSergey Zigachev HUBP_SF(HUBP0_DCSURF_ADDR_CONFIG, NUM_BANKS, mask_sh),\ 259*b843c749SSergey Zigachev HUBP_SF(HUBP0_DCSURF_ADDR_CONFIG, PIPE_INTERLEAVE, mask_sh),\ 260*b843c749SSergey Zigachev HUBP_SF(HUBP0_DCSURF_ADDR_CONFIG, NUM_SE, mask_sh),\ 261*b843c749SSergey Zigachev HUBP_SF(HUBP0_DCSURF_ADDR_CONFIG, NUM_RB_PER_SE, mask_sh),\ 262*b843c749SSergey Zigachev HUBP_SF(HUBP0_DCSURF_ADDR_CONFIG, MAX_COMPRESSED_FRAGS, mask_sh),\ 263*b843c749SSergey Zigachev HUBP_SF(HUBP0_DCSURF_TILING_CONFIG, SW_MODE, mask_sh),\ 264*b843c749SSergey Zigachev HUBP_SF(HUBP0_DCSURF_TILING_CONFIG, META_LINEAR, mask_sh),\ 265*b843c749SSergey Zigachev HUBP_SF(HUBP0_DCSURF_TILING_CONFIG, RB_ALIGNED, mask_sh),\ 266*b843c749SSergey Zigachev HUBP_SF(HUBP0_DCSURF_TILING_CONFIG, PIPE_ALIGNED, mask_sh),\ 267*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_DCSURF_SURFACE_PITCH, PITCH, mask_sh),\ 268*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_DCSURF_SURFACE_PITCH, META_PITCH, mask_sh),\ 269*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_DCSURF_SURFACE_PITCH_C, PITCH_C, mask_sh),\ 270*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_DCSURF_SURFACE_PITCH_C, META_PITCH_C, mask_sh),\ 271*b843c749SSergey Zigachev HUBP_SF(HUBP0_DCSURF_SURFACE_CONFIG, SURFACE_PIXEL_FORMAT, mask_sh),\ 272*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_DCSURF_FLIP_CONTROL, SURFACE_FLIP_TYPE, mask_sh),\ 273*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_DCSURF_FLIP_CONTROL, SURFACE_FLIP_PENDING, mask_sh),\ 274*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_DCSURF_FLIP_CONTROL, SURFACE_UPDATE_LOCK, mask_sh),\ 275*b843c749SSergey Zigachev HUBP_SF(HUBP0_DCSURF_PRI_VIEWPORT_DIMENSION, PRI_VIEWPORT_WIDTH, mask_sh),\ 276*b843c749SSergey Zigachev HUBP_SF(HUBP0_DCSURF_PRI_VIEWPORT_DIMENSION, PRI_VIEWPORT_HEIGHT, mask_sh),\ 277*b843c749SSergey Zigachev HUBP_SF(HUBP0_DCSURF_PRI_VIEWPORT_START, PRI_VIEWPORT_X_START, mask_sh),\ 278*b843c749SSergey Zigachev HUBP_SF(HUBP0_DCSURF_PRI_VIEWPORT_START, PRI_VIEWPORT_Y_START, mask_sh),\ 279*b843c749SSergey Zigachev HUBP_SF(HUBP0_DCSURF_SEC_VIEWPORT_DIMENSION, SEC_VIEWPORT_WIDTH, mask_sh),\ 280*b843c749SSergey Zigachev HUBP_SF(HUBP0_DCSURF_SEC_VIEWPORT_DIMENSION, SEC_VIEWPORT_HEIGHT, mask_sh),\ 281*b843c749SSergey Zigachev HUBP_SF(HUBP0_DCSURF_SEC_VIEWPORT_START, SEC_VIEWPORT_X_START, mask_sh),\ 282*b843c749SSergey Zigachev HUBP_SF(HUBP0_DCSURF_SEC_VIEWPORT_START, SEC_VIEWPORT_Y_START, mask_sh),\ 283*b843c749SSergey Zigachev HUBP_SF(HUBP0_DCSURF_PRI_VIEWPORT_DIMENSION_C, PRI_VIEWPORT_WIDTH_C, mask_sh),\ 284*b843c749SSergey Zigachev HUBP_SF(HUBP0_DCSURF_PRI_VIEWPORT_DIMENSION_C, PRI_VIEWPORT_HEIGHT_C, mask_sh),\ 285*b843c749SSergey Zigachev HUBP_SF(HUBP0_DCSURF_PRI_VIEWPORT_START_C, PRI_VIEWPORT_X_START_C, mask_sh),\ 286*b843c749SSergey Zigachev HUBP_SF(HUBP0_DCSURF_PRI_VIEWPORT_START_C, PRI_VIEWPORT_Y_START_C, mask_sh),\ 287*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_DCSURF_PRIMARY_SURFACE_ADDRESS_HIGH, PRIMARY_SURFACE_ADDRESS_HIGH, mask_sh),\ 288*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_DCSURF_PRIMARY_SURFACE_ADDRESS, PRIMARY_SURFACE_ADDRESS, mask_sh),\ 289*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_DCSURF_SECONDARY_SURFACE_ADDRESS_HIGH, SECONDARY_SURFACE_ADDRESS_HIGH, mask_sh),\ 290*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_DCSURF_SECONDARY_SURFACE_ADDRESS, SECONDARY_SURFACE_ADDRESS, mask_sh),\ 291*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_DCSURF_PRIMARY_META_SURFACE_ADDRESS_HIGH, PRIMARY_META_SURFACE_ADDRESS_HIGH, mask_sh),\ 292*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_DCSURF_PRIMARY_META_SURFACE_ADDRESS, PRIMARY_META_SURFACE_ADDRESS, mask_sh),\ 293*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_DCSURF_SECONDARY_META_SURFACE_ADDRESS_HIGH, SECONDARY_META_SURFACE_ADDRESS_HIGH, mask_sh),\ 294*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_DCSURF_SECONDARY_META_SURFACE_ADDRESS, SECONDARY_META_SURFACE_ADDRESS, mask_sh),\ 295*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_DCSURF_PRIMARY_SURFACE_ADDRESS_HIGH_C, PRIMARY_SURFACE_ADDRESS_HIGH_C, mask_sh),\ 296*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_DCSURF_PRIMARY_SURFACE_ADDRESS_C, PRIMARY_SURFACE_ADDRESS_C, mask_sh),\ 297*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_DCSURF_PRIMARY_META_SURFACE_ADDRESS_HIGH_C, PRIMARY_META_SURFACE_ADDRESS_HIGH_C, mask_sh),\ 298*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_DCSURF_PRIMARY_META_SURFACE_ADDRESS_C, PRIMARY_META_SURFACE_ADDRESS_C, mask_sh),\ 299*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_DCSURF_SURFACE_INUSE, SURFACE_INUSE_ADDRESS, mask_sh),\ 300*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_DCSURF_SURFACE_INUSE_HIGH, SURFACE_INUSE_ADDRESS_HIGH, mask_sh),\ 301*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_DCSURF_SURFACE_INUSE_C, SURFACE_INUSE_ADDRESS_C, mask_sh),\ 302*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_DCSURF_SURFACE_INUSE_HIGH_C, SURFACE_INUSE_ADDRESS_HIGH_C, mask_sh),\ 303*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_DCSURF_SURFACE_EARLIEST_INUSE, SURFACE_EARLIEST_INUSE_ADDRESS, mask_sh),\ 304*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_DCSURF_SURFACE_EARLIEST_INUSE_HIGH, SURFACE_EARLIEST_INUSE_ADDRESS_HIGH, mask_sh),\ 305*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_DCSURF_SURFACE_EARLIEST_INUSE_C, SURFACE_EARLIEST_INUSE_ADDRESS_C, mask_sh),\ 306*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_DCSURF_SURFACE_EARLIEST_INUSE_HIGH_C, SURFACE_EARLIEST_INUSE_ADDRESS_HIGH_C, mask_sh),\ 307*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_DCSURF_SURFACE_CONTROL, PRIMARY_SURFACE_TMZ, mask_sh),\ 308*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_DCSURF_SURFACE_CONTROL, PRIMARY_SURFACE_TMZ_C, mask_sh),\ 309*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_DCSURF_SURFACE_CONTROL, PRIMARY_META_SURFACE_TMZ, mask_sh),\ 310*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_DCSURF_SURFACE_CONTROL, PRIMARY_META_SURFACE_TMZ_C, mask_sh),\ 311*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_DCSURF_SURFACE_CONTROL, PRIMARY_SURFACE_DCC_EN, mask_sh),\ 312*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_DCSURF_SURFACE_CONTROL, PRIMARY_SURFACE_DCC_IND_64B_BLK, mask_sh),\ 313*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_DCSURF_SURFACE_CONTROL, SECONDARY_SURFACE_TMZ, mask_sh),\ 314*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_DCSURF_SURFACE_CONTROL, SECONDARY_SURFACE_TMZ_C, mask_sh),\ 315*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_DCSURF_SURFACE_CONTROL, SECONDARY_META_SURFACE_TMZ, mask_sh),\ 316*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_DCSURF_SURFACE_CONTROL, SECONDARY_META_SURFACE_TMZ_C, mask_sh),\ 317*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_DCSURF_SURFACE_CONTROL, SECONDARY_SURFACE_DCC_EN, mask_sh),\ 318*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_DCSURF_SURFACE_CONTROL, SECONDARY_SURFACE_DCC_IND_64B_BLK, mask_sh),\ 319*b843c749SSergey Zigachev HUBP_SF(HUBPRET0_HUBPRET_CONTROL, DET_BUF_PLANE1_BASE_ADDRESS, mask_sh),\ 320*b843c749SSergey Zigachev HUBP_SF(HUBPRET0_HUBPRET_CONTROL, CROSSBAR_SRC_CB_B, mask_sh),\ 321*b843c749SSergey Zigachev HUBP_SF(HUBPRET0_HUBPRET_CONTROL, CROSSBAR_SRC_CR_R, mask_sh),\ 322*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_DCN_EXPANSION_MODE, DRQ_EXPANSION_MODE, mask_sh),\ 323*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_DCN_EXPANSION_MODE, PRQ_EXPANSION_MODE, mask_sh),\ 324*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_DCN_EXPANSION_MODE, MRQ_EXPANSION_MODE, mask_sh),\ 325*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_DCN_EXPANSION_MODE, CRQ_EXPANSION_MODE, mask_sh),\ 326*b843c749SSergey Zigachev HUBP_SF(HUBP0_DCHUBP_REQ_SIZE_CONFIG, CHUNK_SIZE, mask_sh),\ 327*b843c749SSergey Zigachev HUBP_SF(HUBP0_DCHUBP_REQ_SIZE_CONFIG, MIN_CHUNK_SIZE, mask_sh),\ 328*b843c749SSergey Zigachev HUBP_SF(HUBP0_DCHUBP_REQ_SIZE_CONFIG, META_CHUNK_SIZE, mask_sh),\ 329*b843c749SSergey Zigachev HUBP_SF(HUBP0_DCHUBP_REQ_SIZE_CONFIG, MIN_META_CHUNK_SIZE, mask_sh),\ 330*b843c749SSergey Zigachev HUBP_SF(HUBP0_DCHUBP_REQ_SIZE_CONFIG, DPTE_GROUP_SIZE, mask_sh),\ 331*b843c749SSergey Zigachev HUBP_SF(HUBP0_DCHUBP_REQ_SIZE_CONFIG, MPTE_GROUP_SIZE, mask_sh),\ 332*b843c749SSergey Zigachev HUBP_SF(HUBP0_DCHUBP_REQ_SIZE_CONFIG, SWATH_HEIGHT, mask_sh),\ 333*b843c749SSergey Zigachev HUBP_SF(HUBP0_DCHUBP_REQ_SIZE_CONFIG, PTE_ROW_HEIGHT_LINEAR, mask_sh),\ 334*b843c749SSergey Zigachev HUBP_SF(HUBP0_DCHUBP_REQ_SIZE_CONFIG_C, CHUNK_SIZE_C, mask_sh),\ 335*b843c749SSergey Zigachev HUBP_SF(HUBP0_DCHUBP_REQ_SIZE_CONFIG_C, MIN_CHUNK_SIZE_C, mask_sh),\ 336*b843c749SSergey Zigachev HUBP_SF(HUBP0_DCHUBP_REQ_SIZE_CONFIG_C, META_CHUNK_SIZE_C, mask_sh),\ 337*b843c749SSergey Zigachev HUBP_SF(HUBP0_DCHUBP_REQ_SIZE_CONFIG_C, MIN_META_CHUNK_SIZE_C, mask_sh),\ 338*b843c749SSergey Zigachev HUBP_SF(HUBP0_DCHUBP_REQ_SIZE_CONFIG_C, DPTE_GROUP_SIZE_C, mask_sh),\ 339*b843c749SSergey Zigachev HUBP_SF(HUBP0_DCHUBP_REQ_SIZE_CONFIG_C, MPTE_GROUP_SIZE_C, mask_sh),\ 340*b843c749SSergey Zigachev HUBP_SF(HUBP0_DCHUBP_REQ_SIZE_CONFIG_C, SWATH_HEIGHT_C, mask_sh),\ 341*b843c749SSergey Zigachev HUBP_SF(HUBP0_DCHUBP_REQ_SIZE_CONFIG_C, PTE_ROW_HEIGHT_LINEAR_C, mask_sh),\ 342*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_BLANK_OFFSET_0, REFCYC_H_BLANK_END, mask_sh),\ 343*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_BLANK_OFFSET_0, DLG_V_BLANK_END, mask_sh),\ 344*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_BLANK_OFFSET_1, MIN_DST_Y_NEXT_START, mask_sh),\ 345*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_DST_DIMENSIONS, REFCYC_PER_HTOTAL, mask_sh),\ 346*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_DST_AFTER_SCALER, REFCYC_X_AFTER_SCALER, mask_sh),\ 347*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_DST_AFTER_SCALER, DST_Y_AFTER_SCALER, mask_sh),\ 348*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_VBLANK_PARAMETERS_0, DST_Y_PER_VM_VBLANK, mask_sh),\ 349*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_VBLANK_PARAMETERS_0, DST_Y_PER_ROW_VBLANK, mask_sh),\ 350*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_REF_FREQ_TO_PIX_FREQ, REF_FREQ_TO_PIX_FREQ, mask_sh),\ 351*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_VBLANK_PARAMETERS_1, REFCYC_PER_PTE_GROUP_VBLANK_L, mask_sh),\ 352*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_VBLANK_PARAMETERS_3, REFCYC_PER_META_CHUNK_VBLANK_L, mask_sh),\ 353*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_NOM_PARAMETERS_4, DST_Y_PER_META_ROW_NOM_L, mask_sh),\ 354*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_NOM_PARAMETERS_5, REFCYC_PER_META_CHUNK_NOM_L, mask_sh),\ 355*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_PER_LINE_DELIVERY_PRE, REFCYC_PER_LINE_DELIVERY_PRE_L, mask_sh),\ 356*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_PER_LINE_DELIVERY_PRE, REFCYC_PER_LINE_DELIVERY_PRE_C, mask_sh),\ 357*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_PER_LINE_DELIVERY, REFCYC_PER_LINE_DELIVERY_L, mask_sh),\ 358*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_PER_LINE_DELIVERY, REFCYC_PER_LINE_DELIVERY_C, mask_sh),\ 359*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_VBLANK_PARAMETERS_2, REFCYC_PER_PTE_GROUP_VBLANK_C, mask_sh),\ 360*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_VBLANK_PARAMETERS_4, REFCYC_PER_META_CHUNK_VBLANK_C, mask_sh),\ 361*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_NOM_PARAMETERS_6, DST_Y_PER_META_ROW_NOM_C, mask_sh),\ 362*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_NOM_PARAMETERS_7, REFCYC_PER_META_CHUNK_NOM_C, mask_sh),\ 363*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_DCN_TTU_QOS_WM, QoS_LEVEL_LOW_WM, mask_sh),\ 364*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_DCN_TTU_QOS_WM, QoS_LEVEL_HIGH_WM, mask_sh),\ 365*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_DCN_GLOBAL_TTU_CNTL, MIN_TTU_VBLANK, mask_sh),\ 366*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_DCN_GLOBAL_TTU_CNTL, QoS_LEVEL_FLIP, mask_sh),\ 367*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_DCN_SURF0_TTU_CNTL0, REFCYC_PER_REQ_DELIVERY, mask_sh),\ 368*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_DCN_SURF0_TTU_CNTL0, QoS_LEVEL_FIXED, mask_sh),\ 369*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_DCN_SURF0_TTU_CNTL0, QoS_RAMP_DISABLE, mask_sh),\ 370*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_DCN_SURF0_TTU_CNTL1, REFCYC_PER_REQ_DELIVERY_PRE, mask_sh),\ 371*b843c749SSergey Zigachev HUBP_SF(HUBP0_HUBP_CLK_CNTL, HUBP_CLOCK_ENABLE, mask_sh) 372*b843c749SSergey Zigachev 373*b843c749SSergey Zigachev /* Mask/shift struct generation macro for ASICs with VM */ 374*b843c749SSergey Zigachev #define HUBP_MASK_SH_LIST_DCN_VM(mask_sh)\ 375*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_NOM_PARAMETERS_0, DST_Y_PER_PTE_ROW_NOM_L, mask_sh),\ 376*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_NOM_PARAMETERS_1, REFCYC_PER_PTE_GROUP_NOM_L, mask_sh),\ 377*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_NOM_PARAMETERS_2, DST_Y_PER_PTE_ROW_NOM_C, mask_sh),\ 378*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_NOM_PARAMETERS_3, REFCYC_PER_PTE_GROUP_NOM_C, mask_sh),\ 379*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_DCN_VM_MX_L1_TLB_CNTL, ENABLE_L1_TLB, mask_sh),\ 380*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_DCN_VM_MX_L1_TLB_CNTL, SYSTEM_ACCESS_MODE, mask_sh),\ 381*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_DCN_CUR0_TTU_CNTL0, REFCYC_PER_REQ_DELIVERY, mask_sh),\ 382*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_DCN_CUR0_TTU_CNTL0, QoS_LEVEL_FIXED, mask_sh),\ 383*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_DCN_CUR0_TTU_CNTL0, QoS_RAMP_DISABLE, mask_sh),\ 384*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_DCN_CUR0_TTU_CNTL1, REFCYC_PER_REQ_DELIVERY_PRE, mask_sh) 385*b843c749SSergey Zigachev 386*b843c749SSergey Zigachev #define HUBP_MASK_SH_LIST_DCN10(mask_sh)\ 387*b843c749SSergey Zigachev HUBP_MASK_SH_LIST_DCN(mask_sh),\ 388*b843c749SSergey Zigachev HUBP_MASK_SH_LIST_DCN_VM(mask_sh),\ 389*b843c749SSergey Zigachev HUBP_SF(HUBP0_DCSURF_SURFACE_CONFIG, ROTATION_ANGLE, mask_sh),\ 390*b843c749SSergey Zigachev HUBP_SF(HUBP0_DCSURF_SURFACE_CONFIG, H_MIRROR_EN, mask_sh),\ 391*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_PREFETCH_SETTINS, DST_Y_PREFETCH, mask_sh),\ 392*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_PREFETCH_SETTINS, VRATIO_PREFETCH, mask_sh),\ 393*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_PREFETCH_SETTINS_C, VRATIO_PREFETCH_C, mask_sh),\ 394*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_DCN_VM_CONTEXT0_PAGE_TABLE_BASE_ADDR_MSB, VM_CONTEXT0_PAGE_TABLE_BASE_ADDR_MSB, mask_sh),\ 395*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_DCN_VM_CONTEXT0_PAGE_TABLE_BASE_ADDR_LSB, VM_CONTEXT0_PAGE_TABLE_BASE_ADDR_LSB, mask_sh),\ 396*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_DCN_VM_CONTEXT0_PAGE_TABLE_START_ADDR_MSB, VM_CONTEXT0_PAGE_TABLE_START_ADDR_MSB, mask_sh),\ 397*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_DCN_VM_CONTEXT0_PAGE_TABLE_START_ADDR_LSB, VM_CONTEXT0_PAGE_TABLE_START_ADDR_LSB, mask_sh),\ 398*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_DCN_VM_CONTEXT0_PAGE_TABLE_END_ADDR_MSB, VM_CONTEXT0_PAGE_TABLE_END_ADDR_MSB, mask_sh),\ 399*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_DCN_VM_CONTEXT0_PAGE_TABLE_END_ADDR_LSB, VM_CONTEXT0_PAGE_TABLE_END_ADDR_LSB, mask_sh),\ 400*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_DCN_VM_CONTEXT0_PROTECTION_FAULT_DEFAULT_ADDR_MSB, VM_CONTEXT0_PROTECTION_FAULT_DEFAULT_ADDR_MSB, mask_sh),\ 401*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_DCN_VM_CONTEXT0_PROTECTION_FAULT_DEFAULT_ADDR_MSB, VM_CONTEXT0_PROTECTION_FAULT_DEFAULT_SYSTEM, mask_sh),\ 402*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_DCN_VM_CONTEXT0_PROTECTION_FAULT_DEFAULT_ADDR_LSB, VM_CONTEXT0_PROTECTION_FAULT_DEFAULT_ADDR_LSB, mask_sh),\ 403*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_DCN_VM_SYSTEM_APERTURE_LOW_ADDR_MSB, MC_VM_SYSTEM_APERTURE_LOW_ADDR_MSB, mask_sh),\ 404*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_DCN_VM_SYSTEM_APERTURE_LOW_ADDR_LSB, MC_VM_SYSTEM_APERTURE_LOW_ADDR_LSB, mask_sh),\ 405*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_DCN_VM_SYSTEM_APERTURE_HIGH_ADDR_MSB, MC_VM_SYSTEM_APERTURE_HIGH_ADDR_MSB, mask_sh),\ 406*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_DCN_VM_SYSTEM_APERTURE_HIGH_ADDR_LSB, MC_VM_SYSTEM_APERTURE_HIGH_ADDR_LSB, mask_sh),\ 407*b843c749SSergey Zigachev HUBP_SF(DCHUBBUB_SDPIF_FB_BASE, SDPIF_FB_BASE, mask_sh),\ 408*b843c749SSergey Zigachev HUBP_SF(DCHUBBUB_SDPIF_FB_OFFSET, SDPIF_FB_OFFSET, mask_sh),\ 409*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_DCN_VM_SYSTEM_APERTURE_DEFAULT_ADDR_MSB, MC_VM_SYSTEM_APERTURE_DEFAULT_SYSTEM, mask_sh),\ 410*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_DCN_VM_SYSTEM_APERTURE_DEFAULT_ADDR_MSB, MC_VM_SYSTEM_APERTURE_DEFAULT_ADDR_MSB, mask_sh),\ 411*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_DCN_VM_SYSTEM_APERTURE_DEFAULT_ADDR_LSB, MC_VM_SYSTEM_APERTURE_DEFAULT_ADDR_LSB, mask_sh),\ 412*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_CURSOR_SETTINS, CURSOR0_DST_Y_OFFSET, mask_sh), \ 413*b843c749SSergey Zigachev HUBP_SF(HUBPREQ0_CURSOR_SETTINS, CURSOR0_CHUNK_HDL_ADJUST, mask_sh), \ 414*b843c749SSergey Zigachev HUBP_SF(CURSOR0_CURSOR_SURFACE_ADDRESS_HIGH, CURSOR_SURFACE_ADDRESS_HIGH, mask_sh), \ 415*b843c749SSergey Zigachev HUBP_SF(CURSOR0_CURSOR_SURFACE_ADDRESS, CURSOR_SURFACE_ADDRESS, mask_sh), \ 416*b843c749SSergey Zigachev HUBP_SF(CURSOR0_CURSOR_SIZE, CURSOR_WIDTH, mask_sh), \ 417*b843c749SSergey Zigachev HUBP_SF(CURSOR0_CURSOR_SIZE, CURSOR_HEIGHT, mask_sh), \ 418*b843c749SSergey Zigachev HUBP_SF(CURSOR0_CURSOR_CONTROL, CURSOR_MODE, mask_sh), \ 419*b843c749SSergey Zigachev HUBP_SF(CURSOR0_CURSOR_CONTROL, CURSOR_2X_MAGNIFY, mask_sh), \ 420*b843c749SSergey Zigachev HUBP_SF(CURSOR0_CURSOR_CONTROL, CURSOR_PITCH, mask_sh), \ 421*b843c749SSergey Zigachev HUBP_SF(CURSOR0_CURSOR_CONTROL, CURSOR_LINES_PER_CHUNK, mask_sh), \ 422*b843c749SSergey Zigachev HUBP_SF(CURSOR0_CURSOR_CONTROL, CURSOR_ENABLE, mask_sh), \ 423*b843c749SSergey Zigachev HUBP_SF(CURSOR0_CURSOR_POSITION, CURSOR_X_POSITION, mask_sh), \ 424*b843c749SSergey Zigachev HUBP_SF(CURSOR0_CURSOR_POSITION, CURSOR_Y_POSITION, mask_sh), \ 425*b843c749SSergey Zigachev HUBP_SF(CURSOR0_CURSOR_HOT_SPOT, CURSOR_HOT_SPOT_X, mask_sh), \ 426*b843c749SSergey Zigachev HUBP_SF(CURSOR0_CURSOR_HOT_SPOT, CURSOR_HOT_SPOT_Y, mask_sh), \ 427*b843c749SSergey Zigachev HUBP_SF(CURSOR0_CURSOR_DST_OFFSET, CURSOR_DST_X_OFFSET, mask_sh) 428*b843c749SSergey Zigachev 429*b843c749SSergey Zigachev #define DCN_HUBP_REG_FIELD_LIST(type) \ 430*b843c749SSergey Zigachev type HUBP_BLANK_EN;\ 431*b843c749SSergey Zigachev type HUBP_DISABLE;\ 432*b843c749SSergey Zigachev type HUBP_TTU_DISABLE;\ 433*b843c749SSergey Zigachev type HUBP_NO_OUTSTANDING_REQ;\ 434*b843c749SSergey Zigachev type HUBP_VTG_SEL;\ 435*b843c749SSergey Zigachev type HUBP_UNDERFLOW_STATUS;\ 436*b843c749SSergey Zigachev type NUM_PIPES;\ 437*b843c749SSergey Zigachev type NUM_BANKS;\ 438*b843c749SSergey Zigachev type PIPE_INTERLEAVE;\ 439*b843c749SSergey Zigachev type NUM_SE;\ 440*b843c749SSergey Zigachev type NUM_RB_PER_SE;\ 441*b843c749SSergey Zigachev type MAX_COMPRESSED_FRAGS;\ 442*b843c749SSergey Zigachev type SW_MODE;\ 443*b843c749SSergey Zigachev type META_LINEAR;\ 444*b843c749SSergey Zigachev type RB_ALIGNED;\ 445*b843c749SSergey Zigachev type PIPE_ALIGNED;\ 446*b843c749SSergey Zigachev type PITCH;\ 447*b843c749SSergey Zigachev type META_PITCH;\ 448*b843c749SSergey Zigachev type PITCH_C;\ 449*b843c749SSergey Zigachev type META_PITCH_C;\ 450*b843c749SSergey Zigachev type ROTATION_ANGLE;\ 451*b843c749SSergey Zigachev type H_MIRROR_EN;\ 452*b843c749SSergey Zigachev type SURFACE_PIXEL_FORMAT;\ 453*b843c749SSergey Zigachev type SURFACE_FLIP_TYPE;\ 454*b843c749SSergey Zigachev type SURFACE_UPDATE_LOCK;\ 455*b843c749SSergey Zigachev type SURFACE_FLIP_PENDING;\ 456*b843c749SSergey Zigachev type PRI_VIEWPORT_WIDTH; \ 457*b843c749SSergey Zigachev type PRI_VIEWPORT_HEIGHT; \ 458*b843c749SSergey Zigachev type PRI_VIEWPORT_X_START; \ 459*b843c749SSergey Zigachev type PRI_VIEWPORT_Y_START; \ 460*b843c749SSergey Zigachev type SEC_VIEWPORT_WIDTH; \ 461*b843c749SSergey Zigachev type SEC_VIEWPORT_HEIGHT; \ 462*b843c749SSergey Zigachev type SEC_VIEWPORT_X_START; \ 463*b843c749SSergey Zigachev type SEC_VIEWPORT_Y_START; \ 464*b843c749SSergey Zigachev type PRI_VIEWPORT_WIDTH_C; \ 465*b843c749SSergey Zigachev type PRI_VIEWPORT_HEIGHT_C; \ 466*b843c749SSergey Zigachev type PRI_VIEWPORT_X_START_C; \ 467*b843c749SSergey Zigachev type PRI_VIEWPORT_Y_START_C; \ 468*b843c749SSergey Zigachev type PRIMARY_SURFACE_ADDRESS_HIGH;\ 469*b843c749SSergey Zigachev type PRIMARY_SURFACE_ADDRESS;\ 470*b843c749SSergey Zigachev type SECONDARY_SURFACE_ADDRESS_HIGH;\ 471*b843c749SSergey Zigachev type SECONDARY_SURFACE_ADDRESS;\ 472*b843c749SSergey Zigachev type PRIMARY_META_SURFACE_ADDRESS_HIGH;\ 473*b843c749SSergey Zigachev type PRIMARY_META_SURFACE_ADDRESS;\ 474*b843c749SSergey Zigachev type SECONDARY_META_SURFACE_ADDRESS_HIGH;\ 475*b843c749SSergey Zigachev type SECONDARY_META_SURFACE_ADDRESS;\ 476*b843c749SSergey Zigachev type PRIMARY_SURFACE_ADDRESS_HIGH_C;\ 477*b843c749SSergey Zigachev type PRIMARY_SURFACE_ADDRESS_C;\ 478*b843c749SSergey Zigachev type PRIMARY_META_SURFACE_ADDRESS_HIGH_C;\ 479*b843c749SSergey Zigachev type PRIMARY_META_SURFACE_ADDRESS_C;\ 480*b843c749SSergey Zigachev type SURFACE_INUSE_ADDRESS;\ 481*b843c749SSergey Zigachev type SURFACE_INUSE_ADDRESS_HIGH;\ 482*b843c749SSergey Zigachev type SURFACE_INUSE_ADDRESS_C;\ 483*b843c749SSergey Zigachev type SURFACE_INUSE_ADDRESS_HIGH_C;\ 484*b843c749SSergey Zigachev type SURFACE_EARLIEST_INUSE_ADDRESS;\ 485*b843c749SSergey Zigachev type SURFACE_EARLIEST_INUSE_ADDRESS_HIGH;\ 486*b843c749SSergey Zigachev type SURFACE_EARLIEST_INUSE_ADDRESS_C;\ 487*b843c749SSergey Zigachev type SURFACE_EARLIEST_INUSE_ADDRESS_HIGH_C;\ 488*b843c749SSergey Zigachev type PRIMARY_SURFACE_TMZ;\ 489*b843c749SSergey Zigachev type PRIMARY_SURFACE_TMZ_C;\ 490*b843c749SSergey Zigachev type SECONDARY_SURFACE_TMZ;\ 491*b843c749SSergey Zigachev type SECONDARY_SURFACE_TMZ_C;\ 492*b843c749SSergey Zigachev type PRIMARY_META_SURFACE_TMZ;\ 493*b843c749SSergey Zigachev type PRIMARY_META_SURFACE_TMZ_C;\ 494*b843c749SSergey Zigachev type SECONDARY_META_SURFACE_TMZ;\ 495*b843c749SSergey Zigachev type SECONDARY_META_SURFACE_TMZ_C;\ 496*b843c749SSergey Zigachev type PRIMARY_SURFACE_DCC_EN;\ 497*b843c749SSergey Zigachev type PRIMARY_SURFACE_DCC_IND_64B_BLK;\ 498*b843c749SSergey Zigachev type SECONDARY_SURFACE_DCC_EN;\ 499*b843c749SSergey Zigachev type SECONDARY_SURFACE_DCC_IND_64B_BLK;\ 500*b843c749SSergey Zigachev type DET_BUF_PLANE1_BASE_ADDRESS;\ 501*b843c749SSergey Zigachev type CROSSBAR_SRC_CB_B;\ 502*b843c749SSergey Zigachev type CROSSBAR_SRC_CR_R;\ 503*b843c749SSergey Zigachev type DRQ_EXPANSION_MODE;\ 504*b843c749SSergey Zigachev type PRQ_EXPANSION_MODE;\ 505*b843c749SSergey Zigachev type MRQ_EXPANSION_MODE;\ 506*b843c749SSergey Zigachev type CRQ_EXPANSION_MODE;\ 507*b843c749SSergey Zigachev type CHUNK_SIZE;\ 508*b843c749SSergey Zigachev type MIN_CHUNK_SIZE;\ 509*b843c749SSergey Zigachev type META_CHUNK_SIZE;\ 510*b843c749SSergey Zigachev type MIN_META_CHUNK_SIZE;\ 511*b843c749SSergey Zigachev type DPTE_GROUP_SIZE;\ 512*b843c749SSergey Zigachev type MPTE_GROUP_SIZE;\ 513*b843c749SSergey Zigachev type SWATH_HEIGHT;\ 514*b843c749SSergey Zigachev type PTE_ROW_HEIGHT_LINEAR;\ 515*b843c749SSergey Zigachev type CHUNK_SIZE_C;\ 516*b843c749SSergey Zigachev type MIN_CHUNK_SIZE_C;\ 517*b843c749SSergey Zigachev type META_CHUNK_SIZE_C;\ 518*b843c749SSergey Zigachev type MIN_META_CHUNK_SIZE_C;\ 519*b843c749SSergey Zigachev type DPTE_GROUP_SIZE_C;\ 520*b843c749SSergey Zigachev type MPTE_GROUP_SIZE_C;\ 521*b843c749SSergey Zigachev type SWATH_HEIGHT_C;\ 522*b843c749SSergey Zigachev type PTE_ROW_HEIGHT_LINEAR_C;\ 523*b843c749SSergey Zigachev type REFCYC_H_BLANK_END;\ 524*b843c749SSergey Zigachev type DLG_V_BLANK_END;\ 525*b843c749SSergey Zigachev type MIN_DST_Y_NEXT_START;\ 526*b843c749SSergey Zigachev type REFCYC_PER_HTOTAL;\ 527*b843c749SSergey Zigachev type REFCYC_X_AFTER_SCALER;\ 528*b843c749SSergey Zigachev type DST_Y_AFTER_SCALER;\ 529*b843c749SSergey Zigachev type DST_Y_PREFETCH;\ 530*b843c749SSergey Zigachev type VRATIO_PREFETCH;\ 531*b843c749SSergey Zigachev type DST_Y_PER_VM_VBLANK;\ 532*b843c749SSergey Zigachev type DST_Y_PER_ROW_VBLANK;\ 533*b843c749SSergey Zigachev type REF_FREQ_TO_PIX_FREQ;\ 534*b843c749SSergey Zigachev type REFCYC_PER_PTE_GROUP_VBLANK_L;\ 535*b843c749SSergey Zigachev type REFCYC_PER_META_CHUNK_VBLANK_L;\ 536*b843c749SSergey Zigachev type DST_Y_PER_PTE_ROW_NOM_L;\ 537*b843c749SSergey Zigachev type REFCYC_PER_PTE_GROUP_NOM_L;\ 538*b843c749SSergey Zigachev type DST_Y_PER_META_ROW_NOM_L;\ 539*b843c749SSergey Zigachev type REFCYC_PER_META_CHUNK_NOM_L;\ 540*b843c749SSergey Zigachev type REFCYC_PER_LINE_DELIVERY_PRE_L;\ 541*b843c749SSergey Zigachev type REFCYC_PER_LINE_DELIVERY_PRE_C;\ 542*b843c749SSergey Zigachev type REFCYC_PER_LINE_DELIVERY_L;\ 543*b843c749SSergey Zigachev type REFCYC_PER_LINE_DELIVERY_C;\ 544*b843c749SSergey Zigachev type VRATIO_PREFETCH_C;\ 545*b843c749SSergey Zigachev type REFCYC_PER_PTE_GROUP_VBLANK_C;\ 546*b843c749SSergey Zigachev type REFCYC_PER_META_CHUNK_VBLANK_C;\ 547*b843c749SSergey Zigachev type DST_Y_PER_PTE_ROW_NOM_C;\ 548*b843c749SSergey Zigachev type REFCYC_PER_PTE_GROUP_NOM_C;\ 549*b843c749SSergey Zigachev type DST_Y_PER_META_ROW_NOM_C;\ 550*b843c749SSergey Zigachev type REFCYC_PER_META_CHUNK_NOM_C;\ 551*b843c749SSergey Zigachev type QoS_LEVEL_LOW_WM;\ 552*b843c749SSergey Zigachev type QoS_LEVEL_HIGH_WM;\ 553*b843c749SSergey Zigachev type MIN_TTU_VBLANK;\ 554*b843c749SSergey Zigachev type QoS_LEVEL_FLIP;\ 555*b843c749SSergey Zigachev type REFCYC_PER_REQ_DELIVERY;\ 556*b843c749SSergey Zigachev type QoS_LEVEL_FIXED;\ 557*b843c749SSergey Zigachev type QoS_RAMP_DISABLE;\ 558*b843c749SSergey Zigachev type REFCYC_PER_REQ_DELIVERY_PRE;\ 559*b843c749SSergey Zigachev type VM_CONTEXT0_PAGE_TABLE_BASE_ADDR_MSB;\ 560*b843c749SSergey Zigachev type VM_CONTEXT0_PAGE_TABLE_BASE_ADDR_LSB;\ 561*b843c749SSergey Zigachev type VM_CONTEXT0_PAGE_TABLE_START_ADDR_MSB;\ 562*b843c749SSergey Zigachev type VM_CONTEXT0_PAGE_TABLE_START_ADDR_LSB;\ 563*b843c749SSergey Zigachev type VM_CONTEXT0_PAGE_TABLE_END_ADDR_MSB;\ 564*b843c749SSergey Zigachev type VM_CONTEXT0_PAGE_TABLE_END_ADDR_LSB;\ 565*b843c749SSergey Zigachev type VM_CONTEXT0_PROTECTION_FAULT_DEFAULT_ADDR_MSB;\ 566*b843c749SSergey Zigachev type VM_CONTEXT0_PROTECTION_FAULT_DEFAULT_SYSTEM;\ 567*b843c749SSergey Zigachev type VM_CONTEXT0_PROTECTION_FAULT_DEFAULT_ADDR_LSB;\ 568*b843c749SSergey Zigachev type ENABLE_L1_TLB;\ 569*b843c749SSergey Zigachev type SYSTEM_ACCESS_MODE;\ 570*b843c749SSergey Zigachev type HUBP_CLOCK_ENABLE;\ 571*b843c749SSergey Zigachev type MC_VM_SYSTEM_APERTURE_DEFAULT_SYSTEM;\ 572*b843c749SSergey Zigachev type MC_VM_SYSTEM_APERTURE_DEFAULT_ADDR_MSB;\ 573*b843c749SSergey Zigachev type MC_VM_SYSTEM_APERTURE_DEFAULT_ADDR_LSB;\ 574*b843c749SSergey Zigachev type MC_VM_SYSTEM_APERTURE_LOW_ADDR_MSB;\ 575*b843c749SSergey Zigachev type MC_VM_SYSTEM_APERTURE_LOW_ADDR_LSB;\ 576*b843c749SSergey Zigachev type MC_VM_SYSTEM_APERTURE_HIGH_ADDR_MSB;\ 577*b843c749SSergey Zigachev type MC_VM_SYSTEM_APERTURE_HIGH_ADDR_LSB;\ 578*b843c749SSergey Zigachev type MC_VM_SYSTEM_APERTURE_LOW_ADDR;\ 579*b843c749SSergey Zigachev type MC_VM_SYSTEM_APERTURE_HIGH_ADDR;\ 580*b843c749SSergey Zigachev type SDPIF_FB_TOP;\ 581*b843c749SSergey Zigachev type SDPIF_FB_BASE;\ 582*b843c749SSergey Zigachev type SDPIF_FB_OFFSET;\ 583*b843c749SSergey Zigachev type SDPIF_AGP_BASE;\ 584*b843c749SSergey Zigachev type SDPIF_AGP_BOT;\ 585*b843c749SSergey Zigachev type SDPIF_AGP_TOP;\ 586*b843c749SSergey Zigachev type FB_TOP;\ 587*b843c749SSergey Zigachev type FB_BASE;\ 588*b843c749SSergey Zigachev type FB_OFFSET;\ 589*b843c749SSergey Zigachev type AGP_BASE;\ 590*b843c749SSergey Zigachev type AGP_BOT;\ 591*b843c749SSergey Zigachev type AGP_TOP;\ 592*b843c749SSergey Zigachev /* todo: get these from GVM instead of reading registers ourselves */\ 593*b843c749SSergey Zigachev type PAGE_DIRECTORY_ENTRY_HI32;\ 594*b843c749SSergey Zigachev type PAGE_DIRECTORY_ENTRY_LO32;\ 595*b843c749SSergey Zigachev type LOGICAL_PAGE_NUMBER_HI4;\ 596*b843c749SSergey Zigachev type LOGICAL_PAGE_NUMBER_LO32;\ 597*b843c749SSergey Zigachev type PHYSICAL_PAGE_ADDR_HI4;\ 598*b843c749SSergey Zigachev type PHYSICAL_PAGE_ADDR_LO32;\ 599*b843c749SSergey Zigachev type PHYSICAL_PAGE_NUMBER_MSB;\ 600*b843c749SSergey Zigachev type PHYSICAL_PAGE_NUMBER_LSB;\ 601*b843c749SSergey Zigachev type LOGICAL_ADDR;\ 602*b843c749SSergey Zigachev type CURSOR0_DST_Y_OFFSET; \ 603*b843c749SSergey Zigachev type CURSOR0_CHUNK_HDL_ADJUST; \ 604*b843c749SSergey Zigachev type CURSOR_SURFACE_ADDRESS_HIGH; \ 605*b843c749SSergey Zigachev type CURSOR_SURFACE_ADDRESS; \ 606*b843c749SSergey Zigachev type CURSOR_WIDTH; \ 607*b843c749SSergey Zigachev type CURSOR_HEIGHT; \ 608*b843c749SSergey Zigachev type CURSOR_MODE; \ 609*b843c749SSergey Zigachev type CURSOR_2X_MAGNIFY; \ 610*b843c749SSergey Zigachev type CURSOR_PITCH; \ 611*b843c749SSergey Zigachev type CURSOR_LINES_PER_CHUNK; \ 612*b843c749SSergey Zigachev type CURSOR_ENABLE; \ 613*b843c749SSergey Zigachev type CURSOR_X_POSITION; \ 614*b843c749SSergey Zigachev type CURSOR_Y_POSITION; \ 615*b843c749SSergey Zigachev type CURSOR_HOT_SPOT_X; \ 616*b843c749SSergey Zigachev type CURSOR_HOT_SPOT_Y; \ 617*b843c749SSergey Zigachev type CURSOR_DST_X_OFFSET; \ 618*b843c749SSergey Zigachev type OUTPUT_FP 619*b843c749SSergey Zigachev 620*b843c749SSergey Zigachev struct dcn_mi_registers { 621*b843c749SSergey Zigachev HUBP_COMMON_REG_VARIABLE_LIST; 622*b843c749SSergey Zigachev }; 623*b843c749SSergey Zigachev 624*b843c749SSergey Zigachev struct dcn_mi_shift { 625*b843c749SSergey Zigachev DCN_HUBP_REG_FIELD_LIST(uint8_t); 626*b843c749SSergey Zigachev }; 627*b843c749SSergey Zigachev 628*b843c749SSergey Zigachev struct dcn_mi_mask { 629*b843c749SSergey Zigachev DCN_HUBP_REG_FIELD_LIST(uint32_t); 630*b843c749SSergey Zigachev }; 631*b843c749SSergey Zigachev 632*b843c749SSergey Zigachev struct dcn_hubp_state { 633*b843c749SSergey Zigachev struct _vcs_dpi_display_dlg_regs_st dlg_attr; 634*b843c749SSergey Zigachev struct _vcs_dpi_display_ttu_regs_st ttu_attr; 635*b843c749SSergey Zigachev struct _vcs_dpi_display_rq_regs_st rq_regs; 636*b843c749SSergey Zigachev uint32_t pixel_format; 637*b843c749SSergey Zigachev uint32_t inuse_addr_hi; 638*b843c749SSergey Zigachev uint32_t viewport_width; 639*b843c749SSergey Zigachev uint32_t viewport_height; 640*b843c749SSergey Zigachev uint32_t rotation_angle; 641*b843c749SSergey Zigachev uint32_t h_mirror_en; 642*b843c749SSergey Zigachev uint32_t sw_mode; 643*b843c749SSergey Zigachev uint32_t dcc_en; 644*b843c749SSergey Zigachev uint32_t blank_en; 645*b843c749SSergey Zigachev uint32_t underflow_status; 646*b843c749SSergey Zigachev uint32_t ttu_disable; 647*b843c749SSergey Zigachev uint32_t min_ttu_vblank; 648*b843c749SSergey Zigachev uint32_t qos_level_low_wm; 649*b843c749SSergey Zigachev uint32_t qos_level_high_wm; 650*b843c749SSergey Zigachev }; 651*b843c749SSergey Zigachev 652*b843c749SSergey Zigachev struct dcn10_hubp { 653*b843c749SSergey Zigachev struct hubp base; 654*b843c749SSergey Zigachev struct dcn_hubp_state state; 655*b843c749SSergey Zigachev const struct dcn_mi_registers *hubp_regs; 656*b843c749SSergey Zigachev const struct dcn_mi_shift *hubp_shift; 657*b843c749SSergey Zigachev const struct dcn_mi_mask *hubp_mask; 658*b843c749SSergey Zigachev }; 659*b843c749SSergey Zigachev 660*b843c749SSergey Zigachev void hubp1_program_surface_config( 661*b843c749SSergey Zigachev struct hubp *hubp, 662*b843c749SSergey Zigachev enum surface_pixel_format format, 663*b843c749SSergey Zigachev union dc_tiling_info *tiling_info, 664*b843c749SSergey Zigachev union plane_size *plane_size, 665*b843c749SSergey Zigachev enum dc_rotation_angle rotation, 666*b843c749SSergey Zigachev struct dc_plane_dcc_param *dcc, 667*b843c749SSergey Zigachev bool horizontal_mirror); 668*b843c749SSergey Zigachev 669*b843c749SSergey Zigachev void hubp1_program_deadline( 670*b843c749SSergey Zigachev struct hubp *hubp, 671*b843c749SSergey Zigachev struct _vcs_dpi_display_dlg_regs_st *dlg_attr, 672*b843c749SSergey Zigachev struct _vcs_dpi_display_ttu_regs_st *ttu_attr); 673*b843c749SSergey Zigachev 674*b843c749SSergey Zigachev void hubp1_program_requestor( 675*b843c749SSergey Zigachev struct hubp *hubp, 676*b843c749SSergey Zigachev struct _vcs_dpi_display_rq_regs_st *rq_regs); 677*b843c749SSergey Zigachev 678*b843c749SSergey Zigachev void hubp1_program_pixel_format( 679*b843c749SSergey Zigachev struct hubp *hubp, 680*b843c749SSergey Zigachev enum surface_pixel_format format); 681*b843c749SSergey Zigachev 682*b843c749SSergey Zigachev void hubp1_program_size( 683*b843c749SSergey Zigachev struct hubp *hubp, 684*b843c749SSergey Zigachev enum surface_pixel_format format, 685*b843c749SSergey Zigachev const union plane_size *plane_size, 686*b843c749SSergey Zigachev struct dc_plane_dcc_param *dcc); 687*b843c749SSergey Zigachev 688*b843c749SSergey Zigachev void hubp1_program_rotation( 689*b843c749SSergey Zigachev struct hubp *hubp, 690*b843c749SSergey Zigachev enum dc_rotation_angle rotation, 691*b843c749SSergey Zigachev bool horizontal_mirror); 692*b843c749SSergey Zigachev 693*b843c749SSergey Zigachev void hubp1_program_tiling( 694*b843c749SSergey Zigachev struct hubp *hubp, 695*b843c749SSergey Zigachev const union dc_tiling_info *info, 696*b843c749SSergey Zigachev const enum surface_pixel_format pixel_format); 697*b843c749SSergey Zigachev 698*b843c749SSergey Zigachev void hubp1_dcc_control(struct hubp *hubp, 699*b843c749SSergey Zigachev bool enable, 700*b843c749SSergey Zigachev bool independent_64b_blks); 701*b843c749SSergey Zigachev 702*b843c749SSergey Zigachev bool hubp1_program_surface_flip_and_addr( 703*b843c749SSergey Zigachev struct hubp *hubp, 704*b843c749SSergey Zigachev const struct dc_plane_address *address, 705*b843c749SSergey Zigachev bool flip_immediate); 706*b843c749SSergey Zigachev 707*b843c749SSergey Zigachev bool hubp1_is_flip_pending(struct hubp *hubp); 708*b843c749SSergey Zigachev 709*b843c749SSergey Zigachev void hubp1_cursor_set_attributes( 710*b843c749SSergey Zigachev struct hubp *hubp, 711*b843c749SSergey Zigachev const struct dc_cursor_attributes *attr); 712*b843c749SSergey Zigachev 713*b843c749SSergey Zigachev void hubp1_cursor_set_position( 714*b843c749SSergey Zigachev struct hubp *hubp, 715*b843c749SSergey Zigachev const struct dc_cursor_position *pos, 716*b843c749SSergey Zigachev const struct dc_cursor_mi_param *param); 717*b843c749SSergey Zigachev 718*b843c749SSergey Zigachev void hubp1_set_blank(struct hubp *hubp, bool blank); 719*b843c749SSergey Zigachev 720*b843c749SSergey Zigachev void min_set_viewport(struct hubp *hubp, 721*b843c749SSergey Zigachev const struct rect *viewport, 722*b843c749SSergey Zigachev const struct rect *viewport_c); 723*b843c749SSergey Zigachev 724*b843c749SSergey Zigachev void hubp1_clk_cntl(struct hubp *hubp, bool enable); 725*b843c749SSergey Zigachev void hubp1_vtg_sel(struct hubp *hubp, uint32_t otg_inst); 726*b843c749SSergey Zigachev 727*b843c749SSergey Zigachev void dcn10_hubp_construct( 728*b843c749SSergey Zigachev struct dcn10_hubp *hubp1, 729*b843c749SSergey Zigachev struct dc_context *ctx, 730*b843c749SSergey Zigachev uint32_t inst, 731*b843c749SSergey Zigachev const struct dcn_mi_registers *hubp_regs, 732*b843c749SSergey Zigachev const struct dcn_mi_shift *hubp_shift, 733*b843c749SSergey Zigachev const struct dcn_mi_mask *hubp_mask); 734*b843c749SSergey Zigachev 735*b843c749SSergey Zigachev void hubp1_read_state(struct hubp *hubp); 736*b843c749SSergey Zigachev 737*b843c749SSergey Zigachev enum cursor_pitch hubp1_get_cursor_pitch(unsigned int pitch); 738*b843c749SSergey Zigachev 739*b843c749SSergey Zigachev 740*b843c749SSergey Zigachev #endif 741