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, ®4bh);
- 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