Hi Ankit,

...
> -                     if (bpp <= 8) {
> +                     if (bpp <= 8)
>                               range_bpg_offset = ofs_und4[buf_i];
> -                     } else if (bpp <= 10) {
> -                             res = DIV_ROUND_UP(((bpp - 8) *
> -                                                 (ofs_und5[buf_i] - 
> ofs_und4[buf_i])), 2);
> -                             range_bpg_offset = ofs_und4[buf_i] + res;
> -                     } else if (bpp <= 12) {
> -                             res = DIV_ROUND_UP(((bpp - 10) *
> -                                                 (ofs_und6[buf_i] - 
> ofs_und5[buf_i])), 2);
> -                             range_bpg_offset = ofs_und5[buf_i] + res;
> -                     } else if (bpp <= 16) {
> -                             res = DIV_ROUND_UP(((bpp - 12) *
> -                                                 (ofs_und8[buf_i] - 
> ofs_und6[buf_i])), 4);
> -                             range_bpg_offset = ofs_und6[buf_i] + res;
> -                     } else {
> +                     else if (bpp <= 10)
> +                             range_bpg_offset = get_range_bpg_offset(8, 
> ofs_und4[buf_i],
> +                                                                     10, 
> ofs_und5[buf_i], bpp);
> +                     else if (bpp <= 12)
> +                             range_bpg_offset = get_range_bpg_offset(10, 
> ofs_und5[buf_i],
> +                                                                     12, 
> ofs_und6[buf_i], bpp);
> +                     else if (bpp <= 16)
> +                             range_bpg_offset = get_range_bpg_offset(12, 
> ofs_und6[buf_i],
> +                                                                     16, 
> ofs_und8[buf_i], bpp);
> +                     else
>                               range_bpg_offset = ofs_und8[buf_i];
> -                     }
I tried to get these ifs out of the for loop, because the bpp
value doesn't change during the execution here, but I don't
think it is worth it due to offset buffers changing depending
on bpp value and I believe your solution is good for what we
could do here:

Reviewed-by: Krzysztof Karas <[email protected]>

Krzysztof
>  
>                       vdsc_cfg->rc_range_params[buf_i].range_bpg_offset =
>                               range_bpg_offset & DSC_RANGE_BPG_OFFSET_MASK;
> @@ -215,21 +218,19 @@ calculate_rc_params(struct drm_dsc_config *vdsc_cfg)
>                       intel_vdsc_set_min_max_qp(vdsc_cfg, buf_i, bpp_i);
>  
>                       /* Calculate range_bpg_offset */
> -                     if (bpp <= 6) {
> +                     if (bpp <= 6)
>                               range_bpg_offset = ofs_und6[buf_i];
> -                     } else if (bpp <= 8) {
> -                             res = DIV_ROUND_UP(((bpp - 6) *
> -                                                 (ofs_und8[buf_i] - 
> ofs_und6[buf_i])), 2);
> -                             range_bpg_offset = ofs_und6[buf_i] + res;
> -                     } else if (bpp <= 12) {
> -                             range_bpg_offset = ofs_und8[buf_i];
> -                     } else if (bpp <= 15) {
> -                             res = DIV_ROUND_UP(((bpp - 12) *
> -                                                 (ofs_und15[buf_i] - 
> ofs_und12[buf_i])), 3);
> -                             range_bpg_offset = ofs_und12[buf_i] + res;
> -                     } else {
> +                     else if (bpp <= 8)
> +                             range_bpg_offset = get_range_bpg_offset(6, 
> ofs_und6[buf_i],
> +                                                                     8, 
> ofs_und8[buf_i], bpp);
> +                     else if (bpp <= 12)
> +                             range_bpg_offset = get_range_bpg_offset(8, 
> ofs_und8[buf_i],
> +                                                                     12, 
> ofs_und12[buf_i], bpp);
> +                     else if (bpp <= 15)
> +                             range_bpg_offset = get_range_bpg_offset(12, 
> ofs_und12[buf_i],
> +                                                                     15, 
> ofs_und15[buf_i], bpp);
> +                     else
>                               range_bpg_offset = ofs_und15[buf_i];
> -                     }
>  
>                       vdsc_cfg->rc_range_params[buf_i].range_bpg_offset =
>                               range_bpg_offset & DSC_RANGE_BPG_OFFSET_MASK;
> -- 
> 2.45.2
> 

Reply via email to