aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorDmytro Laktyushkin <Dmytro.Laktyushkin@amd.com>2017-06-26 15:13:18 -0400
committerAlex Deucher <alexander.deucher@amd.com>2017-09-26 18:08:25 -0400
commitb1a4eb992c1712981f36bb0213879c426d524f76 (patch)
tree8668b58ec6ccb168a00183a34ccf1536be8d418c /drivers
parent9ff1bb090b40949cddfbb904e613395ad2633fc7 (diff)
drm/amd/display: enable diags compilation
Signed-off-by: Dmytro Laktyushkin <Dmytro.Laktyushkin@amd.com> Reviewed-by: Jordan Lazare <Jordan.Lazare@amd.com> Acked-by: Harry Wentland <Harry.Wentland@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/gpu/drm/amd/display/dc/dce/dce_clocks.c8
-rw-r--r--drivers/gpu/drm/amd/display/dc/dce/dce_clocks.h41
-rw-r--r--drivers/gpu/drm/amd/display/dc/dce120/dce120_resource.c17
-rw-r--r--drivers/gpu/drm/amd/display/dc/dcn10/dcn10_resource.c22
-rw-r--r--drivers/gpu/drm/amd/display/dc/dcn10/dcn10_transform.h23
-rw-r--r--drivers/gpu/drm/amd/display/dc/inc/resource.h1
6 files changed, 27 insertions, 85 deletions
diff --git a/drivers/gpu/drm/amd/display/dc/dce/dce_clocks.c b/drivers/gpu/drm/amd/display/dc/dce/dce_clocks.c
index 4e3f4e5e46a0..f30cd4dff554 100644
--- a/drivers/gpu/drm/amd/display/dc/dce/dce_clocks.c
+++ b/drivers/gpu/drm/amd/display/dc/dce/dce_clocks.c
@@ -781,11 +781,7 @@ struct display_clock *dce112_disp_clk_create(
781 return &clk_dce->base; 781 return &clk_dce->base;
782} 782}
783 783
784struct display_clock *dce120_disp_clk_create( 784struct display_clock *dce120_disp_clk_create(struct dc_context *ctx)
785 struct dc_context *ctx,
786 const struct dce_disp_clk_registers *regs,
787 const struct dce_disp_clk_shift *clk_shift,
788 const struct dce_disp_clk_mask *clk_mask)
789{ 785{
790 struct dce_disp_clk *clk_dce = dm_alloc(sizeof(*clk_dce)); 786 struct dce_disp_clk *clk_dce = dm_alloc(sizeof(*clk_dce));
791 struct dm_pp_clock_levels_with_voltage clk_level_info = {0}; 787 struct dm_pp_clock_levels_with_voltage clk_level_info = {0};
@@ -800,7 +796,7 @@ struct display_clock *dce120_disp_clk_create(
800 sizeof(dce120_max_clks_by_state)); 796 sizeof(dce120_max_clks_by_state));
801 797
802 dce_disp_clk_construct( 798 dce_disp_clk_construct(
803 clk_dce, ctx, regs, clk_shift, clk_mask); 799 clk_dce, ctx, NULL, NULL, NULL);
804 800
805 clk_dce->base.funcs = &dce120_funcs; 801 clk_dce->base.funcs = &dce120_funcs;
806 802
diff --git a/drivers/gpu/drm/amd/display/dc/dce/dce_clocks.h b/drivers/gpu/drm/amd/display/dc/dce/dce_clocks.h
index 103e905291a3..0e717e0dc8f0 100644
--- a/drivers/gpu/drm/amd/display/dc/dce/dce_clocks.h
+++ b/drivers/gpu/drm/amd/display/dc/dce/dce_clocks.h
@@ -31,55 +31,30 @@
31 31
32#define CLK_COMMON_REG_LIST_DCE_BASE() \ 32#define CLK_COMMON_REG_LIST_DCE_BASE() \
33 .DPREFCLK_CNTL = mmDPREFCLK_CNTL, \ 33 .DPREFCLK_CNTL = mmDPREFCLK_CNTL, \
34 .DENTIST_DISPCLK_CNTL = mmDENTIST_DISPCLK_CNTL, \ 34 .DENTIST_DISPCLK_CNTL = mmDENTIST_DISPCLK_CNTL
35 .MASTER_COMM_DATA_REG1 = mmMASTER_COMM_DATA_REG1, \
36 .MASTER_COMM_CMD_REG = mmMASTER_COMM_CMD_REG, \
37 .MASTER_COMM_CNTL_REG = mmMASTER_COMM_CNTL_REG
38 35
39#define CLK_SF(reg_name, field_name, post_fix)\ 36#define CLK_SF(reg_name, field_name, post_fix)\
40 .field_name = reg_name ## __ ## field_name ## post_fix 37 .field_name = reg_name ## __ ## field_name ## post_fix
41 38
42#define CLK_COMMON_MASK_SH_LIST_DCE_COMMON_BASE(mask_sh) \ 39#define CLK_COMMON_MASK_SH_LIST_DCE_COMMON_BASE(mask_sh) \
43 CLK_SF(DPREFCLK_CNTL, DPREFCLK_SRC_SEL, mask_sh), \ 40 CLK_SF(DPREFCLK_CNTL, DPREFCLK_SRC_SEL, mask_sh), \
44 CLK_SF(DENTIST_DISPCLK_CNTL, DENTIST_DPREFCLK_WDIVIDER, mask_sh), \ 41 CLK_SF(DENTIST_DISPCLK_CNTL, DENTIST_DPREFCLK_WDIVIDER, mask_sh)
45 CLK_SF(MASTER_COMM_CMD_REG, MASTER_COMM_CMD_REG_BYTE0, mask_sh), \
46 CLK_SF(MASTER_COMM_CNTL_REG, MASTER_COMM_INTERRUPT, mask_sh)
47
48#if defined(CONFIG_DRM_AMD_DC_DCN1_0)
49#define CLK_DCN10_REG_LIST()\
50 SR(DPREFCLK_CNTL), \
51 SR(DENTIST_DISPCLK_CNTL), \
52 SR(MASTER_COMM_DATA_REG1), \
53 SR(MASTER_COMM_CMD_REG), \
54 SR(MASTER_COMM_CNTL_REG)
55#endif
56
57#define CLK_COMMON_MASK_SH_LIST_SOC_BASE(mask_sh) \
58 CLK_SF(DCCG_DFS_DPREFCLK_CNTL, DPREFCLK_SRC_SEL, mask_sh), \
59 CLK_SF(DCCG_DFS_DENTIST_DISPCLK_CNTL, DENTIST_DPREFCLK_WDIVIDER, mask_sh), \
60 CLK_SF(DCCG_DFS_MASTER_COMM_CMD_REG, MASTER_COMM_CMD_REG_BYTE0, mask_sh), \
61 CLK_SF(DCCG_DFS_MASTER_COMM_CNTL_REG, MASTER_COMM_INTERRUPT, mask_sh)
62 42
63#define CLK_REG_FIELD_LIST(type) \ 43#define CLK_REG_FIELD_LIST(type) \
64 type DPREFCLK_SRC_SEL; \ 44 type DPREFCLK_SRC_SEL; \
65 type DENTIST_DPREFCLK_WDIVIDER; \ 45 type DENTIST_DPREFCLK_WDIVIDER;
66 type MASTER_COMM_CMD_REG_BYTE0; \
67 type MASTER_COMM_INTERRUPT
68 46
69struct dce_disp_clk_shift { 47struct dce_disp_clk_shift {
70 CLK_REG_FIELD_LIST(uint8_t); 48 CLK_REG_FIELD_LIST(uint8_t)
71}; 49};
72 50
73struct dce_disp_clk_mask { 51struct dce_disp_clk_mask {
74 CLK_REG_FIELD_LIST(uint32_t); 52 CLK_REG_FIELD_LIST(uint32_t)
75}; 53};
76 54
77struct dce_disp_clk_registers { 55struct dce_disp_clk_registers {
78 uint32_t DPREFCLK_CNTL; 56 uint32_t DPREFCLK_CNTL;
79 uint32_t DENTIST_DISPCLK_CNTL; 57 uint32_t DENTIST_DISPCLK_CNTL;
80 uint32_t MASTER_COMM_DATA_REG1;
81 uint32_t MASTER_COMM_CMD_REG;
82 uint32_t MASTER_COMM_CNTL_REG;
83}; 58};
84 59
85/* Array identifiers and count for the divider ranges.*/ 60/* Array identifiers and count for the divider ranges.*/
@@ -155,11 +130,7 @@ struct display_clock *dce112_disp_clk_create(
155 const struct dce_disp_clk_shift *clk_shift, 130 const struct dce_disp_clk_shift *clk_shift,
156 const struct dce_disp_clk_mask *clk_mask); 131 const struct dce_disp_clk_mask *clk_mask);
157 132
158struct display_clock *dce120_disp_clk_create( 133struct display_clock *dce120_disp_clk_create(struct dc_context *ctx);
159 struct dc_context *ctx,
160 const struct dce_disp_clk_registers *regs,
161 const struct dce_disp_clk_shift *clk_shift,
162 const struct dce_disp_clk_mask *clk_mask);
163 134
164void dce_disp_clk_destroy(struct display_clock **disp_clk); 135void dce_disp_clk_destroy(struct display_clock **disp_clk);
165 136
diff --git a/drivers/gpu/drm/amd/display/dc/dce120/dce120_resource.c b/drivers/gpu/drm/amd/display/dc/dce120/dce120_resource.c
index ec485353ea4f..82481247a812 100644
--- a/drivers/gpu/drm/amd/display/dc/dce120/dce120_resource.c
+++ b/drivers/gpu/drm/amd/display/dc/dce120/dce120_resource.c
@@ -137,18 +137,6 @@ static const struct dce110_timing_generator_offsets dce120_tg_offsets[] = {
137 * end *********************/ 137 * end *********************/
138 138
139 139
140static const struct dce_disp_clk_registers disp_clk_regs = {
141 CLK_COMMON_REG_LIST_DCE_BASE()
142};
143
144static const struct dce_disp_clk_shift disp_clk_shift = {
145 CLK_COMMON_MASK_SH_LIST_DCE_COMMON_BASE(__SHIFT)
146};
147
148static const struct dce_disp_clk_mask disp_clk_mask = {
149 CLK_COMMON_MASK_SH_LIST_DCE_COMMON_BASE(_MASK)
150};
151
152static const struct dce_dmcu_registers dmcu_regs = { 140static const struct dce_dmcu_registers dmcu_regs = {
153 DMCU_DCE110_COMMON_REG_LIST() 141 DMCU_DCE110_COMMON_REG_LIST()
154}; 142};
@@ -904,10 +892,7 @@ static bool construct(
904 } 892 }
905 } 893 }
906 894
907 pool->base.display_clock = dce120_disp_clk_create(ctx, 895 pool->base.display_clock = dce120_disp_clk_create(ctx);
908 &disp_clk_regs,
909 &disp_clk_shift,
910 &disp_clk_mask);
911 if (pool->base.display_clock == NULL) { 896 if (pool->base.display_clock == NULL) {
912 dm_error("DC: failed to create display clock!\n"); 897 dm_error("DC: failed to create display clock!\n");
913 BREAK_TO_DEBUGGER(); 898 BREAK_TO_DEBUGGER();
diff --git a/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_resource.c b/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_resource.c
index eebaffca8e75..a0dd75dc1c6d 100644
--- a/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_resource.c
+++ b/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_resource.c
@@ -136,17 +136,6 @@ enum dcn10_clk_src_array_id {
136/* macros to expend register list macro defined in HW object header file 136/* macros to expend register list macro defined in HW object header file
137 * end *********************/ 137 * end *********************/
138 138
139static const struct dce_disp_clk_registers disp_clk_regs = {
140 CLK_DCN10_REG_LIST()
141};
142
143static const struct dce_disp_clk_shift disp_clk_shift = {
144 CLK_COMMON_MASK_SH_LIST_DCE_COMMON_BASE(__SHIFT)
145};
146
147static const struct dce_disp_clk_mask disp_clk_mask = {
148 CLK_COMMON_MASK_SH_LIST_DCE_COMMON_BASE(_MASK)
149};
150 139
151static const struct dce_dmcu_registers dmcu_regs = { 140static const struct dce_dmcu_registers dmcu_regs = {
152 DMCU_DCN10_REG_LIST() 141 DMCU_DCN10_REG_LIST()
@@ -317,7 +306,7 @@ static const struct dcn10_opp_mask opp_mask = {
317 306
318#define tf_regs(id)\ 307#define tf_regs(id)\
319[id] = {\ 308[id] = {\
320 TF_REG_LIST_DCN(id),\ 309 TF_REG_LIST_DCN10(id),\
321} 310}
322 311
323static const struct dcn_transform_registers tf_regs[] = { 312static const struct dcn_transform_registers tf_regs[] = {
@@ -328,11 +317,11 @@ static const struct dcn_transform_registers tf_regs[] = {
328}; 317};
329 318
330static const struct dcn_transform_shift tf_shift = { 319static const struct dcn_transform_shift tf_shift = {
331 TF_REG_LIST_SH_MASK_DCN(__SHIFT) 320 TF_REG_LIST_SH_MASK_DCN10(__SHIFT)
332}; 321};
333 322
334static const struct dcn_transform_mask tf_mask = { 323static const struct dcn_transform_mask tf_mask = {
335 TF_REG_LIST_SH_MASK_DCN(_MASK), 324 TF_REG_LIST_SH_MASK_DCN10(_MASK),
336}; 325};
337 326
338 327
@@ -1338,10 +1327,7 @@ static bool construct(
1338 } 1327 }
1339 1328
1340 if (!IS_FPGA_MAXIMUS_DC(dc->ctx->dce_environment)) { 1329 if (!IS_FPGA_MAXIMUS_DC(dc->ctx->dce_environment)) {
1341 pool->base.display_clock = dce120_disp_clk_create(ctx, 1330 pool->base.display_clock = dce120_disp_clk_create(ctx);
1342 &disp_clk_regs,
1343 &disp_clk_shift,
1344 &disp_clk_mask);
1345 if (pool->base.display_clock == NULL) { 1331 if (pool->base.display_clock == NULL) {
1346 dm_error("DC: failed to create display clock!\n"); 1332 dm_error("DC: failed to create display clock!\n");
1347 BREAK_TO_DEBUGGER(); 1333 BREAK_TO_DEBUGGER();
diff --git a/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_transform.h b/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_transform.h
index 7c0089d4293b..cd312bd7055b 100644
--- a/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_transform.h
+++ b/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_transform.h
@@ -58,7 +58,6 @@
58 SRI(DCSURF_SEC_VIEWPORT_START, HUBP, id), \ 58 SRI(DCSURF_SEC_VIEWPORT_START, HUBP, id), \
59 SRI(DCSURF_PRI_VIEWPORT_DIMENSION_C, HUBP, id), \ 59 SRI(DCSURF_PRI_VIEWPORT_DIMENSION_C, HUBP, id), \
60 SRI(DCSURF_PRI_VIEWPORT_START_C, HUBP, id), \ 60 SRI(DCSURF_PRI_VIEWPORT_START_C, HUBP, id), \
61 SRI(CM_GAMUT_REMAP_CONTROL, CM, id), \
62 SRI(MPC_SIZE, DSCL, id), \ 61 SRI(MPC_SIZE, DSCL, id), \
63 SRI(SCL_HORZ_FILTER_SCALE_RATIO, DSCL, id), \ 62 SRI(SCL_HORZ_FILTER_SCALE_RATIO, DSCL, id), \
64 SRI(SCL_VERT_FILTER_SCALE_RATIO, DSCL, id), \ 63 SRI(SCL_VERT_FILTER_SCALE_RATIO, DSCL, id), \
@@ -71,7 +70,10 @@
71 SRI(SCL_VERT_FILTER_INIT_C, DSCL, id), \ 70 SRI(SCL_VERT_FILTER_INIT_C, DSCL, id), \
72 SRI(SCL_VERT_FILTER_INIT_BOT_C, DSCL, id), \ 71 SRI(SCL_VERT_FILTER_INIT_BOT_C, DSCL, id), \
73 SRI(RECOUT_START, DSCL, id), \ 72 SRI(RECOUT_START, DSCL, id), \
74 SRI(RECOUT_SIZE, DSCL, id), \ 73 SRI(RECOUT_SIZE, DSCL, id)
74
75#define TF_REG_LIST_DCN10(id) \
76 TF_REG_LIST_DCN(id), \
75 SRI(CM_GAMUT_REMAP_CONTROL, CM, id),\ 77 SRI(CM_GAMUT_REMAP_CONTROL, CM, id),\
76 SRI(CM_GAMUT_REMAP_C11_C12, CM, id),\ 78 SRI(CM_GAMUT_REMAP_C11_C12, CM, id),\
77 SRI(CM_GAMUT_REMAP_C13_C14, CM, id),\ 79 SRI(CM_GAMUT_REMAP_C13_C14, CM, id),\
@@ -92,8 +94,6 @@
92 SRI(CM_COMB_C31_C32, CM, id),\ 94 SRI(CM_COMB_C31_C32, CM, id),\
93 SRI(CM_COMB_C33_C34, CM, id) 95 SRI(CM_COMB_C33_C34, CM, id)
94 96
95
96
97#define TF_REG_LIST_SH_MASK_DCN(mask_sh)\ 97#define TF_REG_LIST_SH_MASK_DCN(mask_sh)\
98 TF_SF(DSCL0_DSCL_EXT_OVERSCAN_LEFT_RIGHT, EXT_OVERSCAN_LEFT, mask_sh),\ 98 TF_SF(DSCL0_DSCL_EXT_OVERSCAN_LEFT_RIGHT, EXT_OVERSCAN_LEFT, mask_sh),\
99 TF_SF(DSCL0_DSCL_EXT_OVERSCAN_LEFT_RIGHT, EXT_OVERSCAN_RIGHT, mask_sh),\ 99 TF_SF(DSCL0_DSCL_EXT_OVERSCAN_LEFT_RIGHT, EXT_OVERSCAN_RIGHT, mask_sh),\
@@ -103,11 +103,6 @@
103 TF_SF(DSCL0_OTG_H_BLANK, OTG_H_BLANK_END, mask_sh),\ 103 TF_SF(DSCL0_OTG_H_BLANK, OTG_H_BLANK_END, mask_sh),\
104 TF_SF(DSCL0_OTG_V_BLANK, OTG_V_BLANK_START, mask_sh),\ 104 TF_SF(DSCL0_OTG_V_BLANK, OTG_V_BLANK_START, mask_sh),\
105 TF_SF(DSCL0_OTG_V_BLANK, OTG_V_BLANK_END, mask_sh),\ 105 TF_SF(DSCL0_OTG_V_BLANK, OTG_V_BLANK_END, mask_sh),\
106 TF_SF(DSCL0_LB_DATA_FORMAT, PIXEL_DEPTH, mask_sh),\
107 TF_SF(DSCL0_LB_DATA_FORMAT, PIXEL_EXPAN_MODE, mask_sh),\
108 TF_SF(DSCL0_LB_DATA_FORMAT, PIXEL_REDUCE_MODE, mask_sh),\
109 TF_SF(DSCL0_LB_DATA_FORMAT, DYNAMIC_PIXEL_DEPTH, mask_sh),\
110 TF_SF(DSCL0_LB_DATA_FORMAT, DITHER_EN, mask_sh),\
111 TF_SF(DSCL0_LB_DATA_FORMAT, INTERLEAVE_EN, mask_sh),\ 106 TF_SF(DSCL0_LB_DATA_FORMAT, INTERLEAVE_EN, mask_sh),\
112 TF_SF(DSCL0_LB_DATA_FORMAT, ALPHA_EN, mask_sh),\ 107 TF_SF(DSCL0_LB_DATA_FORMAT, ALPHA_EN, mask_sh),\
113 TF_SF(DSCL0_LB_MEMORY_CTRL, MEMORY_CONFIG, mask_sh),\ 108 TF_SF(DSCL0_LB_MEMORY_CTRL, MEMORY_CONFIG, mask_sh),\
@@ -172,7 +167,15 @@
172 TF_SF(DSCL0_SCL_VERT_FILTER_INIT_BOT_C, SCL_V_INIT_FRAC_BOT_C, mask_sh),\ 167 TF_SF(DSCL0_SCL_VERT_FILTER_INIT_BOT_C, SCL_V_INIT_FRAC_BOT_C, mask_sh),\
173 TF_SF(DSCL0_SCL_VERT_FILTER_INIT_BOT_C, SCL_V_INIT_INT_BOT_C, mask_sh),\ 168 TF_SF(DSCL0_SCL_VERT_FILTER_INIT_BOT_C, SCL_V_INIT_INT_BOT_C, mask_sh),\
174 TF_SF(DSCL0_SCL_MODE, SCL_CHROMA_COEF_MODE, mask_sh),\ 169 TF_SF(DSCL0_SCL_MODE, SCL_CHROMA_COEF_MODE, mask_sh),\
175 TF_SF(DSCL0_SCL_MODE, SCL_COEF_RAM_SELECT_CURRENT, mask_sh),\ 170 TF_SF(DSCL0_SCL_MODE, SCL_COEF_RAM_SELECT_CURRENT, mask_sh)
171
172#define TF_REG_LIST_SH_MASK_DCN10(mask_sh)\
173 TF_REG_LIST_SH_MASK_DCN(mask_sh),\
174 TF_SF(DSCL0_LB_DATA_FORMAT, PIXEL_DEPTH, mask_sh),\
175 TF_SF(DSCL0_LB_DATA_FORMAT, PIXEL_EXPAN_MODE, mask_sh),\
176 TF_SF(DSCL0_LB_DATA_FORMAT, PIXEL_REDUCE_MODE, mask_sh),\
177 TF_SF(DSCL0_LB_DATA_FORMAT, DYNAMIC_PIXEL_DEPTH, mask_sh),\
178 TF_SF(DSCL0_LB_DATA_FORMAT, DITHER_EN, mask_sh),\
176 TF_SF(CM0_CM_GAMUT_REMAP_CONTROL, CM_GAMUT_REMAP_MODE, mask_sh),\ 179 TF_SF(CM0_CM_GAMUT_REMAP_CONTROL, CM_GAMUT_REMAP_MODE, mask_sh),\
177 TF_SF(CM0_CM_GAMUT_REMAP_C11_C12, CM_GAMUT_REMAP_C11, mask_sh),\ 180 TF_SF(CM0_CM_GAMUT_REMAP_C11_C12, CM_GAMUT_REMAP_C11, mask_sh),\
178 TF_SF(CM0_CM_GAMUT_REMAP_C11_C12, CM_GAMUT_REMAP_C12, mask_sh),\ 181 TF_SF(CM0_CM_GAMUT_REMAP_C11_C12, CM_GAMUT_REMAP_C12, mask_sh),\
diff --git a/drivers/gpu/drm/amd/display/dc/inc/resource.h b/drivers/gpu/drm/amd/display/dc/inc/resource.h
index 7cac24d4ae86..04e5fd1d8c89 100644
--- a/drivers/gpu/drm/amd/display/dc/inc/resource.h
+++ b/drivers/gpu/drm/amd/display/dc/inc/resource.h
@@ -42,6 +42,7 @@ struct resource_caps {
42 int num_audio; 42 int num_audio;
43 int num_stream_encoder; 43 int num_stream_encoder;
44 int num_pll; 44 int num_pll;
45 int num_dwb;
45}; 46};
46 47
47struct resource_straps { 48struct resource_straps {