context->bw_ctx.dml.funcs.rq_dlg_get_rq_reg(&context->bw_ctx.dml,
                                &context->res_ctx.pipe_ctx[i].rq_regs,
-                               pipes[pipe_idx].pipe);
+                               &pipes[pipe_idx].pipe);
                pipe_idx++;
        }
 }
 
 
 void dml20_rq_dlg_get_rq_reg(struct display_mode_lib *mode_lib,
                display_rq_regs_st *rq_regs,
-               const display_pipe_params_st pipe_param)
+               const display_pipe_params_st *pipe_param)
 {
        display_rq_params_st rq_param = {0};
 
        memset(rq_regs, 0, sizeof(*rq_regs));
-       dml20_rq_dlg_get_rq_params(mode_lib, &rq_param, pipe_param.src);
+       dml20_rq_dlg_get_rq_params(mode_lib, &rq_param, pipe_param->src);
        extract_rq_regs(mode_lib, rq_regs, rq_param);
 
        print__rq_regs_st(mode_lib, *rq_regs);
 void dml20_rq_dlg_get_dlg_reg(struct display_mode_lib *mode_lib,
                display_dlg_regs_st *dlg_regs,
                display_ttu_regs_st *ttu_regs,
-               display_e2e_pipe_params_st *e2e_pipe_param,
+               const display_e2e_pipe_params_st *e2e_pipe_param,
                const unsigned int num_pipes,
                const unsigned int pipe_idx,
                const bool cstate_en,
 
 void dml20_rq_dlg_get_rq_reg(
                struct display_mode_lib *mode_lib,
                display_rq_regs_st *rq_regs,
-               const display_pipe_params_st pipe_param);
+               const display_pipe_params_st *pipe_param);
 
 
 // Function: dml_rq_dlg_get_dlg_reg
                struct display_mode_lib *mode_lib,
                display_dlg_regs_st *dlg_regs,
                display_ttu_regs_st *ttu_regs,
-               display_e2e_pipe_params_st *e2e_pipe_param,
+               const display_e2e_pipe_params_st *e2e_pipe_param,
                const unsigned int num_pipes,
                const unsigned int pipe_idx,
                const bool cstate_en,
 
 
 void dml20v2_rq_dlg_get_rq_reg(struct display_mode_lib *mode_lib,
                display_rq_regs_st *rq_regs,
-               const display_pipe_params_st pipe_param)
+               const display_pipe_params_st *pipe_param)
 {
        display_rq_params_st rq_param = {0};
 
        memset(rq_regs, 0, sizeof(*rq_regs));
-       dml20v2_rq_dlg_get_rq_params(mode_lib, &rq_param, pipe_param.src);
+       dml20v2_rq_dlg_get_rq_params(mode_lib, &rq_param, pipe_param->src);
        extract_rq_regs(mode_lib, rq_regs, rq_param);
 
        print__rq_regs_st(mode_lib, *rq_regs);
 void dml20v2_rq_dlg_get_dlg_reg(struct display_mode_lib *mode_lib,
                display_dlg_regs_st *dlg_regs,
                display_ttu_regs_st *ttu_regs,
-               display_e2e_pipe_params_st *e2e_pipe_param,
+               const display_e2e_pipe_params_st *e2e_pipe_param,
                const unsigned int num_pipes,
                const unsigned int pipe_idx,
                const bool cstate_en,
 
 void dml20v2_rq_dlg_get_rq_reg(
                struct display_mode_lib *mode_lib,
                display_rq_regs_st *rq_regs,
-               const display_pipe_params_st pipe_param);
+               const display_pipe_params_st *pipe_param);
 
 
 // Function: dml_rq_dlg_get_dlg_reg
                struct display_mode_lib *mode_lib,
                display_dlg_regs_st *dlg_regs,
                display_ttu_regs_st *ttu_regs,
-               display_e2e_pipe_params_st *e2e_pipe_param,
+               const display_e2e_pipe_params_st *e2e_pipe_param,
                const unsigned int num_pipes,
                const unsigned int pipe_idx,
                const bool cstate_en,
 
                display_data_rq_sizing_params_st *rq_sizing_param,
                display_data_rq_dlg_params_st *rq_dlg_param,
                display_data_rq_misc_params_st *rq_misc_param,
-               const display_pipe_params_st pipe_param,
+               const display_pipe_params_st *pipe_param,
                bool is_chroma)
 {
        bool mode_422 = false;
 
        // FIXME check if ppe apply for both luma and chroma in 422 case
        if (is_chroma) {
-               vp_width = pipe_param.src.viewport_width_c / ppe;
-               vp_height = pipe_param.src.viewport_height_c;
-               data_pitch = pipe_param.src.data_pitch_c;
-               meta_pitch = pipe_param.src.meta_pitch_c;
+               vp_width = pipe_param->src.viewport_width_c / ppe;
+               vp_height = pipe_param->src.viewport_height_c;
+               data_pitch = pipe_param->src.data_pitch_c;
+               meta_pitch = pipe_param->src.meta_pitch_c;
        } else {
-               vp_width = pipe_param.src.viewport_width / ppe;
-               vp_height = pipe_param.src.viewport_height;
-               data_pitch = pipe_param.src.data_pitch;
-               meta_pitch = pipe_param.src.meta_pitch;
+               vp_width = pipe_param->src.viewport_width / ppe;
+               vp_height = pipe_param->src.viewport_height;
+               data_pitch = pipe_param->src.data_pitch;
+               meta_pitch = pipe_param->src.meta_pitch;
        }
 
-       if (pipe_param.dest.odm_combine) {
+       if (pipe_param->dest.odm_combine) {
                unsigned int access_dir;
                unsigned int full_src_vp_width;
                unsigned int hactive_half;
                unsigned int src_hactive_half;
-               access_dir = (pipe_param.src.source_scan == dm_vert); // vp access direction: horizontal or vertical accessed
-               hactive_half  = pipe_param.dest.hactive / 2;
+               access_dir = (pipe_param->src.source_scan == dm_vert); // vp access direction: horizontal or vertical accessed
+               hactive_half  = pipe_param->dest.hactive / 2;
                if (is_chroma) {
-                       full_src_vp_width = pipe_param.scale_ratio_depth.hscl_ratio_c * pipe_param.dest.full_recout_width;
-                       src_hactive_half  = pipe_param.scale_ratio_depth.hscl_ratio_c * hactive_half;
+                       full_src_vp_width = pipe_param->scale_ratio_depth.hscl_ratio_c * pipe_param->dest.full_recout_width;
+                       src_hactive_half  = pipe_param->scale_ratio_depth.hscl_ratio_c * hactive_half;
                } else {
-                       full_src_vp_width = pipe_param.scale_ratio_depth.hscl_ratio * pipe_param.dest.full_recout_width;
-                       src_hactive_half  = pipe_param.scale_ratio_depth.hscl_ratio * hactive_half;
+                       full_src_vp_width = pipe_param->scale_ratio_depth.hscl_ratio * pipe_param->dest.full_recout_width;
+                       src_hactive_half  = pipe_param->scale_ratio_depth.hscl_ratio * hactive_half;
                }
 
                if (access_dir == 0) {
        rq_sizing_param->meta_chunk_bytes = 2048;
        rq_sizing_param->min_meta_chunk_bytes = 256;
 
-       if (pipe_param.src.hostvm)
+       if (pipe_param->src.hostvm)
                rq_sizing_param->mpte_group_bytes = 512;
        else
                rq_sizing_param->mpte_group_bytes = 2048;
                        vp_height,
                        data_pitch,
                        meta_pitch,
-                       pipe_param.src.source_format,
-                       pipe_param.src.sw_mode,
-                       pipe_param.src.macro_tile_size,
-                       pipe_param.src.source_scan,
-                       pipe_param.src.hostvm,
+                       pipe_param->src.source_format,
+                       pipe_param->src.sw_mode,
+                       pipe_param->src.macro_tile_size,
+                       pipe_param->src.source_scan,
+                       pipe_param->src.hostvm,
                        is_chroma);
 }
 
 static void dml_rq_dlg_get_rq_params(
                struct display_mode_lib *mode_lib,
                display_rq_params_st *rq_param,
-               const display_pipe_params_st pipe_param)
+               const display_pipe_params_st *pipe_param)
 {
        // get param for luma surface
-       rq_param->yuv420 = pipe_param.src.source_format == dm_420_8
-                       || pipe_param.src.source_format == dm_420_10;
-       rq_param->yuv420_10bpc = pipe_param.src.source_format == dm_420_10;
+       rq_param->yuv420 = pipe_param->src.source_format == dm_420_8
+                       || pipe_param->src.source_format == dm_420_10;
+       rq_param->yuv420_10bpc = pipe_param->src.source_format == dm_420_10;
 
        get_surf_rq_param(
                        mode_lib,
                        pipe_param,
                        0);
 
-       if (is_dual_plane((enum source_format_class) (pipe_param.src.source_format))) {
+       if (is_dual_plane((enum source_format_class) (pipe_param->src.source_format))) {
                // get param for chroma surface
                get_surf_rq_param(
                                mode_lib,
        }
 
        // calculate how to split the det buffer space between luma and chroma
-       handle_det_buf_split(mode_lib, rq_param, pipe_param.src);
+       handle_det_buf_split(mode_lib, rq_param, pipe_param->src);
        print__rq_params_st(mode_lib, *rq_param);
 }
 
 void dml21_rq_dlg_get_rq_reg(
                struct display_mode_lib *mode_lib,
                display_rq_regs_st *rq_regs,
-               const display_pipe_params_st pipe_param)
+               const display_pipe_params_st *pipe_param)
 {
        display_rq_params_st rq_param = {0};
 
                struct display_mode_lib *mode_lib,
                display_dlg_regs_st *dlg_regs,
                display_ttu_regs_st *ttu_regs,
-               display_e2e_pipe_params_st *e2e_pipe_param,
+               const display_e2e_pipe_params_st *e2e_pipe_param,
                const unsigned int num_pipes,
                const unsigned int pipe_idx,
                const bool cstate_en,
        // system parameter calculation done
 
        dml_print("DML_DLG: Calculation for pipe[%d] start\n\n", pipe_idx);
-       dml_rq_dlg_get_rq_params(mode_lib, &rq_param, e2e_pipe_param[pipe_idx].pipe);
+       dml_rq_dlg_get_rq_params(mode_lib, &rq_param, &e2e_pipe_param[pipe_idx].pipe);
        dml_rq_dlg_get_dlg_params(
                        mode_lib,
                        e2e_pipe_param,
 
 void dml21_rq_dlg_get_rq_reg(
                struct display_mode_lib *mode_lib,
                display_rq_regs_st *rq_regs,
-               const display_pipe_params_st pipe_param);
+               const display_pipe_params_st *pipe_param);
 
 // Function: dml_rq_dlg_get_dlg_reg
 //   Calculate and return DLG and TTU register struct given the system setting
                struct display_mode_lib *mode_lib,
                display_dlg_regs_st *dlg_regs,
                display_ttu_regs_st *ttu_regs,
-               display_e2e_pipe_params_st *e2e_pipe_param,
+               const display_e2e_pipe_params_st *e2e_pipe_param,
                const unsigned int num_pipes,
                const unsigned int pipe_idx,
                const bool cstate_en,
 
        display_data_rq_sizing_params_st *rq_sizing_param,
        display_data_rq_dlg_params_st *rq_dlg_param,
        display_data_rq_misc_params_st *rq_misc_param,
-       const display_pipe_params_st pipe_param,
+       const display_pipe_params_st *pipe_param,
        bool is_chroma,
        bool is_alpha)
 {
 
        // FIXME check if ppe apply for both luma and chroma in 422 case
        if (is_chroma | is_alpha) {
-               vp_width = pipe_param.src.viewport_width_c / ppe;
-               vp_height = pipe_param.src.viewport_height_c;
-               data_pitch = pipe_param.src.data_pitch_c;
-               meta_pitch = pipe_param.src.meta_pitch_c;
-               surface_height = pipe_param.src.surface_height_y / 2.0;
+               vp_width = pipe_param->src.viewport_width_c / ppe;
+               vp_height = pipe_param->src.viewport_height_c;
+               data_pitch = pipe_param->src.data_pitch_c;
+               meta_pitch = pipe_param->src.meta_pitch_c;
+               surface_height = pipe_param->src.surface_height_y / 2.0;
        } else {
-               vp_width = pipe_param.src.viewport_width / ppe;
-               vp_height = pipe_param.src.viewport_height;
-               data_pitch = pipe_param.src.data_pitch;
-               meta_pitch = pipe_param.src.meta_pitch;
-               surface_height = pipe_param.src.surface_height_y;
+               vp_width = pipe_param->src.viewport_width / ppe;
+               vp_height = pipe_param->src.viewport_height;
+               data_pitch = pipe_param->src.data_pitch;
+               meta_pitch = pipe_param->src.meta_pitch;
+               surface_height = pipe_param->src.surface_height_y;
        }
 
-       if (pipe_param.dest.odm_combine) {
+       if (pipe_param->dest.odm_combine) {
                unsigned int access_dir = 0;
                unsigned int full_src_vp_width = 0;
                unsigned int hactive_odm = 0;
                unsigned int src_hactive_odm = 0;
-               access_dir = (pipe_param.src.source_scan == dm_vert); // vp access direction: horizontal or vertical accessed
-               hactive_odm  = pipe_param.dest.hactive / ((unsigned int)pipe_param.dest.odm_combine*2);
+               access_dir = (pipe_param->src.source_scan == dm_vert); // vp access direction: horizontal or vertical accessed
+               hactive_odm  = pipe_param->dest.hactive / ((unsigned int) pipe_param->dest.odm_combine*2);
                if (is_chroma) {
-                       full_src_vp_width = pipe_param.scale_ratio_depth.hscl_ratio_c * pipe_param.dest.full_recout_width;
-                       src_hactive_odm  = pipe_param.scale_ratio_depth.hscl_ratio_c * hactive_odm;
+                       full_src_vp_width = pipe_param->scale_ratio_depth.hscl_ratio_c * pipe_param->dest.full_recout_width;
+                       src_hactive_odm  = pipe_param->scale_ratio_depth.hscl_ratio_c * hactive_odm;
                } else {
-                       full_src_vp_width = pipe_param.scale_ratio_depth.hscl_ratio * pipe_param.dest.full_recout_width;
-                       src_hactive_odm  = pipe_param.scale_ratio_depth.hscl_ratio * hactive_odm;
+                       full_src_vp_width = pipe_param->scale_ratio_depth.hscl_ratio * pipe_param->dest.full_recout_width;
+                       src_hactive_odm  = pipe_param->scale_ratio_depth.hscl_ratio * hactive_odm;
                }
 
                if (access_dir == 0) {
        rq_sizing_param->meta_chunk_bytes = 2048;
        rq_sizing_param->min_meta_chunk_bytes = 256;
 
-       if (pipe_param.src.hostvm)
+       if (pipe_param->src.hostvm)
                rq_sizing_param->mpte_group_bytes = 512;
        else
                rq_sizing_param->mpte_group_bytes = 2048;
                vp_height,
                data_pitch,
                meta_pitch,
-               pipe_param.src.source_format,
-               pipe_param.src.sw_mode,
-               pipe_param.src.macro_tile_size,
-               pipe_param.src.source_scan,
-               pipe_param.src.hostvm,
+               pipe_param->src.source_format,
+               pipe_param->src.sw_mode,
+               pipe_param->src.macro_tile_size,
+               pipe_param->src.source_scan,
+               pipe_param->src.hostvm,
                is_chroma,
                surface_height);
 }
 
 static void dml_rq_dlg_get_rq_params(struct display_mode_lib *mode_lib,
        display_rq_params_st *rq_param,
-       const display_pipe_params_st pipe_param)
+       const display_pipe_params_st *pipe_param)
 {
        // get param for luma surface
-       rq_param->yuv420 = pipe_param.src.source_format == dm_420_8
-       || pipe_param.src.source_format == dm_420_10
-       || pipe_param.src.source_format == dm_rgbe_alpha
-       || pipe_param.src.source_format == dm_420_12;
+       rq_param->yuv420 = pipe_param->src.source_format == dm_420_8
+       || pipe_param->src.source_format == dm_420_10
+       || pipe_param->src.source_format == dm_rgbe_alpha
+       || pipe_param->src.source_format == dm_420_12;
 
-       rq_param->yuv420_10bpc = pipe_param.src.source_format == dm_420_10;
+       rq_param->yuv420_10bpc = pipe_param->src.source_format == dm_420_10;
 
-       rq_param->rgbe_alpha = (pipe_param.src.source_format == dm_rgbe_alpha)?1:0;
+       rq_param->rgbe_alpha = (pipe_param->src.source_format == dm_rgbe_alpha)?1:0;
 
        get_surf_rq_param(mode_lib,
                &(rq_param->sizing.rq_l),
                0,
                0);
 
-       if (is_dual_plane((enum source_format_class)(pipe_param.src.source_format))) {
+       if (is_dual_plane((enum source_format_class)(pipe_param->src.source_format))) {
                // get param for chroma surface
                get_surf_rq_param(mode_lib,
                        &(rq_param->sizing.rq_c),
        }
 
        // calculate how to split the det buffer space between luma and chroma
-       handle_det_buf_split(mode_lib, rq_param, pipe_param.src);
+       handle_det_buf_split(mode_lib, rq_param, pipe_param->src);
        print__rq_params_st(mode_lib, *rq_param);
 }
 
 void dml30_rq_dlg_get_rq_reg(struct display_mode_lib *mode_lib,
        display_rq_regs_st *rq_regs,
-       const display_pipe_params_st pipe_param)
+       const display_pipe_params_st *pipe_param)
 {
        display_rq_params_st rq_param = { 0 };
 
 void dml30_rq_dlg_get_dlg_reg(struct display_mode_lib *mode_lib,
        display_dlg_regs_st *dlg_regs,
        display_ttu_regs_st *ttu_regs,
-       display_e2e_pipe_params_st *e2e_pipe_param,
+       const display_e2e_pipe_params_st *e2e_pipe_param,
        const unsigned int num_pipes,
        const unsigned int pipe_idx,
        const bool cstate_en,
        // system parameter calculation done
 
        dml_print("DML_DLG: Calculation for pipe[%d] start\n\n", pipe_idx);
-       dml_rq_dlg_get_rq_params(mode_lib, &rq_param, e2e_pipe_param[pipe_idx].pipe);
+       dml_rq_dlg_get_rq_params(mode_lib, &rq_param, &e2e_pipe_param[pipe_idx].pipe);
        dml_rq_dlg_get_dlg_params(mode_lib,
                e2e_pipe_param,
                num_pipes,
 
 //            See also: <display_rq_regs_st>
 void dml30_rq_dlg_get_rq_reg(struct display_mode_lib *mode_lib,
                display_rq_regs_st *rq_regs,
-               const display_pipe_params_st pipe_param);
+               const display_pipe_params_st *pipe_param);
 
 // Function: dml_rq_dlg_get_dlg_reg
 //   Calculate and return DLG and TTU register struct given the system setting
 void dml30_rq_dlg_get_dlg_reg(struct display_mode_lib             *mode_lib,
                display_dlg_regs_st          *dlg_regs,
                display_ttu_regs_st          *ttu_regs,
-               display_e2e_pipe_params_st   *e2e_pipe_param,
+               const display_e2e_pipe_params_st   *e2e_pipe_param,
                const unsigned int            num_pipes,
                const unsigned int            pipe_idx,
                const bool                    cstate_en,
 
                display_data_rq_sizing_params_st *rq_sizing_param,
                display_data_rq_dlg_params_st *rq_dlg_param,
                display_data_rq_misc_params_st *rq_misc_param,
-               const display_pipe_params_st pipe_param,
+               const display_pipe_params_st *pipe_param,
                bool is_chroma,
                bool is_alpha)
 {
 
        // FIXME check if ppe apply for both luma and chroma in 422 case
        if (is_chroma | is_alpha) {
-               vp_width = pipe_param.src.viewport_width_c / ppe;
-               vp_height = pipe_param.src.viewport_height_c;
-               data_pitch = pipe_param.src.data_pitch_c;
-               meta_pitch = pipe_param.src.meta_pitch_c;
-               surface_height = pipe_param.src.surface_height_y / 2.0;
+               vp_width = pipe_param->src.viewport_width_c / ppe;
+               vp_height = pipe_param->src.viewport_height_c;
+               data_pitch = pipe_param->src.data_pitch_c;
+               meta_pitch = pipe_param->src.meta_pitch_c;
+               surface_height = pipe_param->src.surface_height_y / 2.0;
        } else {
-               vp_width = pipe_param.src.viewport_width / ppe;
-               vp_height = pipe_param.src.viewport_height;
-               data_pitch = pipe_param.src.data_pitch;
-               meta_pitch = pipe_param.src.meta_pitch;
-               surface_height = pipe_param.src.surface_height_y;
+               vp_width = pipe_param->src.viewport_width / ppe;
+               vp_height = pipe_param->src.viewport_height;
+               data_pitch = pipe_param->src.data_pitch;
+               meta_pitch = pipe_param->src.meta_pitch;
+               surface_height = pipe_param->src.surface_height_y;
        }
 
-       if (pipe_param.dest.odm_combine) {
+       if (pipe_param->dest.odm_combine) {
                unsigned int access_dir;
                unsigned int full_src_vp_width;
                unsigned int hactive_odm;
                unsigned int src_hactive_odm;
 
-               access_dir = (pipe_param.src.source_scan == dm_vert); // vp access direction: horizontal or vertical accessed
-               hactive_odm = pipe_param.dest.hactive / ((unsigned int) pipe_param.dest.odm_combine * 2);
+               access_dir = (pipe_param->src.source_scan == dm_vert); // vp access direction: horizontal or vertical accessed
+               hactive_odm = pipe_param->dest.hactive / ((unsigned int) pipe_param->dest.odm_combine * 2);
                if (is_chroma) {
-                       full_src_vp_width = pipe_param.scale_ratio_depth.hscl_ratio_c * pipe_param.dest.full_recout_width;
-                       src_hactive_odm = pipe_param.scale_ratio_depth.hscl_ratio_c * hactive_odm;
+                       full_src_vp_width = pipe_param->scale_ratio_depth.hscl_ratio_c * pipe_param->dest.full_recout_width;
+                       src_hactive_odm = pipe_param->scale_ratio_depth.hscl_ratio_c * hactive_odm;
                } else {
-                       full_src_vp_width = pipe_param.scale_ratio_depth.hscl_ratio * pipe_param.dest.full_recout_width;
-                       src_hactive_odm = pipe_param.scale_ratio_depth.hscl_ratio * hactive_odm;
+                       full_src_vp_width = pipe_param->scale_ratio_depth.hscl_ratio * pipe_param->dest.full_recout_width;
+                       src_hactive_odm = pipe_param->scale_ratio_depth.hscl_ratio * hactive_odm;
                }
 
                if (access_dir == 0) {
        rq_sizing_param->meta_chunk_bytes = 2048;
        rq_sizing_param->min_meta_chunk_bytes = 256;
 
-       if (pipe_param.src.hostvm)
+       if (pipe_param->src.hostvm)
                rq_sizing_param->mpte_group_bytes = 512;
        else
                rq_sizing_param->mpte_group_bytes = 2048;
                        vp_height,
                        data_pitch,
                        meta_pitch,
-                       pipe_param.src.source_format,
-                       pipe_param.src.sw_mode,
-                       pipe_param.src.macro_tile_size,
-                       pipe_param.src.source_scan,
-                       pipe_param.src.hostvm,
+                       pipe_param->src.source_format,
+                       pipe_param->src.sw_mode,
+                       pipe_param->src.macro_tile_size,
+                       pipe_param->src.source_scan,
+                       pipe_param->src.hostvm,
                        is_chroma,
                        surface_height);
 }
 
-static void dml_rq_dlg_get_rq_params(struct display_mode_lib *mode_lib, display_rq_params_st *rq_param, const display_pipe_params_st pipe_param)
+static void dml_rq_dlg_get_rq_params(struct display_mode_lib *mode_lib, display_rq_params_st *rq_param, const display_pipe_params_st *pipe_param)
 {
        // get param for luma surface
-       rq_param->yuv420 = pipe_param.src.source_format == dm_420_8 || pipe_param.src.source_format == dm_420_10 || pipe_param.src.source_format == dm_rgbe_alpha
-                       || pipe_param.src.source_format == dm_420_12;
+       rq_param->yuv420 = pipe_param->src.source_format == dm_420_8 || pipe_param->src.source_format == dm_420_10 || pipe_param->src.source_format == dm_rgbe_alpha
+                       || pipe_param->src.source_format == dm_420_12;
 
-       rq_param->yuv420_10bpc = pipe_param.src.source_format == dm_420_10;
+       rq_param->yuv420_10bpc = pipe_param->src.source_format == dm_420_10;
 
-       rq_param->rgbe_alpha = (pipe_param.src.source_format == dm_rgbe_alpha) ? 1 : 0;
+       rq_param->rgbe_alpha = (pipe_param->src.source_format == dm_rgbe_alpha) ? 1 : 0;
 
        get_surf_rq_param(mode_lib, &(rq_param->sizing.rq_l), &(rq_param->dlg.rq_l), &(rq_param->misc.rq_l), pipe_param, 0, 0);
 
-       if (is_dual_plane((enum source_format_class) (pipe_param.src.source_format))) {
+       if (is_dual_plane((enum source_format_class) (pipe_param->src.source_format))) {
                // get param for chroma surface
                get_surf_rq_param(mode_lib, &(rq_param->sizing.rq_c), &(rq_param->dlg.rq_c), &(rq_param->misc.rq_c), pipe_param, 1, rq_param->rgbe_alpha);
        }
 
        // calculate how to split the det buffer space between luma and chroma
-       handle_det_buf_split(mode_lib, rq_param, pipe_param.src);
+       handle_det_buf_split(mode_lib, rq_param, pipe_param->src);
        print__rq_params_st(mode_lib, *rq_param);
 }
 
-void dml31_rq_dlg_get_rq_reg(struct display_mode_lib *mode_lib, display_rq_regs_st *rq_regs, const display_pipe_params_st pipe_param)
+void dml31_rq_dlg_get_rq_reg(struct display_mode_lib *mode_lib, display_rq_regs_st *rq_regs, const display_pipe_params_st *pipe_param)
 {
        display_rq_params_st rq_param = {0};
 
                struct display_mode_lib *mode_lib,
                display_dlg_regs_st *dlg_regs,
                display_ttu_regs_st *ttu_regs,
-               display_e2e_pipe_params_st *e2e_pipe_param,
+               const display_e2e_pipe_params_st *e2e_pipe_param,
                const unsigned int num_pipes,
                const unsigned int pipe_idx,
                const bool cstate_en,
        // system parameter calculation done
 
        dml_print("DML_DLG: Calculation for pipe[%d] start\n\n", pipe_idx);
-       dml_rq_dlg_get_rq_params(mode_lib, &rq_param, e2e_pipe_param[pipe_idx].pipe);
+       dml_rq_dlg_get_rq_params(mode_lib, &rq_param, &e2e_pipe_param[pipe_idx].pipe);
        dml_rq_dlg_get_dlg_params(
                        mode_lib,
                        e2e_pipe_param,
 
 //            See also: <display_rq_regs_st>
 void dml31_rq_dlg_get_rq_reg(struct display_mode_lib *mode_lib,
                display_rq_regs_st *rq_regs,
-               const display_pipe_params_st pipe_param);
+               const display_pipe_params_st *pipe_param);
 
 // Function: dml_rq_dlg_get_dlg_reg
 //   Calculate and return DLG and TTU register struct given the system setting
 void dml31_rq_dlg_get_dlg_reg(struct display_mode_lib             *mode_lib,
                display_dlg_regs_st          *dlg_regs,
                display_ttu_regs_st          *ttu_regs,
-               display_e2e_pipe_params_st   *e2e_pipe_param,
+               const display_e2e_pipe_params_st *e2e_pipe_param,
                const unsigned int            num_pipes,
                const unsigned int            pipe_idx,
                const bool                    cstate_en,
 
                        struct display_mode_lib *mode_lib,
                        display_dlg_regs_st *dlg_regs,
                        display_ttu_regs_st *ttu_regs,
-                       display_e2e_pipe_params_st *e2e_pipe_param,
+                       const display_e2e_pipe_params_st *e2e_pipe_param,
                        const unsigned int num_pipes,
                        const unsigned int pipe_idx,
                        const bool cstate_en,
        void (*rq_dlg_get_rq_reg)(
                struct display_mode_lib *mode_lib,
                display_rq_regs_st *rq_regs,
-               const display_pipe_params_st pipe_param);
+               const display_pipe_params_st *pipe_param);
        void (*recalculate)(struct display_mode_lib *mode_lib);
        void (*validate)(struct display_mode_lib *mode_lib);
 };