summaryrefslogtreecommitdiff
path: root/src/via_video.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/via_video.c')
-rw-r--r--src/via_video.c28
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);