| author | Luc Verhaegen <libv@skynet.be> | 2008-12-03 21:55:49 (GMT) |
|---|---|---|
| committer | Luc Verhaegen <libv@skynet.be> | 2008-12-03 21:55:49 (GMT) |
| commit | c2c3b6cb876600a970f4e7e6d03a2eff8245de92 (patch) (side-by-side diff) | |
| tree | 681359fdc4484f92064985a140e153bcae89c3ab | |
| parent | b25bdec73bc21afc1f7f8ac220673a13e1ec920c (diff) | |
| download | xf86-video-unichrome-c2c3b6cb.zip xf86-video-unichrome-c2c3b6cb.tar.gz | |
CLE266: Bus DFP: only null CR88.6 when using TMDS.
This probably is the difference between 24 or 18 bit panels, not sure yet.
| -rw-r--r-- | src/via_output.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/via_output.c b/src/via_output.c index 3fe30f4..c4cbfa7 100644 --- a/src/via_output.c +++ b/src/via_output.c @@ -1189,14 +1189,14 @@ ViaOutputBusPower(struct ViaCrtc *Crtc, int Bus, Bool On) * */ static void -ViaOutputBusSet(struct ViaCrtc *Crtc, int Bus) +ViaOutputBusSet(struct ViaCrtc *Crtc, struct ViaOutput *Output) { vgaHWPtr hwp = VGAHWPTR(xf86Screens[Crtc->scrnIndex]); VIAPtr pVia = VIAPTR(xf86Screens[Crtc->scrnIndex]); VIAFUNC(Crtc->scrnIndex); - switch (Bus) { + switch (Output->Position) { case OUTPUT_BUS_CRT: if (Crtc->ID == VIA_CRTC_SECONDARY) ViaSeqMask(hwp, 0x16, 0x40, 0x40); @@ -1244,7 +1244,8 @@ ViaOutputBusSet(struct ViaCrtc *Crtc, int Bus) ViaCrtcMask(hwp, 0x93, 0x80, 0x80); /* Set Source */ else ViaCrtcMask(hwp, 0x93, 0x00, 0x80); - ViaCrtcMask(hwp, 0x88, 0x00, 0x40); /* ??? */ + if (Output->Type == OUTPUT_TMDS) + ViaCrtcMask(hwp, 0x88, 0x00, 0x40); /* ??? 18 vs 24bit maybe? */ } else { if (Crtc->ID == VIA_CRTC_SECONDARY) { /* Set DFP source */ ViaCrtcMask(hwp, 0x97, 0x10, 0x10); @@ -1260,7 +1261,7 @@ ViaOutputBusSet(struct ViaCrtc *Crtc, int Bus) break; default: xf86DrvMsg(Crtc->scrnIndex, X_ERROR, "%s: unhandled bus: %d\n", - __func__, Bus); + __func__, Output->Position); return; } } @@ -1335,7 +1336,7 @@ ViaOutputsModeSet(struct ViaCrtc *Crtc, DisplayModeRec *Mode) for (Output = pVia->Outputs; Output; Output = Output->Next) { if ((Output->Owner == Crtc->ID) && Output->Active) { ViaOutputBusPower(Crtc, Output->Position, TRUE); - ViaOutputBusSet(Crtc, Output->Position); + ViaOutputBusSet(Crtc, Output); if (Crtc->bpp == 8) /* palette, not gamma */ ViaOutputBusGammaEnable(Output, FALSE); |
