[PATCH v4 1/3] drm/amd/display: Add power_state member into current_state
Mario Limonciello
mario.limonciello at amd.com
Thu Jan 6 16:30:52 UTC 2022
This can be used by the display core to let decisions be made based
upon the requested power state.
Cc: Qingqing Zhuo <qingqing.zhuo at amd.com>
Cc: Scott Bruce <smbruce at gmail.com>
Cc: Chris Hixon <linux-kernel-bugs at hixontech.com>
Cc: spasswolf at web.de
Signed-off-by: Mario Limonciello <mario.limonciello at amd.com>
---
changes from v3->v4:
* Initialize power_state when context is created (0 shouldn't be a valid state)
changes from v2->v3:
* New patch
drivers/gpu/drm/amd/display/dc/core/dc.c | 3 +++
drivers/gpu/drm/amd/display/dc/inc/core_types.h | 1 +
2 files changed, 4 insertions(+)
diff --git a/drivers/gpu/drm/amd/display/dc/core/dc.c b/drivers/gpu/drm/amd/display/dc/core/dc.c
index 91c4874473d6..8edbb6c70512 100644
--- a/drivers/gpu/drm/amd/display/dc/core/dc.c
+++ b/drivers/gpu/drm/amd/display/dc/core/dc.c
@@ -1960,6 +1960,7 @@ static void init_state(struct dc *dc, struct dc_state *context)
#ifdef CONFIG_DRM_AMD_DC_DCN
memcpy(&context->bw_ctx.dml, &dc->dml, sizeof(struct display_mode_lib));
#endif
+ context->power_state = DC_ACPI_CM_POWER_STATE_D0;
}
struct dc_state *dc_create_state(struct dc *dc)
@@ -3281,6 +3282,8 @@ void dc_set_power_state(
if (!dc->current_state)
return;
+ dc->current_state->power_state = power_state;
+
switch (power_state) {
case DC_ACPI_CM_POWER_STATE_D0:
dc_resource_state_construct(dc, dc->current_state);
diff --git a/drivers/gpu/drm/amd/display/dc/inc/core_types.h b/drivers/gpu/drm/amd/display/dc/inc/core_types.h
index 943240e2809e..6bd0aeed1856 100644
--- a/drivers/gpu/drm/amd/display/dc/inc/core_types.h
+++ b/drivers/gpu/drm/amd/display/dc/inc/core_types.h
@@ -506,6 +506,7 @@ struct dc_state {
struct {
unsigned int stutter_period_us;
} perf_params;
+ enum dc_acpi_cm_power_state power_state;
};
#endif /* _CORE_TYPES_H_ */
--
2.25.1
More information about the amd-gfx
mailing list