drm/radeon/kms: fix for radeon on systems >4GB without hardware iommu
commitce63e3f96077c6979c9e1e31c5c3abef8c3d9dd9
authorDaniel Haid <d.haid@gogi.tv>
Wed, 8 Jun 2011 10:04:45 +0000 (8 20:04 +1000)
committerAndi Kleen <ak@linux.intel.com>
Mon, 1 Aug 2011 20:54:55 +0000 (1 13:54 -0700)
tree14578a5ff3e40cb40205da60e347dcab599b33a7
parent80f7f2adfc263a1d9ffcf8435c6bef49f56b2392
drm/radeon/kms: fix for radeon on systems >4GB without hardware iommu

commit 62fff811d73095bd95579d72f558f03c78f7914a upstream.

On my x86_64 system with >4GB of ram and swiotlb instead of
a hardware iommu (because I have a VIA chipset), the call
to pci_set_dma_mask (see below) with 40bits returns an error.

But it seems that the radeon driver is designed to have
need_dma32 = true exactly if pci_set_dma_mask is called
with 32 bits and false if it is called with 40 bits.

I have read somewhere that the default are 32 bits. So if the
call fails I suppose that need_dma32 should be set to true.

And indeed the patch fixes the problem I have had before
and which I had described here:
http://choon.net/forum/read.php?21,106131,115940

Acked-by: Alex Deucher <alexdeucher@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Signed-off-by: Andi Kleen <ak@linux.intel.com>
drivers/gpu/drm/radeon/radeon_device.c