From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matt Roper Subject: Re: [PATCH v2 9/9] drm/i915: Leave interrupts enabled while disabling crtcs during suspend Date: Fri, 20 Jun 2014 11:10:48 -0700 Message-ID: <20140620181048.GA9490@intel.com> References: <1401104792-26560-1-git-send-email-ville.syrjala@linux.intel.com> <1401104792-26560-10-git-send-email-ville.syrjala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Return-path: Content-Disposition: inline In-Reply-To: <1401104792-26560-10-git-send-email-ville.syrjala@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: ville.syrjala@linux.intel.com Cc: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org On Mon, May 26, 2014 at 02:46:32PM +0300, ville.syrjala@linux.intel.com wro= te: > From: Ville Syrj=E4l=E4 > = > The new watermaek update mechanism requires interrupts to work s/watermaek/watermark/ > correctly. Because of this we need interrupts while disabling crtcs > during suspend. So move the irq disable to happen a bit later. I'm not super familiar with this code, so I might be missing something, but won't this cause us to call drm_irq_uninstall() and then potentially dev->driver->get_vblank_counter() while the pipe is disabled (which will result in get_vblank_counter() returning 0)? Also, does it cause any problems if if our interrupt handler races with intel_disable_pipe()? Matt > = > This also avoid clobbering the vblank.last count in case the > vblank interrupt was already disabled earlier by the timer. > In that case drm_vblank_off() will need .last to be correct so > that it can update the user visible vblank counter value > approapriately. > = > v2: Note vblank counter in commit message > = > Signed-off-by: Ville Syrj=E4l=E4 > --- > drivers/gpu/drm/i915/i915_drv.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > = > diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_= drv.c > index 4619c9e..21554a0 100644 > --- a/drivers/gpu/drm/i915/i915_drv.c > +++ b/drivers/gpu/drm/i915/i915_drv.c > @@ -524,7 +524,6 @@ static int i915_drm_freeze(struct drm_device *dev) > return error; > } > = > - drm_irq_uninstall(dev); > dev_priv->enable_hotplug_processing =3D false; > = > intel_disable_gt_powersave(dev); > @@ -541,6 +540,8 @@ static int i915_drm_freeze(struct drm_device *dev) > } > mutex_unlock(&dev->mode_config.mutex); > = > + drm_irq_uninstall(dev); > + > intel_modeset_suspend_hw(dev); > } > = > -- = > 1.8.5.5 > = > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/intel-gfx -- = Matt Roper Graphics Software Engineer IoTG Platform Enabling & Development Intel Corporation (916) 356-2795