170839da6SAurabindo Pillai // SPDX-License-Identifier: MIT 270839da6SAurabindo Pillai // 370839da6SAurabindo Pillai // Copyright 2024 Advanced Micro Devices, Inc. 470839da6SAurabindo Pillai 570839da6SAurabindo Pillai #ifndef __DCN401_DSC_H__ 670839da6SAurabindo Pillai #define __DCN401_DSC_H__ 770839da6SAurabindo Pillai 870839da6SAurabindo Pillai #include "dsc.h" 970839da6SAurabindo Pillai #include "dsc/dscc_types.h" 1070839da6SAurabindo Pillai #include "dcn20/dcn20_dsc.h" 1170839da6SAurabindo Pillai #include <drm/display/drm_dsc.h> 1270839da6SAurabindo Pillai 1370839da6SAurabindo Pillai #define TO_DCN401_DSC(dsc)\ 1470839da6SAurabindo Pillai container_of(dsc, struct dcn401_dsc, base) 1570839da6SAurabindo Pillai 1670839da6SAurabindo Pillai #define DSC_REG_LIST_SH_MASK_DCN401(mask_sh)\ 1770839da6SAurabindo Pillai DSC_SF(DSC_TOP0_DSC_TOP_CONTROL, DSC_CLOCK_EN, mask_sh), \ 1870839da6SAurabindo Pillai DSC_SF(DSC_TOP0_DSC_TOP_CONTROL, DSC_DISPCLK_R_GATE_DIS, mask_sh), \ 1970839da6SAurabindo Pillai DSC_SF(DSC_TOP0_DSC_TOP_CONTROL, DSC_DSCCLK_R_GATE_DIS, mask_sh), \ 2070839da6SAurabindo Pillai DSC_SF(DSC_TOP0_DSC_TOP_CONTROL, DSC_FGCG_REP_DIS, mask_sh), \ 2170839da6SAurabindo Pillai DSC_SF(DSC_TOP0_DSC_DEBUG_CONTROL, DSC_DBG_EN, mask_sh), \ 2270839da6SAurabindo Pillai DSC_SF(DSC_TOP0_DSC_DEBUG_CONTROL, DSC_TEST_CLOCK_MUX_SEL, mask_sh), \ 2370839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_CONFIG0, ICH_RESET_AT_END_OF_LINE, mask_sh), \ 2470839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_CONFIG0, NUMBER_OF_SLICES_PER_LINE, mask_sh), \ 2570839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_CONFIG0, ALTERNATE_ICH_ENCODING_EN, mask_sh), \ 2670839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_CONFIG0, NUMBER_OF_SLICES_IN_VERTICAL_DIRECTION, mask_sh), \ 2770839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_CONFIG1, DSCC_RATE_CONTROL_BUFFER_MODEL_SIZE, mask_sh), \ 2870839da6SAurabindo Pillai /*DSC_SF(DSCC0_DSCC_CONFIG1, DSCC_DISABLE_ICH, mask_sh),*/ \ 2970839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_STATUS, DSCC_DOUBLE_BUFFER_REG_UPDATE_PENDING, mask_sh), \ 3070839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_INTERRUPT_STATUS0, DSCC_RATE_CONTROL_BUFFER_MODEL_OVERFLOW_OCCURRED0, mask_sh), \ 3170839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_INTERRUPT_STATUS0, DSCC_RATE_CONTROL_BUFFER_MODEL_OVERFLOW_OCCURRED1, mask_sh), \ 3270839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_INTERRUPT_STATUS0, DSCC_RATE_CONTROL_BUFFER_MODEL_OVERFLOW_OCCURRED2, mask_sh), \ 3370839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_INTERRUPT_STATUS0, DSCC_RATE_CONTROL_BUFFER_MODEL_OVERFLOW_OCCURRED3, mask_sh), \ 3470839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_INTERRUPT_STATUS0, DSCC_RATE_CONTROL_BUFFER_MODEL_OVERFLOW_CLEAR0, mask_sh), \ 3570839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_INTERRUPT_STATUS0, DSCC_RATE_CONTROL_BUFFER_MODEL_OVERFLOW_CLEAR1, mask_sh), \ 3670839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_INTERRUPT_STATUS0, DSCC_RATE_CONTROL_BUFFER_MODEL_OVERFLOW_CLEAR2, mask_sh), \ 3770839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_INTERRUPT_STATUS0, DSCC_RATE_CONTROL_BUFFER_MODEL_OVERFLOW_CLEAR3, mask_sh), \ 3870839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_INTERRUPT_CONTROL0, DSCC_RATE_CONTROL_BUFFER_MODEL_OVERFLOW_OCCURRED_INT_EN0, mask_sh), \ 3970839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_INTERRUPT_CONTROL0, DSCC_RATE_CONTROL_BUFFER_MODEL_OVERFLOW_OCCURRED_INT_EN1, mask_sh), \ 4070839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_INTERRUPT_CONTROL0, DSCC_RATE_CONTROL_BUFFER_MODEL_OVERFLOW_OCCURRED_INT_EN2, mask_sh), \ 4170839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_INTERRUPT_CONTROL0, DSCC_RATE_CONTROL_BUFFER_MODEL_OVERFLOW_OCCURRED_INT_EN3, mask_sh), \ 4270839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_INTERRUPT_STATUS1, DSCC_OUTPUT_BUFFER_OVERFLOW_OCCURRED0, mask_sh), \ 4370839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_INTERRUPT_STATUS1, DSCC_OUTPUT_BUFFER_OVERFLOW_OCCURRED1, mask_sh), \ 4470839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_INTERRUPT_STATUS1, DSCC_OUTPUT_BUFFER_OVERFLOW_OCCURRED2, mask_sh), \ 4570839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_INTERRUPT_STATUS1, DSCC_OUTPUT_BUFFER_OVERFLOW_OCCURRED3, mask_sh), \ 4670839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_INTERRUPT_STATUS1, DSCC_OUTPUT_BUFFER_UNDERFLOW_OCCURRED0, mask_sh), \ 4770839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_INTERRUPT_STATUS1, DSCC_OUTPUT_BUFFER_UNDERFLOW_OCCURRED1, mask_sh), \ 4870839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_INTERRUPT_STATUS1, DSCC_OUTPUT_BUFFER_UNDERFLOW_OCCURRED2, mask_sh), \ 4970839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_INTERRUPT_STATUS1, DSCC_OUTPUT_BUFFER_UNDERFLOW_OCCURRED3, mask_sh), \ 5070839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_INTERRUPT_STATUS1, DSCC_END_OF_FRAME_NOT_REACHED_OCCURRED, mask_sh), \ 5170839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_INTERRUPT_STATUS1, DSCC_OUTPUT_BUFFER_OVERFLOW_CLEAR0, mask_sh), \ 5270839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_INTERRUPT_STATUS1, DSCC_OUTPUT_BUFFER_OVERFLOW_CLEAR1, mask_sh), \ 5370839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_INTERRUPT_STATUS1, DSCC_OUTPUT_BUFFER_OVERFLOW_CLEAR2, mask_sh), \ 5470839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_INTERRUPT_STATUS1, DSCC_OUTPUT_BUFFER_OVERFLOW_CLEAR3, mask_sh), \ 5570839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_INTERRUPT_STATUS1, DSCC_OUTPUT_BUFFER_UNDERFLOW_CLEAR0, mask_sh), \ 5670839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_INTERRUPT_STATUS1, DSCC_OUTPUT_BUFFER_UNDERFLOW_CLEAR1, mask_sh), \ 5770839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_INTERRUPT_STATUS1, DSCC_OUTPUT_BUFFER_UNDERFLOW_CLEAR2, mask_sh), \ 5870839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_INTERRUPT_STATUS1, DSCC_OUTPUT_BUFFER_UNDERFLOW_CLEAR3, mask_sh), \ 5970839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_INTERRUPT_STATUS1, DSCC_END_OF_FRAME_NOT_REACHED_CLEAR, mask_sh), \ 6070839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_INTERRUPT_CONTROL1, DSCC_OUTPUT_BUFFER_OVERFLOW_OCCURRED_INT_EN0, mask_sh), \ 6170839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_INTERRUPT_CONTROL1, DSCC_OUTPUT_BUFFER_OVERFLOW_OCCURRED_INT_EN1, mask_sh), \ 6270839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_INTERRUPT_CONTROL1, DSCC_OUTPUT_BUFFER_OVERFLOW_OCCURRED_INT_EN2, mask_sh), \ 6370839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_INTERRUPT_CONTROL1, DSCC_OUTPUT_BUFFER_OVERFLOW_OCCURRED_INT_EN3, mask_sh), \ 6470839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_INTERRUPT_CONTROL1, DSCC_OUTPUT_BUFFER_UNDERFLOW_OCCURRED_INT_EN0, mask_sh), \ 6570839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_INTERRUPT_CONTROL1, DSCC_OUTPUT_BUFFER_UNDERFLOW_OCCURRED_INT_EN1, mask_sh), \ 6670839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_INTERRUPT_CONTROL1, DSCC_OUTPUT_BUFFER_UNDERFLOW_OCCURRED_INT_EN2, mask_sh), \ 6770839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_INTERRUPT_CONTROL1, DSCC_OUTPUT_BUFFER_UNDERFLOW_OCCURRED_INT_EN3, mask_sh), \ 6870839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_INTERRUPT_CONTROL1, DSCC_END_OF_FRAME_NOT_REACHED_OCCURRED_INT_EN, mask_sh), \ 6970839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_PPS_CONFIG0, DSC_VERSION_MINOR, mask_sh), \ 7070839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_PPS_CONFIG0, DSC_VERSION_MAJOR, mask_sh), \ 7170839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_PPS_CONFIG0, PPS_IDENTIFIER, mask_sh), \ 7270839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_PPS_CONFIG0, LINEBUF_DEPTH, mask_sh), \ 7370839da6SAurabindo Pillai DSC2_SF(DSCC0, DSCC_PPS_CONFIG0__BITS_PER_COMPONENT, mask_sh), \ 7470839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_PPS_CONFIG1, BITS_PER_PIXEL, mask_sh), \ 7570839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_PPS_CONFIG1, VBR_ENABLE, mask_sh), \ 7670839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_PPS_CONFIG1, SIMPLE_422, mask_sh), \ 7770839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_PPS_CONFIG1, CONVERT_RGB, mask_sh), \ 7870839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_PPS_CONFIG1, BLOCK_PRED_ENABLE, mask_sh), \ 7970839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_PPS_CONFIG1, NATIVE_422, mask_sh), \ 8070839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_PPS_CONFIG1, NATIVE_420, mask_sh), \ 8170839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_PPS_CONFIG1, CHUNK_SIZE, mask_sh), \ 8270839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_PPS_CONFIG2, PIC_WIDTH, mask_sh), \ 8370839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_PPS_CONFIG2, PIC_HEIGHT, mask_sh), \ 8470839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_PPS_CONFIG3, SLICE_WIDTH, mask_sh), \ 8570839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_PPS_CONFIG3, SLICE_HEIGHT, mask_sh), \ 8670839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_PPS_CONFIG4, INITIAL_XMIT_DELAY, mask_sh), \ 8770839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_PPS_CONFIG4, INITIAL_DEC_DELAY, mask_sh), \ 8870839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_PPS_CONFIG5, INITIAL_SCALE_VALUE, mask_sh), \ 8970839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_PPS_CONFIG5, SCALE_INCREMENT_INTERVAL, mask_sh), \ 9070839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_PPS_CONFIG6, SCALE_DECREMENT_INTERVAL, mask_sh), \ 9170839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_PPS_CONFIG6, FIRST_LINE_BPG_OFFSET, mask_sh), \ 9270839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_PPS_CONFIG6, SECOND_LINE_BPG_OFFSET, mask_sh), \ 9370839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_PPS_CONFIG7, NFL_BPG_OFFSET, mask_sh), \ 9470839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_PPS_CONFIG7, SLICE_BPG_OFFSET, mask_sh), \ 9570839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_PPS_CONFIG8, NSL_BPG_OFFSET, mask_sh), \ 9670839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_PPS_CONFIG8, SECOND_LINE_OFFSET_ADJ, mask_sh), \ 9770839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_PPS_CONFIG9, INITIAL_OFFSET, mask_sh), \ 9870839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_PPS_CONFIG9, FINAL_OFFSET, mask_sh), \ 9970839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_PPS_CONFIG10, FLATNESS_MIN_QP, mask_sh), \ 10070839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_PPS_CONFIG10, FLATNESS_MAX_QP, mask_sh), \ 10170839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_PPS_CONFIG10, RC_MODEL_SIZE, mask_sh), \ 10270839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_PPS_CONFIG11, RC_EDGE_FACTOR, mask_sh), \ 10370839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_PPS_CONFIG11, RC_QUANT_INCR_LIMIT0, mask_sh), \ 10470839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_PPS_CONFIG11, RC_QUANT_INCR_LIMIT1, mask_sh), \ 10570839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_PPS_CONFIG11, RC_TGT_OFFSET_LO, mask_sh), \ 10670839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_PPS_CONFIG11, RC_TGT_OFFSET_HI, mask_sh), \ 10770839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_PPS_CONFIG12, RC_BUF_THRESH0, mask_sh), \ 10870839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_PPS_CONFIG12, RC_BUF_THRESH1, mask_sh), \ 10970839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_PPS_CONFIG12, RC_BUF_THRESH2, mask_sh), \ 11070839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_PPS_CONFIG12, RC_BUF_THRESH3, mask_sh), \ 11170839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_PPS_CONFIG13, RC_BUF_THRESH4, mask_sh), \ 11270839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_PPS_CONFIG13, RC_BUF_THRESH5, mask_sh), \ 11370839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_PPS_CONFIG13, RC_BUF_THRESH6, mask_sh), \ 11470839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_PPS_CONFIG13, RC_BUF_THRESH7, mask_sh), \ 11570839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_PPS_CONFIG14, RC_BUF_THRESH8, mask_sh), \ 11670839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_PPS_CONFIG14, RC_BUF_THRESH9, mask_sh), \ 11770839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_PPS_CONFIG14, RC_BUF_THRESH10, mask_sh), \ 11870839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_PPS_CONFIG14, RC_BUF_THRESH11, mask_sh), \ 11970839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_PPS_CONFIG15, RC_BUF_THRESH12, mask_sh), \ 12070839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_PPS_CONFIG15, RC_BUF_THRESH13, mask_sh), \ 12170839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_PPS_CONFIG15, RANGE_MIN_QP0, mask_sh), \ 12270839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_PPS_CONFIG15, RANGE_MAX_QP0, mask_sh), \ 12370839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_PPS_CONFIG15, RANGE_BPG_OFFSET0, mask_sh), \ 12470839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_PPS_CONFIG16, RANGE_MIN_QP1, mask_sh), \ 12570839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_PPS_CONFIG16, RANGE_MAX_QP1, mask_sh), \ 12670839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_PPS_CONFIG16, RANGE_BPG_OFFSET1, mask_sh), \ 12770839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_PPS_CONFIG16, RANGE_MIN_QP2, mask_sh), \ 12870839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_PPS_CONFIG16, RANGE_MAX_QP2, mask_sh), \ 12970839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_PPS_CONFIG16, RANGE_BPG_OFFSET2, mask_sh), \ 13070839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_PPS_CONFIG17, RANGE_MIN_QP3, mask_sh), \ 13170839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_PPS_CONFIG17, RANGE_MAX_QP3, mask_sh), \ 13270839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_PPS_CONFIG17, RANGE_BPG_OFFSET3, mask_sh), \ 13370839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_PPS_CONFIG17, RANGE_MIN_QP4, mask_sh), \ 13470839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_PPS_CONFIG17, RANGE_MAX_QP4, mask_sh), \ 13570839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_PPS_CONFIG17, RANGE_BPG_OFFSET4, mask_sh), \ 13670839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_PPS_CONFIG18, RANGE_MIN_QP5, mask_sh), \ 13770839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_PPS_CONFIG18, RANGE_MAX_QP5, mask_sh), \ 13870839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_PPS_CONFIG18, RANGE_BPG_OFFSET5, mask_sh), \ 13970839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_PPS_CONFIG18, RANGE_MIN_QP6, mask_sh), \ 14070839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_PPS_CONFIG18, RANGE_MAX_QP6, mask_sh), \ 14170839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_PPS_CONFIG18, RANGE_BPG_OFFSET6, mask_sh), \ 14270839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_PPS_CONFIG19, RANGE_MIN_QP7, mask_sh), \ 14370839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_PPS_CONFIG19, RANGE_MAX_QP7, mask_sh), \ 14470839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_PPS_CONFIG19, RANGE_BPG_OFFSET7, mask_sh), \ 14570839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_PPS_CONFIG19, RANGE_MIN_QP8, mask_sh), \ 14670839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_PPS_CONFIG19, RANGE_MAX_QP8, mask_sh), \ 14770839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_PPS_CONFIG19, RANGE_BPG_OFFSET8, mask_sh), \ 14870839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_PPS_CONFIG20, RANGE_MIN_QP9, mask_sh), \ 14970839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_PPS_CONFIG20, RANGE_MAX_QP9, mask_sh), \ 15070839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_PPS_CONFIG20, RANGE_BPG_OFFSET9, mask_sh), \ 15170839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_PPS_CONFIG20, RANGE_MIN_QP10, mask_sh), \ 15270839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_PPS_CONFIG20, RANGE_MAX_QP10, mask_sh), \ 15370839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_PPS_CONFIG20, RANGE_BPG_OFFSET10, mask_sh), \ 15470839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_PPS_CONFIG21, RANGE_MIN_QP11, mask_sh), \ 15570839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_PPS_CONFIG21, RANGE_MAX_QP11, mask_sh), \ 15670839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_PPS_CONFIG21, RANGE_BPG_OFFSET11, mask_sh), \ 15770839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_PPS_CONFIG21, RANGE_MIN_QP12, mask_sh), \ 15870839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_PPS_CONFIG21, RANGE_MAX_QP12, mask_sh), \ 15970839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_PPS_CONFIG21, RANGE_BPG_OFFSET12, mask_sh), \ 16070839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_PPS_CONFIG22, RANGE_MIN_QP13, mask_sh), \ 16170839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_PPS_CONFIG22, RANGE_MAX_QP13, mask_sh), \ 16270839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_PPS_CONFIG22, RANGE_BPG_OFFSET13, mask_sh), \ 16370839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_PPS_CONFIG22, RANGE_MIN_QP14, mask_sh), \ 16470839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_PPS_CONFIG22, RANGE_MAX_QP14, mask_sh), \ 16570839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_PPS_CONFIG22, RANGE_BPG_OFFSET14, mask_sh), \ 16670839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_MEM_POWER_CONTROL0, DSCC_DEFAULT_MEM_LOW_POWER_STATE, mask_sh), \ 16770839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_MEM_POWER_CONTROL0, DSCC_MEM_PWR_FORCE, mask_sh), \ 16870839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_MEM_POWER_CONTROL0, DSCC_MEM_PWR_DIS, mask_sh), \ 16970839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_MEM_POWER_CONTROL0, DSCC_MEM_PWR_STATE, mask_sh), \ 17070839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_MEM_POWER_CONTROL1, DSCC_DEFAULT_MEM_LOW_POWER_STATE, mask_sh), \ 17170839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_MEM_POWER_CONTROL1, DSCC_MEM_PWR_FORCE, mask_sh), \ 17270839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_MEM_POWER_CONTROL1, DSCC_MEM_PWR_DIS, mask_sh), \ 17370839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_MEM_POWER_CONTROL1, DSCC_MEM_PWR_STATE, mask_sh), \ 17470839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_R_Y_SQUARED_ERROR_LOWER, DSCC_R_Y_SQUARED_ERROR_LOWER, mask_sh), \ 17570839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_R_Y_SQUARED_ERROR_UPPER, DSCC_R_Y_SQUARED_ERROR_UPPER, mask_sh), \ 17670839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_G_CB_SQUARED_ERROR_LOWER, DSCC_G_CB_SQUARED_ERROR_LOWER, mask_sh), \ 17770839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_G_CB_SQUARED_ERROR_UPPER, DSCC_G_CB_SQUARED_ERROR_UPPER, mask_sh), \ 17870839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_B_CR_SQUARED_ERROR_LOWER, DSCC_B_CR_SQUARED_ERROR_LOWER, mask_sh), \ 17970839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_B_CR_SQUARED_ERROR_UPPER, DSCC_B_CR_SQUARED_ERROR_UPPER, mask_sh), \ 18070839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_MAX_ABS_ERROR0, DSCC_R_Y_MAX_ABS_ERROR, mask_sh), \ 18170839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_MAX_ABS_ERROR0, DSCC_G_CB_MAX_ABS_ERROR, mask_sh), \ 18270839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_MAX_ABS_ERROR1, DSCC_B_CR_MAX_ABS_ERROR, mask_sh), \ 18370839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_OUTPUT_BUFFER_MAX_FULLNESS_LEVEL0, DSCC_OUTPUT_BUFFER_MAX_FULLNESS_LEVEL0, mask_sh), \ 18470839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_OUTPUT_BUFFER_MAX_FULLNESS_LEVEL1, DSCC_OUTPUT_BUFFER_MAX_FULLNESS_LEVEL1, mask_sh), \ 18570839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_OUTPUT_BUFFER_MAX_FULLNESS_LEVEL2, DSCC_OUTPUT_BUFFER_MAX_FULLNESS_LEVEL2, mask_sh), \ 18670839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_OUTPUT_BUFFER_MAX_FULLNESS_LEVEL3, DSCC_OUTPUT_BUFFER_MAX_FULLNESS_LEVEL3, mask_sh), \ 18770839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_RATE_BUFFER_MODEL_MAX_FULLNESS_LEVEL0, DSCC_RATE_BUFFER_MODEL_MAX_FULLNESS_LEVEL0, mask_sh), \ 18870839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_RATE_BUFFER_MODEL_MAX_FULLNESS_LEVEL1, DSCC_RATE_BUFFER_MODEL_MAX_FULLNESS_LEVEL1, mask_sh), \ 18970839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_RATE_BUFFER_MODEL_MAX_FULLNESS_LEVEL2, DSCC_RATE_BUFFER_MODEL_MAX_FULLNESS_LEVEL2, mask_sh), \ 19070839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_RATE_BUFFER_MODEL_MAX_FULLNESS_LEVEL3, DSCC_RATE_BUFFER_MODEL_MAX_FULLNESS_LEVEL3, mask_sh), \ 19170839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_TEST_DEBUG_BUS_ROTATE, DSCC_TEST_DEBUG_BUS0_ROTATE, mask_sh), \ 19270839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_TEST_DEBUG_BUS_ROTATE, DSCC_TEST_DEBUG_BUS1_ROTATE, mask_sh), \ 19370839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_TEST_DEBUG_BUS_ROTATE, DSCC_TEST_DEBUG_BUS2_ROTATE, mask_sh), \ 19470839da6SAurabindo Pillai DSC_SF(DSCC0_DSCC_TEST_DEBUG_BUS_ROTATE, DSCC_TEST_DEBUG_BUS3_ROTATE, mask_sh), \ 19570839da6SAurabindo Pillai DSC_SF(DSCCIF0_DSCCIF_CONFIG0, INPUT_PIXEL_FORMAT, mask_sh), \ 19670839da6SAurabindo Pillai DSC2_SF(DSCCIF0, DSCCIF_CONFIG0__BITS_PER_COMPONENT, mask_sh), \ 19770839da6SAurabindo Pillai DSC_SF(DSCCIF0_DSCCIF_CONFIG0, DOUBLE_BUFFER_REG_UPDATE_PENDING, mask_sh), \ 19870839da6SAurabindo Pillai DSC_SF(DSCRM0_DSCRM_DSC_FORWARD_CONFIG, DSCRM_DSC_FORWARD_EN, mask_sh), \ 199569d7db7SRyan Seto DSC_SF(DSCRM0_DSCRM_DSC_FORWARD_CONFIG, DSCRM_DSC_OPP_PIPE_SOURCE, mask_sh), \ 200569d7db7SRyan Seto DSC_SF(DSCRM0_DSCRM_DSC_FORWARD_CONFIG, DSCRM_DSC_FORWARD_EN_STATUS, mask_sh) 20170839da6SAurabindo Pillai 20270839da6SAurabindo Pillai struct dcn401_dsc_registers { 20370839da6SAurabindo Pillai uint32_t DSC_TOP_CONTROL; 20470839da6SAurabindo Pillai uint32_t DSC_DEBUG_CONTROL; 20570839da6SAurabindo Pillai uint32_t DSCC_CONFIG0; 20670839da6SAurabindo Pillai uint32_t DSCC_CONFIG1; 20770839da6SAurabindo Pillai uint32_t DSCC_STATUS; 20870839da6SAurabindo Pillai uint32_t DSCC_INTERRUPT_CONTROL0; 20970839da6SAurabindo Pillai uint32_t DSCC_INTERRUPT_CONTROL1; 21070839da6SAurabindo Pillai uint32_t DSCC_INTERRUPT_STATUS0; 21170839da6SAurabindo Pillai uint32_t DSCC_INTERRUPT_STATUS1; 21270839da6SAurabindo Pillai uint32_t DSCC_PPS_CONFIG0; 21370839da6SAurabindo Pillai uint32_t DSCC_PPS_CONFIG1; 21470839da6SAurabindo Pillai uint32_t DSCC_PPS_CONFIG2; 21570839da6SAurabindo Pillai uint32_t DSCC_PPS_CONFIG3; 21670839da6SAurabindo Pillai uint32_t DSCC_PPS_CONFIG4; 21770839da6SAurabindo Pillai uint32_t DSCC_PPS_CONFIG5; 21870839da6SAurabindo Pillai uint32_t DSCC_PPS_CONFIG6; 21970839da6SAurabindo Pillai uint32_t DSCC_PPS_CONFIG7; 22070839da6SAurabindo Pillai uint32_t DSCC_PPS_CONFIG8; 22170839da6SAurabindo Pillai uint32_t DSCC_PPS_CONFIG9; 22270839da6SAurabindo Pillai uint32_t DSCC_PPS_CONFIG10; 22370839da6SAurabindo Pillai uint32_t DSCC_PPS_CONFIG11; 22470839da6SAurabindo Pillai uint32_t DSCC_PPS_CONFIG12; 22570839da6SAurabindo Pillai uint32_t DSCC_PPS_CONFIG13; 22670839da6SAurabindo Pillai uint32_t DSCC_PPS_CONFIG14; 22770839da6SAurabindo Pillai uint32_t DSCC_PPS_CONFIG15; 22870839da6SAurabindo Pillai uint32_t DSCC_PPS_CONFIG16; 22970839da6SAurabindo Pillai uint32_t DSCC_PPS_CONFIG17; 23070839da6SAurabindo Pillai uint32_t DSCC_PPS_CONFIG18; 23170839da6SAurabindo Pillai uint32_t DSCC_PPS_CONFIG19; 23270839da6SAurabindo Pillai uint32_t DSCC_PPS_CONFIG20; 23370839da6SAurabindo Pillai uint32_t DSCC_PPS_CONFIG21; 23470839da6SAurabindo Pillai uint32_t DSCC_PPS_CONFIG22; 23570839da6SAurabindo Pillai uint32_t DSCC_MEM_POWER_CONTROL0; 23670839da6SAurabindo Pillai uint32_t DSCC_MEM_POWER_CONTROL1; 23770839da6SAurabindo Pillai uint32_t DSCC_R_Y_SQUARED_ERROR_LOWER; 23870839da6SAurabindo Pillai uint32_t DSCC_R_Y_SQUARED_ERROR_UPPER; 23970839da6SAurabindo Pillai uint32_t DSCC_G_CB_SQUARED_ERROR_LOWER; 24070839da6SAurabindo Pillai uint32_t DSCC_G_CB_SQUARED_ERROR_UPPER; 24170839da6SAurabindo Pillai uint32_t DSCC_B_CR_SQUARED_ERROR_LOWER; 24270839da6SAurabindo Pillai uint32_t DSCC_B_CR_SQUARED_ERROR_UPPER; 24370839da6SAurabindo Pillai uint32_t DSCC_MAX_ABS_ERROR0; 24470839da6SAurabindo Pillai uint32_t DSCC_MAX_ABS_ERROR1; 24570839da6SAurabindo Pillai uint32_t DSCC_TEST_DEBUG_BUS_ROTATE; 24670839da6SAurabindo Pillai uint32_t DSCCIF_CONFIG0; 24770839da6SAurabindo Pillai uint32_t DSCRM_DSC_FORWARD_CONFIG; 24870839da6SAurabindo Pillai uint32_t DSCC_RATE_BUFFER_MODEL_MAX_FULLNESS_LEVEL0; 24970839da6SAurabindo Pillai uint32_t DSCC_RATE_BUFFER_MODEL_MAX_FULLNESS_LEVEL1; 25070839da6SAurabindo Pillai uint32_t DSCC_RATE_BUFFER_MODEL_MAX_FULLNESS_LEVEL2; 25170839da6SAurabindo Pillai uint32_t DSCC_RATE_BUFFER_MODEL_MAX_FULLNESS_LEVEL3; 25270839da6SAurabindo Pillai uint32_t DSCC_OUTPUT_BUFFER_MAX_FULLNESS_LEVEL0; 25370839da6SAurabindo Pillai uint32_t DSCC_OUTPUT_BUFFER_MAX_FULLNESS_LEVEL1; 25470839da6SAurabindo Pillai uint32_t DSCC_OUTPUT_BUFFER_MAX_FULLNESS_LEVEL2; 25570839da6SAurabindo Pillai uint32_t DSCC_OUTPUT_BUFFER_MAX_FULLNESS_LEVEL3; 25670839da6SAurabindo Pillai }; 25770839da6SAurabindo Pillai 25870839da6SAurabindo Pillai #define DSC_FIELD_LIST_DCN401(type)\ 25970839da6SAurabindo Pillai DSC_FIELD_LIST_DCN20(type); \ 26070839da6SAurabindo Pillai type DSC_FGCG_REP_DIS; \ 26170839da6SAurabindo Pillai type DSCC_RATE_CONTROL_BUFFER_MODEL_OVERFLOW_OCCURRED_INT_EN0; \ 26270839da6SAurabindo Pillai type DSCC_RATE_CONTROL_BUFFER_MODEL_OVERFLOW_OCCURRED_INT_EN1; \ 26370839da6SAurabindo Pillai type DSCC_RATE_CONTROL_BUFFER_MODEL_OVERFLOW_OCCURRED_INT_EN2; \ 26470839da6SAurabindo Pillai type DSCC_RATE_CONTROL_BUFFER_MODEL_OVERFLOW_OCCURRED_INT_EN3; \ 26570839da6SAurabindo Pillai type DSCC_OUTPUT_BUFFER_OVERFLOW_OCCURRED0; \ 26670839da6SAurabindo Pillai type DSCC_OUTPUT_BUFFER_OVERFLOW_OCCURRED1; \ 26770839da6SAurabindo Pillai type DSCC_OUTPUT_BUFFER_OVERFLOW_OCCURRED2; \ 26870839da6SAurabindo Pillai type DSCC_OUTPUT_BUFFER_OVERFLOW_OCCURRED3; \ 26970839da6SAurabindo Pillai type DSCC_OUTPUT_BUFFER_UNDERFLOW_OCCURRED0; \ 27070839da6SAurabindo Pillai type DSCC_OUTPUT_BUFFER_UNDERFLOW_OCCURRED1; \ 27170839da6SAurabindo Pillai type DSCC_OUTPUT_BUFFER_UNDERFLOW_OCCURRED2; \ 27270839da6SAurabindo Pillai type DSCC_OUTPUT_BUFFER_UNDERFLOW_OCCURRED3; \ 27370839da6SAurabindo Pillai type DSCC_END_OF_FRAME_NOT_REACHED_OCCURRED; \ 27470839da6SAurabindo Pillai type DSCC_OUTPUT_BUFFER_OVERFLOW_CLEAR0; \ 27570839da6SAurabindo Pillai type DSCC_OUTPUT_BUFFER_OVERFLOW_CLEAR1; \ 27670839da6SAurabindo Pillai type DSCC_OUTPUT_BUFFER_OVERFLOW_CLEAR2; \ 27770839da6SAurabindo Pillai type DSCC_OUTPUT_BUFFER_OVERFLOW_CLEAR3; \ 27870839da6SAurabindo Pillai type DSCC_OUTPUT_BUFFER_UNDERFLOW_CLEAR0; \ 27970839da6SAurabindo Pillai type DSCC_OUTPUT_BUFFER_UNDERFLOW_CLEAR1; \ 28070839da6SAurabindo Pillai type DSCC_OUTPUT_BUFFER_UNDERFLOW_CLEAR2; \ 28170839da6SAurabindo Pillai type DSCC_OUTPUT_BUFFER_UNDERFLOW_CLEAR3; \ 28270839da6SAurabindo Pillai type DSCC_END_OF_FRAME_NOT_REACHED_CLEAR; \ 28370839da6SAurabindo Pillai type DSCC_RATE_CONTROL_BUFFER_MODEL_OVERFLOW_OCCURRED0; \ 28470839da6SAurabindo Pillai type DSCC_RATE_CONTROL_BUFFER_MODEL_OVERFLOW_OCCURRED1; \ 28570839da6SAurabindo Pillai type DSCC_RATE_CONTROL_BUFFER_MODEL_OVERFLOW_OCCURRED2; \ 28670839da6SAurabindo Pillai type DSCC_RATE_CONTROL_BUFFER_MODEL_OVERFLOW_OCCURRED3; \ 28770839da6SAurabindo Pillai type DSCC_RATE_CONTROL_BUFFER_MODEL_OVERFLOW_CLEAR0; \ 28870839da6SAurabindo Pillai type DSCC_RATE_CONTROL_BUFFER_MODEL_OVERFLOW_CLEAR1; \ 28970839da6SAurabindo Pillai type DSCC_RATE_CONTROL_BUFFER_MODEL_OVERFLOW_CLEAR2; \ 29070839da6SAurabindo Pillai type DSCC_RATE_CONTROL_BUFFER_MODEL_OVERFLOW_CLEAR3; \ 29170839da6SAurabindo Pillai type DSCC_OUTPUT_BUFFER_OVERFLOW_OCCURRED_INT_EN0; \ 29270839da6SAurabindo Pillai type DSCC_OUTPUT_BUFFER_OVERFLOW_OCCURRED_INT_EN1; \ 29370839da6SAurabindo Pillai type DSCC_OUTPUT_BUFFER_OVERFLOW_OCCURRED_INT_EN2; \ 29470839da6SAurabindo Pillai type DSCC_OUTPUT_BUFFER_OVERFLOW_OCCURRED_INT_EN3; \ 29570839da6SAurabindo Pillai type DSCC_OUTPUT_BUFFER_UNDERFLOW_OCCURRED_INT_EN0; \ 29670839da6SAurabindo Pillai type DSCC_OUTPUT_BUFFER_UNDERFLOW_OCCURRED_INT_EN1; \ 29770839da6SAurabindo Pillai type DSCC_OUTPUT_BUFFER_UNDERFLOW_OCCURRED_INT_EN2; \ 29870839da6SAurabindo Pillai type DSCC_OUTPUT_BUFFER_UNDERFLOW_OCCURRED_INT_EN3; \ 29970839da6SAurabindo Pillai type DSCC_END_OF_FRAME_NOT_REACHED_OCCURRED_INT_EN; \ 30070839da6SAurabindo Pillai type DSCC_OUTPUT_BUFFER_MAX_FULLNESS_LEVEL0; \ 30170839da6SAurabindo Pillai type DSCC_OUTPUT_BUFFER_MAX_FULLNESS_LEVEL1; \ 30270839da6SAurabindo Pillai type DSCC_OUTPUT_BUFFER_MAX_FULLNESS_LEVEL2; \ 30370839da6SAurabindo Pillai type DSCC_OUTPUT_BUFFER_MAX_FULLNESS_LEVEL3; \ 30470839da6SAurabindo Pillai type DSCC_RATE_BUFFER_MODEL_MAX_FULLNESS_LEVEL0; \ 30570839da6SAurabindo Pillai type DSCC_RATE_BUFFER_MODEL_MAX_FULLNESS_LEVEL1; \ 30670839da6SAurabindo Pillai type DSCC_RATE_BUFFER_MODEL_MAX_FULLNESS_LEVEL2; \ 30770839da6SAurabindo Pillai type DSCC_RATE_BUFFER_MODEL_MAX_FULLNESS_LEVEL3 30870839da6SAurabindo Pillai 30970839da6SAurabindo Pillai struct dcn401_dsc_shift { 31070839da6SAurabindo Pillai DSC_FIELD_LIST_DCN401(uint8_t); 31170839da6SAurabindo Pillai }; 31270839da6SAurabindo Pillai 31370839da6SAurabindo Pillai struct dcn401_dsc_mask { 31470839da6SAurabindo Pillai DSC_FIELD_LIST_DCN401(uint32_t); 31570839da6SAurabindo Pillai }; 31670839da6SAurabindo Pillai 31770839da6SAurabindo Pillai struct dcn401_dsc { 31870839da6SAurabindo Pillai struct display_stream_compressor base; 31970839da6SAurabindo Pillai const struct dcn401_dsc_registers *dsc_regs; 32070839da6SAurabindo Pillai const struct dcn401_dsc_shift *dsc_shift; 32170839da6SAurabindo Pillai const struct dcn401_dsc_mask *dsc_mask; 32270839da6SAurabindo Pillai 32370839da6SAurabindo Pillai struct dsc_reg_values reg_vals; 32470839da6SAurabindo Pillai 32570839da6SAurabindo Pillai int max_image_width; 32670839da6SAurabindo Pillai }; 32770839da6SAurabindo Pillai 32870839da6SAurabindo Pillai void dsc401_construct(struct dcn401_dsc *dsc, 32970839da6SAurabindo Pillai struct dc_context *ctx, 33070839da6SAurabindo Pillai int inst, 33170839da6SAurabindo Pillai const struct dcn401_dsc_registers *dsc_regs, 33270839da6SAurabindo Pillai const struct dcn401_dsc_shift *dsc_shift, 33370839da6SAurabindo Pillai const struct dcn401_dsc_mask *dsc_mask); 33470839da6SAurabindo Pillai 33570839da6SAurabindo Pillai void dsc401_set_fgcg(struct dcn401_dsc *dsc401, bool enable); 33670839da6SAurabindo Pillai 3372739bd12SDmytro void dsc401_read_state(struct display_stream_compressor *dsc, struct dcn_dsc_state *s); 3382739bd12SDmytro bool dsc401_validate_stream(struct display_stream_compressor *dsc, const struct dsc_config *dsc_cfg); 3392739bd12SDmytro void dsc401_set_config(struct display_stream_compressor *dsc, const struct dsc_config *dsc_cfg, 3402739bd12SDmytro struct dsc_optc_config *dsc_optc_cfg); 3412739bd12SDmytro void dsc401_enable(struct display_stream_compressor *dsc, int opp_pipe); 3422739bd12SDmytro void dsc401_disable(struct display_stream_compressor *dsc); 3432739bd12SDmytro void dsc401_disconnect(struct display_stream_compressor *dsc); 344*8ebfc4d2SKarthi Kandasamy void dsc401_wait_disconnect_pending_clear(struct display_stream_compressor *dsc); 34570839da6SAurabindo Pillai #endif 34670839da6SAurabindo Pillai 347