From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH 3/3] drm/i915: cancel the panel VDD work when we do it manually Date: Thu, 31 Oct 2013 14:46:43 +0200 Message-ID: <87wqktppzg.fsf@intel.com> References: <1383169828-1589-1-git-send-email-przanoni@gmail.com> <1383169828-1589-3-git-send-email-przanoni@gmail.com> <20131031111119.GH4167@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from mga14.intel.com (mga14.intel.com [143.182.124.37]) by gabe.freedesktop.org (Postfix) with ESMTP id 53467EFD12 for ; Thu, 31 Oct 2013 05:50:00 -0700 (PDT) In-Reply-To: <20131031111119.GH4167@phenom.ffwll.local> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: intel-gfx-bounces@lists.freedesktop.org Errors-To: intel-gfx-bounces@lists.freedesktop.org To: Daniel Vetter , Paulo Zanoni Cc: intel-gfx@lists.freedesktop.org, Paulo Zanoni List-Id: intel-gfx@lists.freedesktop.org On Thu, 31 Oct 2013, Daniel Vetter wrote: > On Wed, Oct 30, 2013 at 07:50:28PM -0200, Paulo Zanoni wrote: >> From: Paulo Zanoni >> >> After I reorganized the panel VDD debug messages I was able to spot we >> were disabling it one extra time. The problem is that we're missing >> the call to cancel the delayed work in one of the instances where we >> manually call ironlake_panel_vdd_off_sync(). >> >> Signed-off-by: Paulo Zanoni >> --- >> drivers/gpu/drm/i915/intel_dp.c | 1 + >> 1 file changed, 1 insertion(+) >> >> diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c >> index 8db1fda..f2280b4 100644 >> --- a/drivers/gpu/drm/i915/intel_dp.c >> +++ b/drivers/gpu/drm/i915/intel_dp.c >> @@ -1159,6 +1159,7 @@ void ironlake_edp_panel_vdd_off(struct intel_dp *intel_dp, bool sync) >> intel_dp->want_panel_vdd = false; >> >> if (sync) { >> + cancel_delayed_work_sync(&intel_dp->panel_vdd_work); > > This will deadlock since we hold the mode_config.mutex here, and the > panel_vdd_work also needs that. I've merged the other two patches. Ooof, reviewer facepalm. So we are calling ironlake_panel_vdd_off_sync() twice in this path, but that shouldn't matter, as we have if (!intel_dp->want_panel_vdd && ironlake_edp_have_panel_vdd(intel_dp)) in there, right? Paulo, is that what you're seeing, or something else? BR, Jani. > -Daniel > >> ironlake_panel_vdd_off_sync(intel_dp); >> } else { >> /* >> -- >> 1.8.3.1 >> >> _______________________________________________ >> Intel-gfx mailing list >> Intel-gfx@lists.freedesktop.org >> http://lists.freedesktop.org/mailman/listinfo/intel-gfx > > -- > Daniel Vetter > Software Engineer, Intel Corporation > +41 (0) 79 365 57 48 - http://blog.ffwll.ch > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/intel-gfx -- Jani Nikula, Intel Open Source Technology Center