drm/amd/display: Add dmub additional interface support for FAMS
authorDillon Varone <dillon.varone@amd.com>
Fri, 15 Mar 2024 22:00:28 +0000 (18:00 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 10 Apr 2024 02:02:48 +0000 (22:02 -0400)
[WHY&HOW]
Update dmub and driver interface for future FAMS revisions.

Reviewed-by: Anthony Koo <anthony.koo@amd.com>
Acked-by: Roman Li <roman.li@amd.com>
Signed-off-by: Dillon Varone <dillon.varone@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/hwss/dcn30/dcn30_hwseq.c
drivers/gpu/drm/amd/display/dc/hwss/dcn31/dcn31_hwseq.c
drivers/gpu/drm/amd/display/dc/hwss/dcn32/dcn32_hwseq.c
drivers/gpu/drm/amd/display/dc/hwss/dcn35/dcn35_hwseq.c
drivers/gpu/drm/amd/display/dmub/inc/dmub_cmd.h

index af3a26c2656bfef3c07de524bd23ebd961c1090a..1f3ddee1ec1b483f55c8178777b105830f45983a 100644 (file)
@@ -799,7 +799,7 @@ void dcn30_init_hw(struct dc *dc)
        // Get DMCUB capabilities
        dc_dmub_srv_query_caps_cmd(dc->ctx->dmub_srv);
        dc->caps.dmub_caps.psr = dc->ctx->dmub_srv->dmub->feature_caps.psr;
-       dc->caps.dmub_caps.mclk_sw = dc->ctx->dmub_srv->dmub->feature_caps.fw_assisted_mclk_switch;
+       dc->caps.dmub_caps.mclk_sw = dc->ctx->dmub_srv->dmub->feature_caps.fw_assisted_mclk_switch_ver;
 }
 
 void dcn30_set_avmute(struct pipe_ctx *pipe_ctx, bool enable)
index a760f0c6fe98f22536abe25ebcdde5445fa8399f..9ab475a87545227c9da55acf271e332315c0329e 100644 (file)
@@ -273,7 +273,7 @@ void dcn31_init_hw(struct dc *dc)
        // Get DMCUB capabilities
        dc_dmub_srv_query_caps_cmd(dc->ctx->dmub_srv);
        dc->caps.dmub_caps.psr = dc->ctx->dmub_srv->dmub->feature_caps.psr;
-       dc->caps.dmub_caps.mclk_sw = dc->ctx->dmub_srv->dmub->feature_caps.fw_assisted_mclk_switch;
+       dc->caps.dmub_caps.mclk_sw = dc->ctx->dmub_srv->dmub->feature_caps.fw_assisted_mclk_switch_ver;
 }
 
 void dcn31_dsc_pg_control(
index 0f522f8a72283d7f81a6cfe246ac3fc4a1e0cb07..9aea4a088652b14eb66faf36e64cc60dc434f76c 100644 (file)
@@ -953,7 +953,7 @@ void dcn32_init_hw(struct dc *dc)
                dc->caps.dmub_caps.psr = dc->ctx->dmub_srv->dmub->feature_caps.psr;
                dc->caps.dmub_caps.subvp_psr = dc->ctx->dmub_srv->dmub->feature_caps.subvp_psr_support;
                dc->caps.dmub_caps.gecc_enable = dc->ctx->dmub_srv->dmub->feature_caps.gecc_enable;
-               dc->caps.dmub_caps.mclk_sw = dc->ctx->dmub_srv->dmub->feature_caps.fw_assisted_mclk_switch;
+               dc->caps.dmub_caps.mclk_sw = dc->ctx->dmub_srv->dmub->feature_caps.fw_assisted_mclk_switch_ver;
 
                if (dc->ctx->dmub_srv->dmub->fw_version <
                    DMUB_FW_VERSION(7, 0, 35)) {
index 9499295f45821ebff4b8c990dbf329e16d65f52a..c2275a8b4ecc0b7987f6cabf46d8d0e699f8f12d 100644 (file)
@@ -349,7 +349,7 @@ void dcn35_init_hw(struct dc *dc)
        if (dc->ctx->dmub_srv) {
                dc_dmub_srv_query_caps_cmd(dc->ctx->dmub_srv);
                dc->caps.dmub_caps.psr = dc->ctx->dmub_srv->dmub->feature_caps.psr;
-               dc->caps.dmub_caps.mclk_sw = dc->ctx->dmub_srv->dmub->feature_caps.fw_assisted_mclk_switch;
+               dc->caps.dmub_caps.mclk_sw = dc->ctx->dmub_srv->dmub->feature_caps.fw_assisted_mclk_switch_ver;
        }
 
        if (dc->res_pool->pg_cntl) {
index 3bd9911b6f3ad690fd4e3437de32d307cb7ff454..d0b581b8331ce89d46cf009a55c5adaef4d5c896 100644 (file)
@@ -97,6 +97,9 @@
 /* Maximum number of planes on any ASIC. */
 #define DMUB_MAX_PLANES 6
 
+/* Maximum number of phantom planes on any ASIC */
+#define DMUB_MAX_PHANTOM_PLANES ((DMUB_MAX_PLANES) / 2)
+
 /* Trace buffer offset for entry */
 #define TRACE_BUFFER_ENTRY_OFFSET  16
 
@@ -466,7 +469,7 @@ struct dmub_feature_caps {
         * Max PSR version supported by FW.
         */
        uint8_t psr;
-       uint8_t fw_assisted_mclk_switch;
+       uint8_t fw_assisted_mclk_switch_ver;
        uint8_t reserved[4];
        uint8_t subvp_psr_support;
        uint8_t gecc_enable;
@@ -4667,6 +4670,7 @@ union dmub_rb_cmd {
         * Definition of a DMUB_CMD__PSP_ASSR_ENABLE command.
         */
        struct dmub_rb_cmd_assr_enable assr_enable;
+
 };
 
 /**