915gm/945gm/XAA lockup playing Xv video a second time (after mode-switch)

Peter Clifton pcjc2 at cam.ac.uk
Mon Oct 22 13:39:23 PDT 2007


On Mon, 2007-10-15 at 21:04 +0800, Keith Packard wrote:
[snip]
> So, perhaps this fix is close to what we want after all. However, you'll
> note that the call to i830_overlay_switch_to_crtc will *never happen*
> anymore as pPriv->current_crtc will always be NULL in the (on) case.
> That would make this equivalent:
> 
> diff --git a/src/i830_video.c b/src/i830_video.c
> index beec03e..17a9dd9 100644
> --- a/src/i830_video.c
> +++ b/src/i830_video.c
> @@ -2835,15 +2835,14 @@ i830_crtc_dpms_video(xf86CrtcPtr crtc, Bool on)
>      if (crtc != pPriv->current_crtc)
>         return;
>  
> -    /* Check if it's the crtc the overlay is on */
> -    if (on) {
> -       i830_overlay_switch_to_crtc (pScrn, crtc);
> -    } else {
> +    /* Check if it's the crtc the overlay is off */
> +    if (!on) {
>         /* We stop the video when mode switching, so we don't lock up
>          * the engine. The overlayOK will determine whether we can
> re-enable
>          * with the current video on completion of the mode switch.
>          */
>         I830StopVideo(pScrn, pPriv, TRUE);
> +       pPriv->current_crtc = NULL;
>         pPriv->overlayOK = FALSE;
>         pPriv->oneLineMode = FALSE;
>      }

My former version is in the latest Ubuntu release, however as I
understand it, this version just removes code which is rendered
unreachable by that patch.

Is this fix now suitable for pushing upstream, or does more work need to
be done?

Best wishes,

-- 
Peter Clifton

Electrical Engineering Division,
Engineering Department,
University of Cambridge,
9, JJ Thomson Avenue,
Cambridge
CB3 0FA

Tel: +44 (0)7729 980173 - (No signal in the lab!)




More information about the xorg mailing list