diff options
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | linux/src/drivers/block/triton.c | 12 |
2 files changed, 17 insertions, 2 deletions
@@ -1,4 +1,9 @@ -2007-12-30 Samuel thibault <samuel.thibault@ens-lyon.org> +2008-02-06 Samuel Thibault <samuel.thibault@ens-lyon.org> + + * linux/src/drivers/block/triton.c (ide_init_triton): Enable Bus + Mastering if not enabled by BIOS. + +2007-12-30 Samuel Thibault <samuel.thibault@ens-lyon.org> * kern/debug.c (panic) [MACH_KDB]: Don't wait before running the debugger. 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 |