summaryrefslogtreecommitdiff
path: root/src/atombios_crtc.c
diff options
context:
space:
mode:
authorAlex Deucher <alexdeucher@gmail.com>2009-08-18 02:53:29 -0400
committerAlex Deucher <alexdeucher@gmail.com>2009-08-18 02:53:29 -0400
commit479a6daefe46f985c415b0d000b1b1b820f3924e (patch)
tree0974f9300b99990afef12e6050008f32b5bfe820 /src/atombios_crtc.c
parent8fd6f69c84103b277de70181988e843da23c85b0 (diff)
AVIVO: add support for DisplayPriority HIGH
If the DisplayPriority option is set to HIGH, force the diplay mem requests to urgent.
Diffstat (limited to 'src/atombios_crtc.c')
-rw-r--r--src/atombios_crtc.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/src/atombios_crtc.c b/src/atombios_crtc.c
index e04b3c41..176efa65 100644
--- a/src/atombios_crtc.c
+++ b/src/atombios_crtc.c
@@ -807,7 +807,7 @@ RADEONInitDispBandwidthAVIVO(ScrnInfoPtr pScrn,
float consumption_time, consumption_rate;
int num_line_pair, request_fifo_depth, lb_request_fifo_depth;
int max_req;
- uint32_t lb_max_req_outstanding;
+ uint32_t lb_max_req_outstanding, priority_cnt;
float line_time, active_time, chunk_time;
float worst_case_latency, tolerable_latency;
float fill_rate;
@@ -1131,16 +1131,21 @@ RADEONInitDispBandwidthAVIVO(ScrnInfoPtr pScrn,
else if (priority_mark > priority_mark_max)
priority_mark = priority_mark_max;
+ priority_cnt = priority_mark & AVIVO_DxMODE_PRIORITY_MARK_MASK;
+
+ if (info->DispPriority == 2)
+ priority_cnt |= AVIVO_DxMODE_PRIORITY_ALWAYS_ON;
+
/*ErrorF("priority_mark %d: 0x%x\n", i, priority_mark);*/
/* Determine which display to program priority mark for */
/* FIXME: program DxMODE_PRIORITY_B_CNT for slower sclk */
if (i == 0) {
- OUTREG(AVIVO_D1MODE_PRIORITY_A_CNT, (priority_mark & AVIVO_DxMODE_PRIORITY_MARK_MASK));
- OUTREG(AVIVO_D1MODE_PRIORITY_B_CNT, (priority_mark & AVIVO_DxMODE_PRIORITY_MARK_MASK));
+ OUTREG(AVIVO_D1MODE_PRIORITY_A_CNT, priority_cnt);
+ OUTREG(AVIVO_D1MODE_PRIORITY_B_CNT, priority_cnt);
} else {
- OUTREG(AVIVO_D2MODE_PRIORITY_A_CNT, (priority_mark & AVIVO_DxMODE_PRIORITY_MARK_MASK));
- OUTREG(AVIVO_D2MODE_PRIORITY_B_CNT, (priority_mark & AVIVO_DxMODE_PRIORITY_MARK_MASK));
+ OUTREG(AVIVO_D2MODE_PRIORITY_A_CNT, priority_cnt);
+ OUTREG(AVIVO_D2MODE_PRIORITY_B_CNT, priority_cnt);
}
}