Re: [PATCH] drm/radeon: fix freeze for laptop with Turks/Thames GPU.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Jun 5, 2015 at 1:33 PM,  <j.glisse@xxxxxxxxx> wrote:
> From: Jérôme Glisse <jglisse@xxxxxxxxxx>
>
> Laptop with Turks/Thames GPU will freeze if dpm is enabled. It seems
> the SMC engine is relying on some state inside the CP engine. CP needs
> to chew at least one packet for it to get in good state for dynamic
> power management.
>
> This patch simply disabled and re-enable DPM after the ring test which
> is enough to avoid the freeze.
>
> Signed-off-by: Jérôme Glisse <jglisse@xxxxxxxxxx>
> Cc: stable@xxxxxxxxxxxxxxx

Applied.  thanks!

Alex


> ---
>  drivers/gpu/drm/radeon/radeon_device.c |   15 +++++++++++++++
>  1 files changed, 15 insertions(+), 0 deletions(-)
>
> diff --git a/drivers/gpu/drm/radeon/radeon_device.c b/drivers/gpu/drm/radeon/radeon_device.c
> index b7ca4c5..a7fdfa4 100644
> --- a/drivers/gpu/drm/radeon/radeon_device.c
> +++ b/drivers/gpu/drm/radeon/radeon_device.c
> @@ -1463,6 +1463,21 @@ int radeon_device_init(struct radeon_device *rdev,
>         if (r)
>                 DRM_ERROR("ib ring test failed (%d).\n", r);
>
> +       /*
> +        * Turks/Thames GPU will freeze whole laptop if DPM is not restarted
> +        * after the CP ring have chew one packet at least. Hence here we stop
> +        * and restart DPM after the radeon_ib_ring_tests().
> +        */
> +       if (rdev->pm.dpm_enabled &&
> +           (rdev->pm.pm_method == PM_METHOD_DPM) &&
> +           (rdev->family == CHIP_TURKS) &&
> +           (rdev->flags & RADEON_IS_MOBILITY)) {
> +               mutex_lock(&rdev->pm.mutex);
> +               radeon_dpm_disable(rdev);
> +               radeon_dpm_enable(rdev);
> +               mutex_unlock(&rdev->pm.mutex);
> +       }
> +
>         if ((radeon_testing & 1)) {
>                 if (rdev->accel_working)
>                         radeon_test_moves(rdev);
> --
> 1.7.1
>
> _______________________________________________
> dri-devel mailing list
> dri-devel@xxxxxxxxxxxxxxxxxxxxx
> http://lists.freedesktop.org/mailman/listinfo/dri-devel
--
To unsubscribe from this list: send the line "unsubscribe stable" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]