[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <72a54a970741bfc342467045351df812@admin.gogi.tv>
Date: Fri, 03 Jun 2011 18:31:42 +0100
From: Daniel Haid <d.haid@...i.tv>
To: <linux-kernel@...r.kernel.org>
Cc: Andi Kleen <andi@...stfloor.org>,
Konrad Rzeszutek Wilk <konrad.wilk@...cle.com>,
<airlied@...ux.ie>, <alexdeucher@...il.com>
Subject: [PATCH] tentative fix for radeon on systems >4GB without hardware
iommu
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
---
linux-2.6.39-gentoo/drivers/gpu/drm/radeon/radeon_device.c.old 2011-06-03
19:11:33.208891994 +0200
+++
linux-2.6.39-gentoo/drivers/gpu/drm/radeon/radeon_device.c 2011-06-03
19:21:10.240337986 +0200
@@ -752,6 +752,7 @@ int radeon_device_init(struct radeon_dev
dma_bits = rdev->need_dma32 ? 32 : 40;
r = pci_set_dma_mask(rdev->pdev, DMA_BIT_MASK(dma_bits));
if (r) {
+ rdev->need_dma32 = true;
printk(KERN_WARNING "radeon: No suitable DMA available.\n");
}
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists