diff options
Diffstat (limited to 'src/via_video.c')
-rw-r--r-- | src/via_video.c | 28 |
1 files changed, 19 insertions, 9 deletions
diff --git a/src/via_video.c b/src/via_video.c index 62b8a888523a..3a09ba1d40e9 100644 --- a/src/via_video.c +++ b/src/via_video.c @@ -278,7 +278,11 @@ DecideOverlaySupport(ScrnInfoPtr pScrn) if (pVia->ChipId != PCI_CHIP_VT3205 && pVia->ChipId != PCI_CHIP_VT3204 && pVia->ChipId != PCI_CHIP_VT3259 && - pVia->ChipId != PCI_CHIP_VT3314) { + pVia->ChipId != PCI_CHIP_VT3314 && + pVia->ChipId != PCI_CHIP_VT3327 && + pVia->ChipId != PCI_CHIP_VT3336 && + pVia->ChipId != PCI_CHIP_VT3364 && + pVia->ChipId != PCI_CHIP_VT3324) { CARD32 bandwidth = (mode->HDisplay >> 4) * (mode->VDisplay >> 5) * pScrn->bitsPerPixel * mode->VRefresh; @@ -555,7 +559,12 @@ viaInitVideo(ScreenPtr pScreen) ((pVia->Chipset == VIA_CLE266) || (pVia->Chipset == VIA_KM400) || (pVia->Chipset == VIA_K8M800) || - (pVia->Chipset == VIA_PM800) || (pVia->Chipset == VIA_VM800)); + (pVia->Chipset == VIA_PM800) || + (pVia->Chipset == VIA_VM800) || + (pVia->Chipset == VIA_K8M890) || + (pVia->Chipset == VIA_P4M900) || + (pVia->Chipset == VIA_CX700) || + (pVia->Chipset == VIA_P4M890)); if ((pVia->drmVerMajor < 2) || ((pVia->drmVerMajor == 2) && (pVia->drmVerMinor < 9))) pVia->useDmaBlit = FALSE; @@ -571,7 +580,9 @@ viaInitVideo(ScreenPtr pScreen) if ((pVia->Chipset == VIA_CLE266) || (pVia->Chipset == VIA_KM400) || (pVia->Chipset == VIA_K8M800) || (pVia->Chipset == VIA_PM800) || - (pVia->Chipset == VIA_VM800)) { + (pVia->Chipset == VIA_VM800) || (pVia->Chipset == VIA_K8M890) || + (pVia->Chipset == VIA_P4M900) || (pVia->Chipset == VIA_CX700) || + (pVia->Chipset == VIA_P4M890)) { num_new = viaSetupAdaptors(pScreen, &newAdaptors); num_adaptors = xf86XVListGenericAdaptors(pScrn, &adaptors); } else { @@ -1055,8 +1066,7 @@ Flip(VIAPtr pVia, viaPortPrivPtr pPriv, int fourcc, { unsigned long proReg = 0; - if ((pVia->ChipId == PCI_CHIP_VT3259) && - !(pVia->swov.gdwVideoFlagSW & VIDEO_1_INUSE)) + if (pVia->ChipId == PCI_CHIP_VT3259 && !(pVia->swov.gdwVideoFlagSW & VIDEO_1_INUSE)) proReg = PRO_HQV1_OFFSET; switch (fourcc) { @@ -1078,7 +1088,7 @@ Flip(VIAPtr pVia, viaPortPrivPtr pPriv, int fourcc, while ((VIDInD(HQV_CONTROL + proReg) & HQV_SW_FLIP)) ; VIDOutD(HQV_SRC_STARTADDR_Y + proReg, pVia->swov.SWDevice.dwSWPhysicalAddr[DisplayBufferIndex]); - if (pVia->ChipId == PCI_CHIP_VT3259) { + if (pVia->VideoEngine == VIDEO_ENGINE_CME) { VIDOutD(HQV_SRC_STARTADDR_U + proReg, pVia->swov.SWDevice.dwSWCrPhysicalAddr[DisplayBufferIndex]); } else { @@ -1132,8 +1142,8 @@ viaDmaBlitImage(VIAPtr pVia, Bool nv12Conversion; bounceBuffer = ((unsigned long)src & 15); - nv12Conversion = ((pVia->ChipId == PCI_CHIP_VT3259) - && (id == FOURCC_YV12)); + nv12Conversion = (pVia->VideoEngine == VIDEO_ENGINE_CME && + id == FOURCC_YV12); switch (id) { case FOURCC_YUY2: @@ -1325,7 +1335,7 @@ viaPutImage(ScrnInfoPtr pScrn, } else { switch (id) { case FOURCC_YV12: - if (pVia->ChipId == PCI_CHIP_VT3259) { + if (pVia->VideoEngine == VIDEO_ENGINE_CME) { nv12cp(pVia->swov.SWDevice. lpSWOverlaySurface[pVia->dwFrameNum & 1], buf, dstPitch, width, height, 0); |