0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025 #ifndef __DC_COMPRESSOR_DCE110_H__
0026 #define __DC_COMPRESSOR_DCE110_H__
0027
0028 #include "../inc/compressor.h"
0029
0030 #define TO_DCE110_COMPRESSOR(compressor)\
0031 container_of(compressor, struct dce110_compressor, base)
0032
0033 struct dce110_compressor_reg_offsets {
0034 uint32_t dcp_offset;
0035 uint32_t dmif_offset;
0036 };
0037
0038 struct dce110_compressor {
0039 struct compressor base;
0040 struct dce110_compressor_reg_offsets offsets;
0041 };
0042
0043 struct compressor *dce110_compressor_create(struct dc_context *ctx);
0044
0045 void dce110_compressor_construct(struct dce110_compressor *cp110,
0046 struct dc_context *ctx);
0047
0048 void dce110_compressor_destroy(struct compressor **cp);
0049
0050
0051 void dce110_compressor_power_up_fbc(struct compressor *cp);
0052
0053 void dce110_compressor_enable_fbc(struct compressor *cp,
0054 struct compr_addr_and_pitch_params *params);
0055
0056 void dce110_compressor_disable_fbc(struct compressor *cp);
0057
0058 void dce110_compressor_set_fbc_invalidation_triggers(struct compressor *cp,
0059 uint32_t fbc_trigger);
0060
0061 void dce110_compressor_program_compressed_surface_address_and_pitch(
0062 struct compressor *cp,
0063 struct compr_addr_and_pitch_params *params);
0064
0065 bool dce110_compressor_is_fbc_enabled_in_hw(struct compressor *cp,
0066 uint32_t *fbc_mapped_crtc_id);
0067
0068
0069 void dce110_compressor_enable_lpt(struct compressor *cp);
0070
0071 void dce110_compressor_disable_lpt(struct compressor *cp);
0072
0073 void dce110_compressor_program_lpt_control(struct compressor *cp,
0074 struct compr_addr_and_pitch_params *params);
0075
0076 bool dce110_compressor_is_lpt_enabled_in_hw(struct compressor *cp);
0077
0078 void get_max_support_fbc_buffersize(unsigned int *max_x, unsigned int *max_y);
0079
0080 #endif
0081