From a7a3e763630d4535510e2f71c73deb9b62bba44d Mon Sep 17 00:00:00 2001 From: jsg Date: Fri, 4 Aug 2023 08:54:09 +0000 Subject: [PATCH] drm/amd/display: Set minimum requirement for using PSR-SU on Phoenix From Mario Limonciello 76fcfc6ae3a64033626647bae7b6d1f2d8bea72a in linux-6.1.y/6.1.43 cd2e31a9ab93d13c412a36c6e26811e0f830985b in mainline linux --- sys/dev/pci/drm/amd/display/dmub/src/dmub_dcn314.c | 5 +++++ sys/dev/pci/drm/amd/display/dmub/src/dmub_dcn314.h | 2 ++ sys/dev/pci/drm/amd/display/dmub/src/dmub_srv.c | 1 + 3 files changed, 8 insertions(+) diff --git a/sys/dev/pci/drm/amd/display/dmub/src/dmub_dcn314.c b/sys/dev/pci/drm/amd/display/dmub/src/dmub_dcn314.c index 48a06dbd9be..f161aeb7e7c 100644 --- a/sys/dev/pci/drm/amd/display/dmub/src/dmub_dcn314.c +++ b/sys/dev/pci/drm/amd/display/dmub/src/dmub_dcn314.c @@ -60,3 +60,8 @@ const struct dmub_srv_dcn31_regs dmub_srv_dcn314_regs = { { DMUB_DCN31_FIELDS() }, #undef DMUB_SF }; + +bool dmub_dcn314_is_psrsu_supported(struct dmub_srv *dmub) +{ + return dmub->fw_version >= DMUB_FW_VERSION(8, 0, 16); +} diff --git a/sys/dev/pci/drm/amd/display/dmub/src/dmub_dcn314.h b/sys/dev/pci/drm/amd/display/dmub/src/dmub_dcn314.h index 674267a2940..f213bd82c91 100644 --- a/sys/dev/pci/drm/amd/display/dmub/src/dmub_dcn314.h +++ b/sys/dev/pci/drm/amd/display/dmub/src/dmub_dcn314.h @@ -30,4 +30,6 @@ extern const struct dmub_srv_dcn31_regs dmub_srv_dcn314_regs; +bool dmub_dcn314_is_psrsu_supported(struct dmub_srv *dmub); + #endif /* _DMUB_DCN314_H_ */ diff --git a/sys/dev/pci/drm/amd/display/dmub/src/dmub_srv.c b/sys/dev/pci/drm/amd/display/dmub/src/dmub_srv.c index 0f43a05a418..0dab22d7948 100644 --- a/sys/dev/pci/drm/amd/display/dmub/src/dmub_srv.c +++ b/sys/dev/pci/drm/amd/display/dmub/src/dmub_srv.c @@ -229,6 +229,7 @@ static bool dmub_srv_hw_setup(struct dmub_srv *dmub, enum dmub_asic asic) case DMUB_ASIC_DCN316: if (asic == DMUB_ASIC_DCN314) { dmub->regs_dcn31 = &dmub_srv_dcn314_regs; + funcs->is_psrsu_supported = dmub_dcn314_is_psrsu_supported; } else if (asic == DMUB_ASIC_DCN315) { dmub->regs_dcn31 = &dmub_srv_dcn315_regs; } else if (asic == DMUB_ASIC_DCN316) { -- 2.20.1