diff options
author | Andi Kleen <ak@suse.de> | 2007-06-20 12:23:32 +0200 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-06-20 23:27:25 +0200 |
commit | 388c19e176436707eb30a81c7e4129e08769f92b (patch) | |
tree | 168017ad573b12c35a39f52f3513c779de3fb8c8 /include/asm-i386/dma-mapping.h | |
parent | x86_64: Fix eventd/timerfd syscalls (diff) | |
download | linux-388c19e176436707eb30a81c7e4129e08769f92b.tar.xz linux-388c19e176436707eb30a81c7e4129e08769f92b.zip |
x86: Disable DAC on VIA bridges
Several reports that VIA bridges don't support DAC and corrupt
data. I don't know if it's fixed, but let's just blacklist
them all for now.
It can be overwritten with iommu=usedac
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to '')
-rw-r--r-- | include/asm-i386/dma-mapping.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/include/asm-i386/dma-mapping.h b/include/asm-i386/dma-mapping.h index 183eebeebbdc..f1d72d177f68 100644 --- a/include/asm-i386/dma-mapping.h +++ b/include/asm-i386/dma-mapping.h @@ -123,6 +123,8 @@ dma_mapping_error(dma_addr_t dma_addr) return 0; } +extern int forbid_dac; + static inline int dma_supported(struct device *dev, u64 mask) { @@ -134,6 +136,10 @@ dma_supported(struct device *dev, u64 mask) if(mask < 0x00ffffff) return 0; + /* Work around chipset bugs */ + if (forbid_dac > 0 && mask > 0xffffffffULL) + return 0; + return 1; } |