From 8b99f1f5b8849c33ed650ce6b2873b0bbe10cdd6 Mon Sep 17 00:00:00 2001 From: Johnny Liu Date: Mon, 4 Sep 2023 04:23:51 +0000 Subject: [PATCH] drm/tegra: Set static Fmax for suspend frequency The suspend_freq is a fixed value for devfreq core, while the resume_freq will be changed dynamically based on the last previous updated frequency value of the device. When device is put into suspend mode, devfreq core will update the resume frequency with the suspend frequency. Therefore, when the device is resumed back again, it will run at suspend_freq. Forcelly set the suspend_freq as Fmax so that device will run at Fmax when it is resumed back. Bug 4269900 Signed-off-by: Johnny Liu Change-Id: Ic6511613ae5d02831a66dd1c2a93f21c142bf3a7 Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2973229 Reviewed-by: Mikko Perttunen GVS: Gerrit_Virtual_Submit --- drivers/gpu/drm/tegra/nvdec.c | 3 +-- drivers/gpu/drm/tegra/nvenc.c | 3 +-- drivers/gpu/drm/tegra/nvjpg.c | 3 +-- drivers/gpu/drm/tegra/vic.c | 3 +-- 4 files changed, 4 insertions(+), 8 deletions(-) diff --git a/drivers/gpu/drm/tegra/nvdec.c b/drivers/gpu/drm/tegra/nvdec.c index 44fcf166..c7250369 100644 --- a/drivers/gpu/drm/tegra/nvdec.c +++ b/drivers/gpu/drm/tegra/nvdec.c @@ -289,8 +289,7 @@ static int nvdec_devfreq_init(struct nvdec *nvdec) if (IS_ERR(devfreq)) return PTR_ERR(devfreq); - devfreq->suspend_freq = min_rate; - devfreq->resume_freq = max_rate; + devfreq->suspend_freq = max_rate; nvdec->devfreq = devfreq; return 0; diff --git a/drivers/gpu/drm/tegra/nvenc.c b/drivers/gpu/drm/tegra/nvenc.c index 517c6dc0..4995cfa6 100644 --- a/drivers/gpu/drm/tegra/nvenc.c +++ b/drivers/gpu/drm/tegra/nvenc.c @@ -213,8 +213,7 @@ static int nvenc_devfreq_init(struct nvenc *nvenc) if (IS_ERR(devfreq)) return PTR_ERR(devfreq); - devfreq->suspend_freq = min_rate; - devfreq->resume_freq = max_rate; + devfreq->suspend_freq = max_rate; nvenc->devfreq = devfreq; return 0; diff --git a/drivers/gpu/drm/tegra/nvjpg.c b/drivers/gpu/drm/tegra/nvjpg.c index c48aa58b..8922c6c9 100644 --- a/drivers/gpu/drm/tegra/nvjpg.c +++ b/drivers/gpu/drm/tegra/nvjpg.c @@ -212,8 +212,7 @@ static int nvjpg_devfreq_init(struct nvjpg *nvjpg) if (IS_ERR(devfreq)) return PTR_ERR(devfreq); - devfreq->suspend_freq = min_rate; - devfreq->resume_freq = max_rate; + devfreq->suspend_freq = max_rate; nvjpg->devfreq = devfreq; return 0; diff --git a/drivers/gpu/drm/tegra/vic.c b/drivers/gpu/drm/tegra/vic.c index 932c9653..8b728432 100644 --- a/drivers/gpu/drm/tegra/vic.c +++ b/drivers/gpu/drm/tegra/vic.c @@ -231,8 +231,7 @@ static int vic_devfreq_init(struct vic *vic) if (IS_ERR(devfreq)) return PTR_ERR(devfreq); - devfreq->suspend_freq = min_rate; - devfreq->resume_freq = max_rate; + devfreq->suspend_freq = max_rate; vic->devfreq = devfreq; return 0;