From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Sun, Daisy" Subject: Re: [PATCH] drm/i915/bdw: cancel the SW turbo tasks before runtime suspending Date: Mon, 08 Sep 2014 18:55:44 -0700 Message-ID: <540E5E20.3050007@intel.com> References: <1409864822-1924-1-git-send-email-przanoni@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; Format="flowed" Content-Transfer-Encoding: 7bit Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id 336E56E073 for ; Mon, 8 Sep 2014 18:55:46 -0700 (PDT) In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Paulo Zanoni , Intel Graphics Development Cc: Paulo Zanoni List-Id: intel-gfx@lists.freedesktop.org Need to reset the flip_received flag at the end of this block, indicate that the flip interrupt will stop working. + 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); + } - Daisy On 9/5/2014 6:00 AM, Paulo Zanoni wrote: > (adding Daisy Sun to the conversation) > > 2014-09-04 18:07 GMT-03:00 Paulo Zanoni : >> 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 >> >> Testcase: igt/pm_rpm/gem-execbuf (you may have to run it a few times) >> Signed-off-by: Paulo Zanoni >> --- >> drivers/gpu/drm/i915/i915_drv.c | 4 ++++ >> 1 file changed, 4 insertions(+) >> >> diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c >> index 8ff3755..4ce217b 100644 >> --- a/drivers/gpu/drm/i915/i915_drv.c >> +++ b/drivers/gpu/drm/i915/i915_drv.c >> @@ -1448,6 +1448,10 @@ 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); >> + } >> intel_runtime_pm_disable_interrupts(dev); >> >> ret = intel_suspend_complete(dev_priv); >> -- >> 2.1.0 >> > >