--- xf86-video-nouveau-old/src/nv10_video_overlay.c 2008-02-25 15:46:13.000000000 +0900 +++ xf86-video-nouveau/src/nv10_video_overlay.c 2008-03-11 16:07:57.000000000 +0900 @@ -68,9 +68,11 @@ short drw_w, short drw_h, RegionPtr clipBoxes) { - NVPtr pNv = NVPTR(pScrn); - NVPortPrivPtr pPriv = GET_OVERLAY_PRIVATE(pNv); - int buffer = pPriv->currentBuffer; + NVPtr pNv = NVPTR(pScrn); + NVPortPrivPtr pPriv = GET_OVERLAY_PRIVATE(pNv); + int buffer = pPriv->currentBuffer; + xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(pScrn); + xf86CrtcPtr crtc = xf86_config->crtc[pPriv->overlayCRTC]; /* paint the color key */ if(pPriv->autopaintColorKey && (pPriv->grabbedByV4L || @@ -83,7 +85,7 @@ } } - if (pScrn->currentMode->Flags & V_DBLSCAN) { + if (crtc->mode.Flags & V_DBLSCAN) { dstBox->y1 <<= 1; dstBox->y2 <<= 1; drw_h <<= 1; --- xf86-video-nouveau-old/src/nv04_video_overlay.c 2008-02-25 15:46:13.000000000 +0900 +++ xf86-video-nouveau/src/nv04_video_overlay.c 2008-03-11 16:07:36.000000000 +0900 @@ -45,9 +45,11 @@ short drw_w, short drw_h, RegionPtr clipBoxes) { - NVPtr pNv = NVPTR(pScrn); - NVPortPrivPtr pPriv = GET_OVERLAY_PRIVATE(pNv); - + NVPtr pNv = NVPTR(pScrn); + NVPortPrivPtr pPriv = GET_OVERLAY_PRIVATE(pNv); + xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(pScrn); + xf86CrtcPtr crtc = xf86_config->crtc[pPriv->overlayCRTC]; + /* paint the color key */ if(pPriv->autopaintColorKey && (pPriv->grabbedByV4L || !REGION_EQUAL(pScrn->pScreen, &pPriv->clip, clipBoxes))) { @@ -59,7 +61,7 @@ } } - if (pScrn->currentMode->Flags & V_DBLSCAN) { /*This may not work with NV04 overlay according to rivatv source*/ + if (crtc->mode.Flags & V_DBLSCAN) { /*This may not work with NV04 overlay according to rivatv source*/ dstBox->y1 <<= 1; dstBox->y2 <<= 1; drw_h <<= 1;