sis5513: clear prefetch and postwrite for ATAPI devices
PATCH 3/4 sis5513: clear prefetch and postwrite for ATAPI devices
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(-)
drivers/ide/pci/sis5513.c +6 -7
@@ -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_drivsis_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); }
Quoted 3 lines · Bartlomiej Zolnierkiewicz
Clear prefetch and postwrite for ATAPI devices instead of depending on BIOS.
Signed-off-by Bartlomiej Zolnierkiewicz <[email protected]>
Acked-by Sergei Shtylyov <[email protected]>
drivers/ide/pci/sis5513.c line 2
Quoted 8 lines
Index:
b/drivers/ide/pci/sis5513.c
===================================================================drivers/ide/pci/sis5513.c +1
-1@@ -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
Oh, the driver turned 0.30! Insn't a time for party? ;-)
Quoted 14 lines
drivers/ide/pci/sis5513.c +1
-3@@ -522,20 +522,19 @@ static void sis_program_timings(ide_drivsis_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 ;
drivers/ide/pci/sis5513.c static void sis_program_timings(ide_driv · line 538
Quoted 10 lines
drivers/ide/pci/sis5513.c +4
-3-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);
... except of | operator's style. ;-)