Skip to contentSkip to conversation

sis5513: fix PIO setup for ATAPI devices

PATCH In review Bartlomiej Zolnierkiewicz 1 participant 1 message Oct 6, 2009 libata

lore
Share & tools
lore
#0 lore raw

PATCH 1/2 sis5513: fix PIO setup for ATAPI devices

From: Bartlomiej Zolnierkiewicz <[email protected]>
Subject: [PATCH] sis5513: fix PIO setup for ATAPI devices

Clear prefetch setting before potentially (re-)enabling it in config_drive_art_rwp() so the transition of the device type on the port from ATA to ATAPI (i.e. during warm-plug operation) is handled correctly.

This is a really old bug (it probably goes back to very early days of the driver) but it was only affecting warm-plug operation until the recent "ide: try to use PIO Mode 0 during probe if possible" change (commit 6029336426a2b43e4bc6f4a84be8789a047d139e).

---
Oh, if you're curious pata_sis doesn't have the bug but the fix was never backported for some unknown reasons..

 drivers/ide/sis5513.c |    4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
drivers/ide/sis5513.c +3 -1
Index: b/drivers/ide/sis5513.c
===================================================================
@@ -2,7 +2,7 @@
  * Copyright (C) 1999-2000	Andre Hedrick <[email protected]>
  * Copyright (C) 2002		Lionel Bouton <[email protected]>, Maintainer
  * Copyright (C) 2003		Vojtech Pavlik <[email protected]>
- * Copyright (C) 2007		Bartlomiej Zolnierkiewicz
+ * Copyright (C) 2007-2009	Bartlomiej Zolnierkiewicz
  *
  * May be copied or modified under the terms of the GNU General Public License
  *
@@ -281,6 +281,8 @@ static void config_drive_art_rwp(ide_dri
 
 	pci_read_config_byte(dev, 0x4b, &reg4bh);
 
+	reg4bh &= ~(0x11 << drive->dn);
+
 	if (drive->media == ide_disk)
 		rw_prefetch = 0x11 << drive->dn;