summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBartosz Kosiorek <gang65@poczta.onet.pl>2011-05-08 19:02:30 +0000
committerBartosz Kosiorek <gang65@poczta.onet.pl>2011-05-08 19:02:30 +0000
commit7d18fcde04b42e38e89709b5f88e88107c58cd48 (patch)
treedde1f8630bfc8ad086e28624148b0bc7c30d5ec9
parentb594e516c21287da478647bc2cea0a6e74f79bac (diff)
Fix cursor garbage after suspen/resume for VX855 and VX900 (#405)
-rw-r--r--ChangeLog6
-rw-r--r--src/via_video.c23
2 files changed, 26 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 2f3bb5c..82049f6 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2011-05-08 Bartosz Kosiorek <gang65@poczta.onet.pl>
+
+ Fix cursor garbage after suspend/resume for Xserver 1.10 (#405)
+
+ * src/via_video.c: (viaRestoreVideo):
+
2011-05-04 Bartosz Kosiorek <gang65@poczta.onet.pl>
Fix XAA displaying issues
diff --git a/src/via_video.c b/src/via_video.c
index 58538d8..e5238a3 100644
--- a/src/via_video.c
+++ b/src/via_video.c
@@ -536,9 +536,25 @@ viaRestoreVideo(ScrnInfoPtr pScrn)
viaVidEng->video1y_addr0 = localVidEng->video1y_addr0;
viaVidEng->video1_fifo = localVidEng->video1_fifo;
viaVidEng->video1y_addr3 = localVidEng->video1y_addr3;
- viaVidEng->v1_source_w_h = localVidEng->v1_source_w_h ;
+ viaVidEng->v1_source_w_h = localVidEng->v1_source_w_h;
viaVidEng->video1_CSC1 = localVidEng->video1_CSC1;
viaVidEng->video1_CSC2 = localVidEng->video1_CSC2;
+
+ /* Fix cursor garbage after suspend for VX855 and VX900 (#405) */
+ /* 0x2E4 T Signature Data Result 1 */
+ viaVidEng->video1u_addr1 = localVidEng->video1u_addr1;
+ /* 0x2E8 HI for Primary Display FIFO Control Signal */
+ viaVidEng->video1u_addr2 = localVidEng->video1u_addr2;
+ /* 0x2EC HI for Primary Display FIFO Transparent color */
+ viaVidEng->video1u_addr3 = localVidEng->video1u_addr3;
+ /* 0x2F0 HI for Primary Display Control Signal */
+ viaVidEng->video1v_addr0 = localVidEng->video1v_addr0;
+ /* 0x2F4 HI for Primary Display Frame Buffer Starting Address */
+ viaVidEng->video1v_addr1 = localVidEng->video1v_addr1;
+ /* 0x2F8 HI for Primary Display Horizontal and Vertical Start */
+ viaVidEng->video1v_addr2 = localVidEng->video1v_addr2;
+ /* 0x2FC HI for Primary Display Center Offset */
+ viaVidEng->video1v_addr3 = localVidEng->video1v_addr3;
}
viaVidEng->snd_color_key = localVidEng->snd_color_key;
viaVidEng->v3alpha_prefifo = localVidEng->v3alpha_prefifo;
@@ -559,10 +575,11 @@ viaRestoreVideo(ScrnInfoPtr pScrn)
viaVidEng->video3_CSC2 = localVidEng->video3_CSC2;
viaVidEng->compose = localVidEng->compose;
- viaVidEng->video1_ctl = pVia->dwV1;
viaVidEng->video3_ctl = pVia->dwV3;
- if (pVia->ChipId != PCI_CHIP_VT3314)
+ if (pVia->ChipId != PCI_CHIP_VT3314) {
+ viaVidEng->video1_ctl = pVia->dwV1;
viaVidEng->compose = V1_COMMAND_FIRE;
+ }
viaVidEng->compose = V3_COMMAND_FIRE;
}