]> git.proxmox.com Git - mirror_ubuntu-kernels.git/commitdiff
drm/amd/display: Document set RECOUT operation
authorRodrigo Siqueira <Rodrigo.Siqueira@amd.com>
Tue, 4 May 2021 14:09:25 +0000 (10:09 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Thu, 20 May 2021 02:38:56 +0000 (22:38 -0400)
During the investigation on how to add visual confirmation on top of the
planes used by DCN, it becomes evident that the lack of information in
the code makes this work unnecessarily complicated. This commit
introduces a set of documentation related to the RECOUT operation in
order to make it easy for developers to navigate this set of functions.

Signed-off-by: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com>
Reviewed-by: Harry Wentland <Harry.Wentland@amd.com>
Acked-by: Stylon Wang <stylon.wang@amd.com>
Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/dcn10/dcn10_dpp_dscl.c
drivers/gpu/drm/amd/display/dc/inc/hw/dpp.h

index 98ab4b7769241211b76a45b631ea68ad491fd89a..0bd8de4c73a9f0a2cd2bf0bda6990c5575db3fb5 100644 (file)
@@ -653,33 +653,50 @@ static void dpp1_dscl_set_manual_ratio_init(
        }
 }
 
-
-
-static void dpp1_dscl_set_recout(
-                       struct dcn10_dpp *dpp, const struct rect *recout)
+/**
+ * dpp1_dscl_set_recout - Set the first pixel of RECOUT in the OTG active area
+ *
+ * @dpp: DPP data struct
+ * @recount: Rectangle information
+ *
+ * This function sets the MPC RECOUT_START and RECOUT_SIZE registers based on
+ * the values specified in the recount parameter.
+ *
+ * Note: This function only have effect if AutoCal is disabled.
+ */
+static void dpp1_dscl_set_recout(struct dcn10_dpp *dpp,
+                                const struct rect *recout)
 {
        int visual_confirm_on = 0;
        if (dpp->base.ctx->dc->debug.visual_confirm != VISUAL_CONFIRM_DISABLE)
                visual_confirm_on = 1;
 
        REG_SET_2(RECOUT_START, 0,
-               /* First pixel of RECOUT */
-                        RECOUT_START_X, recout->x,
-               /* First line of RECOUT */
-                        RECOUT_START_Y, recout->y);
+                 /* First pixel of RECOUT in the active OTG area */
+                 RECOUT_START_X, recout->x,
+                 /* First line of RECOUT in the active OTG area */
+                 RECOUT_START_Y, recout->y);
 
        REG_SET_2(RECOUT_SIZE, 0,
-               /* Number of RECOUT horizontal pixels */
-                        RECOUT_WIDTH, recout->width,
-               /* Number of RECOUT vertical lines */
-                        RECOUT_HEIGHT, recout->height
+                 /* Number of RECOUT horizontal pixels */
+                 RECOUT_WIDTH, recout->width,
+                 /* Number of RECOUT vertical lines */
+                 RECOUT_HEIGHT, recout->height
                         - visual_confirm_on * 2 * (dpp->base.inst + 1));
 }
 
-/* Main function to program scaler and line buffer in manual scaling mode */
-void dpp1_dscl_set_scaler_manual_scale(
-       struct dpp *dpp_base,
-       const struct scaler_data *scl_data)
+/**
+ * dpp1_dscl_set_scaler_manual_scale - Manually program scaler and line buffer
+ *
+ * @dpp_base: High level DPP struct
+ * @scl_data: scalaer_data info
+ *
+ * This is the primary function to program scaler and line buffer in manual
+ * scaling mode. To execute the required operations for manual scale, we need
+ * to disable AutoCal first.
+ */
+void dpp1_dscl_set_scaler_manual_scale(struct dpp *dpp_base,
+                                      const struct scaler_data *scl_data)
 {
        enum lb_memory_config lb_config;
        struct dcn10_dpp *dpp = TO_DCN10_DPP(dpp_base);
index ddbe4bb52724a85de51a8ba42c3e1b201e913fd1..00fc81431b4350cda120b859e67576c6a58d6f87 100644 (file)
 struct dpp {
        const struct dpp_funcs *funcs;
        struct dc_context *ctx;
+       /**
+        * @inst:
+        *
+        * inst stands for "instance," and it is an id number that references a
+        * specific DPP.
+        */
        int inst;
        struct dpp_caps *caps;
        struct pwl_params regamma_params;