serverworks: fix DMA
authorBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Thu, 19 Jul 2007 23:11:56 +0000 (01:11 +0200)
committerBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Thu, 19 Jul 2007 23:11:56 +0000 (01:11 +0200)
The driver used to depend on BIOS settings for deciding whether it is OK
to use DMA.  However it seems that BIOS doesn't always handle all cases
correctly so just let IDE core to decide about this.  It should be a safe
thing to do now, after the driver went through heavy bugfixing.

Thanks for bugreport and testing the patch goes out to Sven Niedner.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
drivers/ide/pci/serverworks.c

index 011245246b1f83fd97ef4dd5aef6e860922f8932..abc3cd58aaa9a71f7dd3b13ddd1a1626dbf988ae 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * linux/drivers/ide/pci/serverworks.c         Version 0.21    Jun 16 2007
+ * linux/drivers/ide/pci/serverworks.c         Version 0.22    Jun 27 2007
  *
  * Copyright (C) 1998-2000 Michel Aubry
  * Copyright (C) 1998-2000 Andrzej Krzysztofowicz
@@ -387,8 +387,6 @@ static u8 __devinit ata66_svwks(ide_hwif_t *hwif)
 
 static void __devinit init_hwif_svwks (ide_hwif_t *hwif)
 {
-       u8 dma_stat = 0;
-
        if (!hwif->irq)
                hwif->irq = hwif->channel ? 15 : 14;
 
@@ -419,9 +417,7 @@ static void __devinit init_hwif_svwks (ide_hwif_t *hwif)
        if (!noautodma)
                hwif->autodma = 1;
 
-       dma_stat = inb(hwif->dma_status);
-       hwif->drives[0].autodma = (dma_stat & 0x20);
-       hwif->drives[1].autodma = (dma_stat & 0x40);
+       hwif->drives[0].autodma = hwif->drives[1].autodma = 1;
 }
 
 static int __devinit init_setup_svwks (struct pci_dev *dev, ide_pci_device_t *d)