]>
Commit | Line | Data |
---|---|---|
061bfa06 HW |
1 | /* |
2 | * Copyright 2017 Advanced Micro Devices, Inc. | |
3 | * | |
4 | * Permission is hereby granted, free of charge, to any person obtaining a | |
5 | * copy of this software and associated documentation files (the "Software"), | |
6 | * to deal in the Software without restriction, including without limitation | |
7 | * the rights to use, copy, modify, merge, publish, distribute, sublicense, | |
8 | * and/or sell copies of the Software, and to permit persons to whom the | |
9 | * Software is furnished to do so, subject to the following conditions: | |
10 | * | |
11 | * The above copyright notice and this permission notice shall be included in | |
12 | * all copies or substantial portions of the Software. | |
13 | * | |
14 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | |
15 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | |
16 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL | |
17 | * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR | |
18 | * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, | |
19 | * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR | |
20 | * OTHER DEALINGS IN THE SOFTWARE. | |
21 | * | |
22 | * Authors: AMD | |
23 | * | |
24 | */ | |
25 | #ifndef __DISPLAY_MODE_LIB_H__ | |
26 | #define __DISPLAY_MODE_LIB_H__ | |
27 | ||
5aa82e35 RS |
28 | #include "dm_services.h" |
29 | #include "dc_features.h" | |
30 | #include "display_mode_structs.h" | |
31 | #include "display_mode_enums.h" | |
728c0698 | 32 | #include "display_mode_vba.h" |
061bfa06 HW |
33 | |
34 | enum dml_project { | |
35 | DML_PROJECT_UNDEFINED, | |
728c0698 | 36 | DML_PROJECT_RAVEN1, |
728c0698 | 37 | DML_PROJECT_NAVI10, |
057fc695 | 38 | DML_PROJECT_NAVI10v2, |
b04641a3 | 39 | DML_PROJECT_DCN21, |
728c0698 HW |
40 | }; |
41 | ||
776c1f56 LL |
42 | struct display_mode_lib; |
43 | ||
728c0698 HW |
44 | struct dml_funcs { |
45 | void (*rq_dlg_get_dlg_reg)( | |
46 | struct display_mode_lib *mode_lib, | |
47 | display_dlg_regs_st *dlg_regs, | |
48 | display_ttu_regs_st *ttu_regs, | |
49 | display_e2e_pipe_params_st *e2e_pipe_param, | |
50 | const unsigned int num_pipes, | |
51 | const unsigned int pipe_idx, | |
52 | const bool cstate_en, | |
f82c916c CL |
53 | const bool pstate_en, |
54 | const bool vm_en, | |
55 | const bool ignore_viewport_pos, | |
56 | const bool immediate_flip_support); | |
728c0698 HW |
57 | void (*rq_dlg_get_rq_reg)( |
58 | struct display_mode_lib *mode_lib, | |
59 | display_rq_regs_st *rq_regs, | |
60 | const display_pipe_params_st pipe_param); | |
61 | void (*recalculate)(struct display_mode_lib *mode_lib); | |
62 | void (*validate)(struct display_mode_lib *mode_lib); | |
061bfa06 HW |
63 | }; |
64 | ||
65 | struct display_mode_lib { | |
66 | struct _vcs_dpi_ip_params_st ip; | |
67 | struct _vcs_dpi_soc_bounding_box_st soc; | |
061bfa06 | 68 | enum dml_project project; |
728c0698 | 69 | struct vba_vars_st vba; |
061bfa06 | 70 | struct dal_logger *logger; |
728c0698 | 71 | struct dml_funcs funcs; |
061bfa06 HW |
72 | }; |
73 | ||
fbaf207f | 74 | void dml_init_instance(struct display_mode_lib *lib, |
0f1a6ad7 JL |
75 | const struct _vcs_dpi_soc_bounding_box_st *soc_bb, |
76 | const struct _vcs_dpi_ip_params_st *ip_params, | |
77 | enum dml_project project); | |
78 | ||
38684e46 EB |
79 | const char *dml_get_status_message(enum dm_validation_status status); |
80 | ||
061bfa06 | 81 | #endif |