hc
2024-01-03 2f7c68cb55ecb7331f2381deb497c27155f32faf
kernel/drivers/gpu/drm/amd/display/dc/dml/dcn30/display_rq_dlg_calc_30.c
....@@ -747,7 +747,7 @@
747747 display_data_rq_sizing_params_st *rq_sizing_param,
748748 display_data_rq_dlg_params_st *rq_dlg_param,
749749 display_data_rq_misc_params_st *rq_misc_param,
750
- const display_pipe_params_st pipe_param,
750
+ const display_pipe_params_st *pipe_param,
751751 bool is_chroma,
752752 bool is_alpha)
753753 {
....@@ -761,32 +761,32 @@
761761
762762 // FIXME check if ppe apply for both luma and chroma in 422 case
763763 if (is_chroma | is_alpha) {
764
- vp_width = pipe_param.src.viewport_width_c / ppe;
765
- vp_height = pipe_param.src.viewport_height_c;
766
- data_pitch = pipe_param.src.data_pitch_c;
767
- meta_pitch = pipe_param.src.meta_pitch_c;
768
- surface_height = pipe_param.src.surface_height_y / 2.0;
764
+ vp_width = pipe_param->src.viewport_width_c / ppe;
765
+ vp_height = pipe_param->src.viewport_height_c;
766
+ data_pitch = pipe_param->src.data_pitch_c;
767
+ meta_pitch = pipe_param->src.meta_pitch_c;
768
+ surface_height = pipe_param->src.surface_height_y / 2.0;
769769 } else {
770
- vp_width = pipe_param.src.viewport_width / ppe;
771
- vp_height = pipe_param.src.viewport_height;
772
- data_pitch = pipe_param.src.data_pitch;
773
- meta_pitch = pipe_param.src.meta_pitch;
774
- surface_height = pipe_param.src.surface_height_y;
770
+ vp_width = pipe_param->src.viewport_width / ppe;
771
+ vp_height = pipe_param->src.viewport_height;
772
+ data_pitch = pipe_param->src.data_pitch;
773
+ meta_pitch = pipe_param->src.meta_pitch;
774
+ surface_height = pipe_param->src.surface_height_y;
775775 }
776776
777
- if (pipe_param.dest.odm_combine) {
777
+ if (pipe_param->dest.odm_combine) {
778778 unsigned int access_dir = 0;
779779 unsigned int full_src_vp_width = 0;
780780 unsigned int hactive_odm = 0;
781781 unsigned int src_hactive_odm = 0;
782
- access_dir = (pipe_param.src.source_scan == dm_vert); // vp access direction: horizontal or vertical accessed
783
- hactive_odm = pipe_param.dest.hactive / ((unsigned int)pipe_param.dest.odm_combine*2);
782
+ access_dir = (pipe_param->src.source_scan == dm_vert); // vp access direction: horizontal or vertical accessed
783
+ hactive_odm = pipe_param->dest.hactive / ((unsigned int) pipe_param->dest.odm_combine*2);
784784 if (is_chroma) {
785
- full_src_vp_width = pipe_param.scale_ratio_depth.hscl_ratio_c * pipe_param.dest.full_recout_width;
786
- src_hactive_odm = pipe_param.scale_ratio_depth.hscl_ratio_c * hactive_odm;
785
+ full_src_vp_width = pipe_param->scale_ratio_depth.hscl_ratio_c * pipe_param->dest.full_recout_width;
786
+ src_hactive_odm = pipe_param->scale_ratio_depth.hscl_ratio_c * hactive_odm;
787787 } else {
788
- full_src_vp_width = pipe_param.scale_ratio_depth.hscl_ratio * pipe_param.dest.full_recout_width;
789
- src_hactive_odm = pipe_param.scale_ratio_depth.hscl_ratio * hactive_odm;
788
+ full_src_vp_width = pipe_param->scale_ratio_depth.hscl_ratio * pipe_param->dest.full_recout_width;
789
+ src_hactive_odm = pipe_param->scale_ratio_depth.hscl_ratio * hactive_odm;
790790 }
791791
792792 if (access_dir == 0) {
....@@ -815,7 +815,7 @@
815815 rq_sizing_param->meta_chunk_bytes = 2048;
816816 rq_sizing_param->min_meta_chunk_bytes = 256;
817817
818
- if (pipe_param.src.hostvm)
818
+ if (pipe_param->src.hostvm)
819819 rq_sizing_param->mpte_group_bytes = 512;
820820 else
821821 rq_sizing_param->mpte_group_bytes = 2048;
....@@ -828,28 +828,28 @@
828828 vp_height,
829829 data_pitch,
830830 meta_pitch,
831
- pipe_param.src.source_format,
832
- pipe_param.src.sw_mode,
833
- pipe_param.src.macro_tile_size,
834
- pipe_param.src.source_scan,
835
- pipe_param.src.hostvm,
831
+ pipe_param->src.source_format,
832
+ pipe_param->src.sw_mode,
833
+ pipe_param->src.macro_tile_size,
834
+ pipe_param->src.source_scan,
835
+ pipe_param->src.hostvm,
836836 is_chroma,
837837 surface_height);
838838 }
839839
840840 static void dml_rq_dlg_get_rq_params(struct display_mode_lib *mode_lib,
841841 display_rq_params_st *rq_param,
842
- const display_pipe_params_st pipe_param)
842
+ const display_pipe_params_st *pipe_param)
843843 {
844844 // get param for luma surface
845
- rq_param->yuv420 = pipe_param.src.source_format == dm_420_8
846
- || pipe_param.src.source_format == dm_420_10
847
- || pipe_param.src.source_format == dm_rgbe_alpha
848
- || pipe_param.src.source_format == dm_420_12;
845
+ rq_param->yuv420 = pipe_param->src.source_format == dm_420_8
846
+ || pipe_param->src.source_format == dm_420_10
847
+ || pipe_param->src.source_format == dm_rgbe_alpha
848
+ || pipe_param->src.source_format == dm_420_12;
849849
850
- rq_param->yuv420_10bpc = pipe_param.src.source_format == dm_420_10;
850
+ rq_param->yuv420_10bpc = pipe_param->src.source_format == dm_420_10;
851851
852
- rq_param->rgbe_alpha = (pipe_param.src.source_format == dm_rgbe_alpha)?1:0;
852
+ rq_param->rgbe_alpha = (pipe_param->src.source_format == dm_rgbe_alpha)?1:0;
853853
854854 get_surf_rq_param(mode_lib,
855855 &(rq_param->sizing.rq_l),
....@@ -859,7 +859,7 @@
859859 0,
860860 0);
861861
862
- if (is_dual_plane((enum source_format_class)(pipe_param.src.source_format))) {
862
+ if (is_dual_plane((enum source_format_class)(pipe_param->src.source_format))) {
863863 // get param for chroma surface
864864 get_surf_rq_param(mode_lib,
865865 &(rq_param->sizing.rq_c),
....@@ -871,13 +871,13 @@
871871 }
872872
873873 // calculate how to split the det buffer space between luma and chroma
874
- handle_det_buf_split(mode_lib, rq_param, pipe_param.src);
874
+ handle_det_buf_split(mode_lib, rq_param, pipe_param->src);
875875 print__rq_params_st(mode_lib, *rq_param);
876876 }
877877
878878 void dml30_rq_dlg_get_rq_reg(struct display_mode_lib *mode_lib,
879879 display_rq_regs_st *rq_regs,
880
- const display_pipe_params_st pipe_param)
880
+ const display_pipe_params_st *pipe_param)
881881 {
882882 display_rq_params_st rq_param = { 0 };
883883
....@@ -1831,7 +1831,7 @@
18311831 void dml30_rq_dlg_get_dlg_reg(struct display_mode_lib *mode_lib,
18321832 display_dlg_regs_st *dlg_regs,
18331833 display_ttu_regs_st *ttu_regs,
1834
- display_e2e_pipe_params_st *e2e_pipe_param,
1834
+ const display_e2e_pipe_params_st *e2e_pipe_param,
18351835 const unsigned int num_pipes,
18361836 const unsigned int pipe_idx,
18371837 const bool cstate_en,
....@@ -1866,7 +1866,7 @@
18661866 // system parameter calculation done
18671867
18681868 dml_print("DML_DLG: Calculation for pipe[%d] start\n\n", pipe_idx);
1869
- dml_rq_dlg_get_rq_params(mode_lib, &rq_param, e2e_pipe_param[pipe_idx].pipe);
1869
+ dml_rq_dlg_get_rq_params(mode_lib, &rq_param, &e2e_pipe_param[pipe_idx].pipe);
18701870 dml_rq_dlg_get_dlg_params(mode_lib,
18711871 e2e_pipe_param,
18721872 num_pipes,