mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-06 08:46:46 +00:00
Merge tag 'drm-msm-fixes-2021-10-18' of https://gitlab.freedesktop.org/drm/msm into drm-fixes
One more fix for v5.15, to work around a power stability issue on a630 (and possibly others) Signed-off-by: Dave Airlie <airlied@redhat.com> From: Rob Clark <robdclark@gmail.com> Link: https://patchwork.freedesktop.org/patch/msgid/CAF6AEGs1WPLthmd=ToDcEHm=u-7O38RAVJ2XwRoS8xPmC520vg@mail.gmail.com
This commit is contained in:
commit
730b64d827
3 changed files with 13 additions and 1 deletions
|
@ -1838,6 +1838,13 @@ struct msm_gpu *a6xx_gpu_init(struct drm_device *dev)
|
||||||
adreno_cmp_rev(ADRENO_REV(6, 3, 5, ANY_ID), info->rev)))
|
adreno_cmp_rev(ADRENO_REV(6, 3, 5, ANY_ID), info->rev)))
|
||||||
adreno_gpu->base.hw_apriv = true;
|
adreno_gpu->base.hw_apriv = true;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* For now only clamp to idle freq for devices where this is known not
|
||||||
|
* to cause power supply issues:
|
||||||
|
*/
|
||||||
|
if (info && (info->revn == 618))
|
||||||
|
gpu->clamp_to_idle = true;
|
||||||
|
|
||||||
a6xx_llc_slices_init(pdev, a6xx_gpu);
|
a6xx_llc_slices_init(pdev, a6xx_gpu);
|
||||||
|
|
||||||
ret = a6xx_set_supported_hw(&pdev->dev, config->rev);
|
ret = a6xx_set_supported_hw(&pdev->dev, config->rev);
|
||||||
|
|
|
@ -203,6 +203,10 @@ struct msm_gpu {
|
||||||
uint32_t suspend_count;
|
uint32_t suspend_count;
|
||||||
|
|
||||||
struct msm_gpu_state *crashstate;
|
struct msm_gpu_state *crashstate;
|
||||||
|
|
||||||
|
/* Enable clamping to idle freq when inactive: */
|
||||||
|
bool clamp_to_idle;
|
||||||
|
|
||||||
/* True if the hardware supports expanded apriv (a650 and newer) */
|
/* True if the hardware supports expanded apriv (a650 and newer) */
|
||||||
bool hw_apriv;
|
bool hw_apriv;
|
||||||
|
|
||||||
|
|
|
@ -200,7 +200,8 @@ void msm_devfreq_idle(struct msm_gpu *gpu)
|
||||||
|
|
||||||
idle_freq = get_freq(gpu);
|
idle_freq = get_freq(gpu);
|
||||||
|
|
||||||
msm_devfreq_target(&gpu->pdev->dev, &target_freq, 0);
|
if (gpu->clamp_to_idle)
|
||||||
|
msm_devfreq_target(&gpu->pdev->dev, &target_freq, 0);
|
||||||
|
|
||||||
df->idle_time = ktime_get();
|
df->idle_time = ktime_get();
|
||||||
df->idle_freq = idle_freq;
|
df->idle_freq = idle_freq;
|
||||||
|
|
Loading…
Reference in a new issue