Clear prefetch and postwrite for ATAPI devices instead of depending on BIOS.

Signed-off-by: Bartlomiej Zolnierkiewicz <[EMAIL PROTECTED]>
---
 drivers/ide/pci/sis5513.c |   13 ++++++-------
 1 file changed, 6 insertions(+), 7 deletions(-)

Index: b/drivers/ide/pci/sis5513.c
===================================================================
--- a/drivers/ide/pci/sis5513.c
+++ b/drivers/ide/pci/sis5513.c
@@ -1,5 +1,5 @@
 /*
- * linux/drivers/ide/pci/sis5513.c     Version 0.29    Aug 1, 2007
+ * linux/drivers/ide/pci/sis5513.c     Version 0.30    Aug 9, 2007
  *
  * Copyright (C) 1999-2000     Andre Hedrick <[EMAIL PROTECTED]>
  * Copyright (C) 2002          Lionel Bouton <[EMAIL PROTECTED]>, Maintainer
@@ -522,20 +522,19 @@ static void sis_program_timings(ide_driv
                sis_ata133_program_timings(drive, mode);
 }
 
-/* Enables per-drive prefetch and postwrite */
 static void config_drive_art_rwp (ide_drive_t *drive)
 {
        ide_hwif_t *hwif        = HWIF(drive);
        struct pci_dev *dev     = hwif->pci_dev;
-
        u8 reg4bh               = 0;
-       u8 rw_prefetch          = (0x11 << drive->dn);
+       u8 rw_prefetch          = 0;
 
-       if (drive->media != ide_disk)
-               return;
        pci_read_config_byte(dev, 0x4b, &reg4bh);
 
-       if ((reg4bh & rw_prefetch) != rw_prefetch)
+       if (drive->media == ide_disk)
+               rw_prefetch = 0x11 << drive->dn;
+
+       if ((reg4bh & (0x11 << drive->dn)) != rw_prefetch)
                pci_write_config_byte(dev, 0x4b, reg4bh|rw_prefetch);
 }
 
-
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to