diff options
author | Andi Kleen <ak@suse.de> | 2007-06-20 06:23:32 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-06-20 17:27:25 -0400 |
commit | 388c19e176436707eb30a81c7e4129e08769f92b (patch) | |
tree | 168017ad573b12c35a39f52f3513c779de3fb8c8 /include/asm-i386 | |
parent | 0b622330213ce0f0ee23199e433ed73284209b46 (diff) |
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 'include/asm-i386')
-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) | |||
123 | return 0; | 123 | return 0; |
124 | } | 124 | } |
125 | 125 | ||
126 | extern int forbid_dac; | ||
127 | |||
126 | static inline int | 128 | static inline int |
127 | dma_supported(struct device *dev, u64 mask) | 129 | dma_supported(struct device *dev, u64 mask) |
128 | { | 130 | { |
@@ -134,6 +136,10 @@ dma_supported(struct device *dev, u64 mask) | |||
134 | if(mask < 0x00ffffff) | 136 | if(mask < 0x00ffffff) |
135 | return 0; | 137 | return 0; |
136 | 138 | ||
139 | /* Work around chipset bugs */ | ||
140 | if (forbid_dac > 0 && mask > 0xffffffffULL) | ||
141 | return 0; | ||
142 | |||
137 | return 1; | 143 | return 1; |
138 | } | 144 | } |
139 | 145 | ||