Simplify the initialization of qgv points info by extracting
the code to initialize the qgv points info from dram info based
on the memory type.

Signed-off-by: Vinod Govindapillai <[email protected]>
---
 drivers/gpu/drm/i915/display/intel_bw.c | 23 +++++++++++++++++------
 1 file changed, 17 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_bw.c 
b/drivers/gpu/drm/i915/display/intel_bw.c
index d99e921df0b9..e9cfa3edd09e 100644
--- a/drivers/gpu/drm/i915/display/intel_bw.c
+++ b/drivers/gpu/drm/i915/display/intel_bw.c
@@ -238,13 +238,11 @@ intel_read_qgv_point_info(struct intel_display *display,
                return icl_pcode_read_qgv_point_info(display, sp, point);
 }
 
-static int icl_get_qgv_points(struct intel_display *display,
-                             const struct dram_info *dram_info,
-                             struct intel_qgv_info *qi,
-                             bool is_y_tile)
+static int icl_init_qgv_info(struct intel_display *display,
+                            const struct dram_info *dram_info,
+                            struct intel_qgv_info *qi,
+                            bool is_y_tile)
 {
-       int i, ret;
-
        qi->num_points = dram_info->num_qgv_points;
        qi->num_psf_points = dram_info->num_psf_gv_points;
 
@@ -316,6 +314,19 @@ static int icl_get_qgv_points(struct intel_display 
*display,
                qi->max_numchannels = 1;
        }
 
+       return 0;
+}
+
+static int icl_get_qgv_points(struct intel_display *display,
+                             const struct dram_info *dram_info,
+                             struct intel_qgv_info *qi,
+                             bool is_y_tile)
+{
+       int i, ret;
+
+       if (icl_init_qgv_info(display, dram_info, qi, is_y_tile))
+               return -EINVAL;
+
        if (drm_WARN_ON(display->drm,
                        qi->num_points > ARRAY_SIZE(qi->points)))
                qi->num_points = ARRAY_SIZE(qi->points);
-- 
2.43.0

Reply via email to