On Wednesday, October 31, 2007 3:12 Mathieu Bérard wrote:
> +void mach64_disable_vblank(struct drm_device * dev, int crtc)
> +{
> +       drm_mach64_private_t *dev_priv = dev->dev_private;
>         u32 status = MACH64_READ(MACH64_CRTC_INT_CNTL);
>  
> -       DRM_DEBUG("before install CRTC_INT_CTNL: 0x%08x\n", status);
> +       DRM_DEBUG("before disable vblank CRTC_INT_CTNL: 0x%08x\n",
> status); 
>         /* Disable and clear VBLANK interrupt */
>         MACH64_WRITE(MACH64_CRTC_INT_CNTL, (status &
> ~MACH64_CRTC_VBLANK_INT_EN) | MACH64_CRTC_VBLANK_INT);
>  }

I think this bit might cause problems.  Since it doesn't look like 
you're using a hardware provided vblank count register, you'll want to 
keep vblank interrupts on after the first enable call so that it'll 
keep getting incremented in mach64_driver_irq_handler(), otherwise 
after the first disable() it'll stand still.  Mostly this won't be a 
problem, but for some applications it's possible that it would cause 
them to hang or behave unexpectedly.

Jesse

-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
--
_______________________________________________
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to