aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/radeon/rs690.c
diff options
context:
space:
mode:
authorAlex Deucher <alexdeucher@gmail.com>2009-12-09 14:40:06 -0500
committerDave Airlie <airlied@redhat.com>2009-12-10 00:09:05 -0500
commit69b3b5e59bc763c30d0098ae4bbe1225c0e82a04 (patch)
tree0e76e8bc46d589419eb16769a2c3560810395ac7 /drivers/gpu/drm/radeon/rs690.c
parent2e7b6f7fa62d92d941c626f8ae45f5cd75a52d55 (diff)
drm/radeon/kms/avivo: fix some bugs in the display bandwidth setup
Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Signed-off-by: Dave Airlie <airlied@linux.ie>
Diffstat (limited to 'drivers/gpu/drm/radeon/rs690.c')
-rw-r--r--drivers/gpu/drm/radeon/rs690.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/gpu/drm/radeon/rs690.c b/drivers/gpu/drm/radeon/rs690.c
index eb486ee7ea00..98079367fbba 100644
--- a/drivers/gpu/drm/radeon/rs690.c
+++ b/drivers/gpu/drm/radeon/rs690.c
@@ -260,8 +260,9 @@ void rs690_crtc_bandwidth_compute(struct radeon_device *rdev,
260 260
261 b.full = rfixed_const(mode->crtc_hdisplay); 261 b.full = rfixed_const(mode->crtc_hdisplay);
262 c.full = rfixed_const(256); 262 c.full = rfixed_const(256);
263 a.full = rfixed_mul(wm->num_line_pair, b); 263 a.full = rfixed_div(b, c);
264 request_fifo_depth.full = rfixed_div(a, c); 264 request_fifo_depth.full = rfixed_mul(a, wm->num_line_pair);
265 request_fifo_depth.full = rfixed_ceil(request_fifo_depth);
265 if (a.full < rfixed_const(4)) { 266 if (a.full < rfixed_const(4)) {
266 wm->lb_request_fifo_depth = 4; 267 wm->lb_request_fifo_depth = 4;
267 } else { 268 } else {
@@ -390,6 +391,7 @@ void rs690_crtc_bandwidth_compute(struct radeon_device *rdev,
390 a.full = rfixed_const(16); 391 a.full = rfixed_const(16);
391 wm->priority_mark_max.full = rfixed_const(crtc->base.mode.crtc_hdisplay); 392 wm->priority_mark_max.full = rfixed_const(crtc->base.mode.crtc_hdisplay);
392 wm->priority_mark_max.full = rfixed_div(wm->priority_mark_max, a); 393 wm->priority_mark_max.full = rfixed_div(wm->priority_mark_max, a);
394 wm->priority_mark_max.full = rfixed_ceil(wm->priority_mark_max);
393 395
394 /* Determine estimated width */ 396 /* Determine estimated width */
395 estimated_width.full = tolerable_latency.full - wm->worst_case_latency.full; 397 estimated_width.full = tolerable_latency.full - wm->worst_case_latency.full;
@@ -399,6 +401,7 @@ void rs690_crtc_bandwidth_compute(struct radeon_device *rdev,
399 } else { 401 } else {
400 a.full = rfixed_const(16); 402 a.full = rfixed_const(16);
401 wm->priority_mark.full = rfixed_div(estimated_width, a); 403 wm->priority_mark.full = rfixed_div(estimated_width, a);
404 wm->priority_mark.full = rfixed_ceil(wm->priority_mark);
402 wm->priority_mark.full = wm->priority_mark_max.full - wm->priority_mark.full; 405 wm->priority_mark.full = wm->priority_mark_max.full - wm->priority_mark.full;
403 } 406 }
404} 407}