summaryrefslogtreecommitdiff
path: root/linux/src/drivers/block/triton.c
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2008-02-06 11:31:38 +0000
committerThomas Schwinge <tschwinge@gnu.org>2009-06-18 00:27:14 +0200
commit445bb802adb5b1a55a0e65639f8c26d312fd0a13 (patch)
tree77bd05f072796e803cf910300b61f15ad3b4cf76 /linux/src/drivers/block/triton.c
parent5684de1053f6aa9339107319445679af91770b8c (diff)
* linux/src/drivers/block/triton.c (ide_init_triton): Enable Bus
Mastering if not enabled by BIOS.
Diffstat (limited to 'linux/src/drivers/block/triton.c')
-rw-r--r--linux/src/drivers/block/triton.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/linux/src/drivers/block/triton.c b/linux/src/drivers/block/triton.c
index 739b1b9..0017069 100644
--- a/linux/src/drivers/block/triton.c
+++ b/linux/src/drivers/block/triton.c
@@ -409,7 +409,17 @@ void ide_init_triton (byte bus, byte fn)
goto quit;
}
if ((pcicmd & 4) == 0) {
- printk("ide: BM-DMA feature is not enabled (BIOS)\n");
+ printk("ide: BM-DMA feature is not enabled (BIOS), enabling\n");
+ pcicmd |= 4;
+ pcibios_write_config_word(bus, fn, 0x04, pcicmd);
+ if ((rc = pcibios_read_config_word(bus, fn, 0x04, &pcicmd))) {
+ printk("ide: Couldn't read back PCI command\n");
+ goto quit;
+ }
+ }
+
+ if ((pcicmd & 4) == 0) {
+ printk("ide: BM-DMA feature couldn't be enabled\n");
} else {
/*
* Get the bmiba base address