From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paulo Zanoni Subject: [PATCH] drm/i915/bdw: cancel the SW turbo tasks before runtime suspending Date: Wed, 17 Sep 2014 11:25:35 -0300 Message-ID: <1410963935-2004-1-git-send-email-przanoni@gmail.com> References: <540E5E20.3050007@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from mail-qc0-f173.google.com (mail-qc0-f173.google.com [209.85.216.173]) by gabe.freedesktop.org (Postfix) with ESMTP id 9AACF6E526 for ; Wed, 17 Sep 2014 07:26:24 -0700 (PDT) Received: by mail-qc0-f173.google.com with SMTP id i8so2168840qcq.18 for ; Wed, 17 Sep 2014 07:26:24 -0700 (PDT) In-Reply-To: <540E5E20.3050007@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org Cc: Paulo Zanoni List-Id: intel-gfx@lists.freedesktop.org From: Paulo Zanoni If we don't cancel them, we may end up running them while the device is runtime suspended, which will trigger lots and lots of WARNs on dmesg. Regression introduced by: commit c76bb61a71083b2d90504cc6d0dda2047c5d63ca Author: Daisy Sun Date: Mon Aug 11 11:08:38 2014 -0700 drm/i915/bdw: BDW Software Turbo v2: Also set flip_received to false (Daisy) Testcase: igt/pm_rpm/gem-execbuf (you may have to run it a few times) Cc: Daisy Sun Signed-off-by: Paulo Zanoni --- drivers/gpu/drm/i915/i915_drv.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c index b8bd008..857f0f9 100644 --- a/drivers/gpu/drm/i915/i915_drv.c +++ b/drivers/gpu/drm/i915/i915_drv.c @@ -1447,6 +1447,11 @@ static int intel_runtime_suspend(struct device *device) * intel_mark_idle(). */ cancel_work_sync(&dev_priv->rps.work); + if (dev_priv->rps.is_bdw_sw_turbo) { + del_timer_sync(&dev_priv->rps.sw_turbo.flip_timer); + cancel_work_sync(&dev_priv->rps.sw_turbo.work_max_freq); + atomic_set(&dev_priv->rps.sw_turbo.flip_received, false); + } intel_runtime_pm_disable_interrupts(dev); ret = intel_suspend_complete(dev_priv); -- 2.1.0