Merge tag 'drm-next-2022-08-03' of git://anongit.freedesktop.org/drm/drm
[linux-2.6-microblaze.git] / drivers / gpu / drm / msm / disp / dpu1 / dpu_plane.c
index 5b5aef2..a617a3d 100644 (file)
@@ -12,7 +12,9 @@
 
 #include <drm/drm_atomic.h>
 #include <drm/drm_atomic_uapi.h>
+#include <drm/drm_blend.h>
 #include <drm/drm_damage_helper.h>
+#include <drm/drm_framebuffer.h>
 #include <drm/drm_gem_atomic_helper.h>
 
 #include "msm_drv.h"
@@ -106,7 +108,7 @@ struct dpu_plane {
        bool is_rt_pipe;
        bool is_virtual;
        struct list_head mplane_list;
-       struct dpu_mdss_cfg *catalog;
+       const struct dpu_mdss_cfg *catalog;
 };
 
 static const uint64_t supported_format_modifiers[] = {
@@ -160,7 +162,7 @@ static void _dpu_plane_calc_bw(struct drm_plane *plane,
        vbp = mode->vtotal - mode->vsync_end;
        vpw = mode->vsync_end - mode->vsync_start;
        vfp = mode->vsync_start - mode->vdisplay;
-       hw_latency_lines =  dpu_kms->catalog->perf.min_prefill_lines;
+       hw_latency_lines =  dpu_kms->catalog->perf->min_prefill_lines;
        scale_factor = src_height > dst_height ?
                mult_frac(src_height, 1, dst_height) : 1;
 
@@ -309,7 +311,7 @@ static void _dpu_plane_set_qos_lut(struct drm_plane *plane,
        }
 
        qos_lut = _dpu_hw_get_qos_lut(
-                       &pdpu->catalog->perf.qos_lut_tbl[lut_usage], total_fl);
+                       &pdpu->catalog->perf->qos_lut_tbl[lut_usage], total_fl);
 
        trace_dpu_perf_set_qos_luts(pdpu->pipe - SSPP_VIG0,
                        (fmt) ? fmt->base.pixel_format : 0,
@@ -336,9 +338,9 @@ static void _dpu_plane_set_danger_lut(struct drm_plane *plane,
        u32 danger_lut, safe_lut;
 
        if (!pdpu->is_rt_pipe) {
-               danger_lut = pdpu->catalog->perf.danger_lut_tbl
+               danger_lut = pdpu->catalog->perf->danger_lut_tbl
                                [DPU_QOS_LUT_USAGE_NRT];
-               safe_lut = pdpu->catalog->perf.safe_lut_tbl
+               safe_lut = pdpu->catalog->perf->safe_lut_tbl
                                [DPU_QOS_LUT_USAGE_NRT];
        } else {
                fmt = dpu_get_dpu_format_ext(
@@ -346,14 +348,14 @@ static void _dpu_plane_set_danger_lut(struct drm_plane *plane,
                                fb->modifier);
 
                if (fmt && DPU_FORMAT_IS_LINEAR(fmt)) {
-                       danger_lut = pdpu->catalog->perf.danger_lut_tbl
+                       danger_lut = pdpu->catalog->perf->danger_lut_tbl
                                        [DPU_QOS_LUT_USAGE_LINEAR];
-                       safe_lut = pdpu->catalog->perf.safe_lut_tbl
+                       safe_lut = pdpu->catalog->perf->safe_lut_tbl
                                        [DPU_QOS_LUT_USAGE_LINEAR];
                } else {
-                       danger_lut = pdpu->catalog->perf.danger_lut_tbl
+                       danger_lut = pdpu->catalog->perf->danger_lut_tbl
                                        [DPU_QOS_LUT_USAGE_MACROTILE];
-                       safe_lut = pdpu->catalog->perf.safe_lut_tbl
+                       safe_lut = pdpu->catalog->perf->safe_lut_tbl
                                        [DPU_QOS_LUT_USAGE_MACROTILE];
                }
        }
@@ -1225,7 +1227,7 @@ static void dpu_plane_sspp_atomic_update(struct drm_plane *plane)
 
                        memset(&cdp_cfg, 0, sizeof(struct dpu_hw_cdp_cfg));
 
-                       cdp_cfg.enable = pdpu->catalog->perf.cdp_cfg
+                       cdp_cfg.enable = pdpu->catalog->perf->cdp_cfg
                                        [DPU_PERF_CDP_USAGE_RT].rd_enable;
                        cdp_cfg.ubwc_meta_enable =
                                        DPU_FORMAT_IS_UBWC(fmt);