Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 074c4c43 authored by Dor Askayo's avatar Dor Askayo Committed by Greg Kroah-Hartman
Browse files

drm/amd/display: do not allocate display_mode_lib unnecessarily

[ Upstream commit bb67bfd2e7101bf2ac5327b0b7a847cd9fb9723f ]

This allocation isn't required and can fail when resuming from suspend.

Bug: https://gitlab.freedesktop.org/drm/amd/issues/1009


Signed-off-by: default avatarDor Askayo <dor.askayo@gmail.com>
Reviewed-by: default avatarLeo Li <sunpeng.li@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
parent 1687b204
Loading
Loading
Loading
Loading
+9 −8
Original line number Diff line number Diff line
@@ -2267,12 +2267,7 @@ void dc_set_power_state(
	enum dc_acpi_cm_power_state power_state)
{
	struct kref refcount;
	struct display_mode_lib *dml = kzalloc(sizeof(struct display_mode_lib),
						GFP_KERNEL);

	ASSERT(dml);
	if (!dml)
		return;
	struct display_mode_lib *dml;

	switch (power_state) {
	case DC_ACPI_CM_POWER_STATE_D0:
@@ -2294,6 +2289,12 @@ void dc_set_power_state(
		 * clean state, and dc hw programming optimizations will not
		 * cause any trouble.
		 */
		dml = kzalloc(sizeof(struct display_mode_lib),
				GFP_KERNEL);

		ASSERT(dml);
		if (!dml)
			return;

		/* Preserve refcount */
		refcount = dc->current_state->refcount;
@@ -2307,10 +2308,10 @@ void dc_set_power_state(
		dc->current_state->refcount = refcount;
		dc->current_state->bw_ctx.dml = *dml;

		kfree(dml);

		break;
	}

	kfree(dml);
}

void dc_resume(struct dc *dc)