summaryrefslogtreecommitdiff
path: root/linux-core/savage_bci.c
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2008-03-30 07:33:39 +1000
committerDave Airlie <airlied@redhat.com>2008-03-30 07:33:39 +1000
commit753a4bdf1b554490f7b288c0203050b5114433c3 (patch)
tree0ab601ad630192c2fe9dd29d6a9543b3c615dede /linux-core/savage_bci.c
parent1674d2817929fe4ee4e1c4762e89600119dbdc50 (diff)
drm/r300: fix wait interface mixup
This interface was defined completely wrong, however userspace has only ever used 4 values from it (0x1, 0x2, 0x3 and 0x6), so fix the interface to do what userspace actually expected but define new defines for new users to use it properly.
Diffstat (limited to 'linux-core/savage_bci.c')
0 files changed, 0 insertions, 0 deletions
n class="hl opt">{ struct drm_nouveau_private *dev_priv = dev->dev_private; uint32_t low; /* From kmmio dumps on nv28 this looks like how the blob does this. * It reads the high dword twice, before and after. * The only explanation seems to be that the 64-bit timer counter * advances between high and low dword reads and may corrupt the * result. Not confirmed. */ uint32_t high2 = NV_READ(NV04_PTIMER_TIME_1); uint32_t high1; do { high1 = high2; low = NV_READ(NV04_PTIMER_TIME_0); high2 = NV_READ(NV04_PTIMER_TIME_1); } while(high1 != high2); return (((uint64_t)high2) << 32) | (uint64_t)low; } void nv04_timer_takedown(struct drm_device *dev) { }