From: Ausef Yousof <ausef.you...@amd.com>

[why&how]
initialize a flag to track if we previously
supported dpia and write that to boot options

Reviewed-by: Nicholas Kazlauskas <nicholas.kazlaus...@amd.com>
Reviewed-by: Meenakshikumar Somasundaram <meenakshikumar.somasunda...@amd.com>
Signed-off-by: Ausef Yousof <ausef.you...@amd.com>
Signed-off-by: Aurabindo Pillai <aurabindo.pil...@amd.com>
---
 drivers/gpu/drm/amd/display/dmub/dmub_srv.h       | 1 +
 drivers/gpu/drm/amd/display/dmub/src/dmub_dcn35.c | 7 ++++---
 2 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/dmub/dmub_srv.h 
b/drivers/gpu/drm/amd/display/dmub/dmub_srv.h
index 7abf7d0fd02b..338fdc651f2c 100644
--- a/drivers/gpu/drm/amd/display/dmub/dmub_srv.h
+++ b/drivers/gpu/drm/amd/display/dmub/dmub_srv.h
@@ -568,6 +568,7 @@ struct dmub_srv {
 
        bool sw_init;
        bool hw_init;
+       bool dpia_supported;
 
        uint64_t fb_base;
        uint64_t fb_offset;
diff --git a/drivers/gpu/drm/amd/display/dmub/src/dmub_dcn35.c 
b/drivers/gpu/drm/amd/display/dmub/src/dmub_dcn35.c
index 2228d62adc7e..834e5434ccb8 100644
--- a/drivers/gpu/drm/amd/display/dmub/src/dmub_dcn35.c
+++ b/drivers/gpu/drm/amd/display/dmub/src/dmub_dcn35.c
@@ -400,13 +400,14 @@ union dmub_fw_boot_options 
dmub_dcn35_get_fw_boot_option(struct dmub_srv *dmub)
 void dmub_dcn35_enable_dmub_boot_options(struct dmub_srv *dmub, const struct 
dmub_srv_hw_params *params)
 {
        union dmub_fw_boot_options boot_options = {0};
-       union dmub_fw_boot_options cur_boot_options = {0};
 
-       cur_boot_options = dmub_dcn35_get_fw_boot_option(dmub);
+       if (!dmub->dpia_supported) {
+               dmub->dpia_supported = 
dmub_dcn35_get_fw_boot_option(dmub).bits.enable_dpia;
+       }
 
        boot_options.bits.z10_disable = params->disable_z10;
        boot_options.bits.dpia_supported = params->dpia_supported;
-       boot_options.bits.enable_dpia = cur_boot_options.bits.enable_dpia && 
!params->disable_dpia;
+       boot_options.bits.enable_dpia = dmub->dpia_supported && 
!params->disable_dpia;
        boot_options.bits.usb4_cm_version = params->usb4_cm_version;
        boot_options.bits.dpia_hpd_int_enable_supported = 
params->dpia_hpd_int_enable_supported;
        boot_options.bits.power_optimization = params->power_optimization;
-- 
2.50.1

Reply via email to