]> git.baikalelectronics.ru Git - kernel.git/commit
drm/radeon/kms: don't require up to 64k allocations. (v2)
authorDave Airlie <airlied@redhat.com>
Wed, 23 Sep 2009 06:56:27 +0000 (16:56 +1000)
committerDave Airlie <airlied@linux.ie>
Fri, 25 Sep 2009 03:08:18 +0000 (13:08 +1000)
commitfd2d088cc7020b28e25ad667d3b280e9cbea0695
treeed457db4cfb202015866a131ad4e742503728fad
parent9579cd422c2b08e67665691d38f3843d85637b06
drm/radeon/kms: don't require up to 64k allocations. (v2)

This avoids needing to do a kmalloc > PAGE_SIZE for the main
indirect buffer chunk, it adds an accessor for all reads from
the chunk and caches a single page at a time for subsequent
reads.

changes since v1:
Use a two page pool which should be the most common case
a single packet spanning > PAGE_SIZE will be hit, but I'm
having trouble seeing anywhere we currently generate anything like that.
hopefully proper short page copying at end
added parser_error flag to set deep errors instead of having to test
every ib value fetch.
fixed bug in patch that went to list.

Signed-off-by: Dave Airlie <airlied@redhat.com>
drivers/gpu/drm/radeon/r100.c
drivers/gpu/drm/radeon/r100_track.h
drivers/gpu/drm/radeon/r200.c
drivers/gpu/drm/radeon/r300.c
drivers/gpu/drm/radeon/r600_cs.c
drivers/gpu/drm/radeon/radeon.h
drivers/gpu/drm/radeon/radeon_cs.c