the DRM_{READ,WRITE}$NUMBER() macros currently use
authoroga <oga@openbsd.org>
Thu, 10 Jul 2008 00:10:22 +0000 (00:10 +0000)
committeroga <oga@openbsd.org>
Thu, 10 Jul 2008 00:10:22 +0000 (00:10 +0000)
commit55b30f98bcbd0ba8b539fa04f46d34896a1c7d2e
tree5981155a7dd1ea30f1ddc1d3ebc4fb5b6ff348fb
parent69e812cb541cd4d3337bf8ed143530de37f0bb7e
the DRM_{READ,WRITE}$NUMBER() macros currently use
bus_space_{read,write}(). A bug in the code this was based on means that
this is also used for scatter gather maps, which are bus_dma memory, not
pci memory.  This obviously fails. Pull them out into a function and
Special case scatter gather to use the mapped virtual address to write
instead. Makes writeback test pass on pci and pci express radeon cards.

Tested by, among others ckuethe@ and sthen@.
sys/dev/pci/drm/drmP.h
sys/dev/pci/drm/drm_memory.c