diff options
-rw-r--r-- | drivers/ide/ide-probe.c | 9 | ||||
-rw-r--r-- | drivers/ide/sis5513.c | 10 |
2 files changed, 15 insertions, 4 deletions
diff --git a/drivers/ide/ide-probe.c b/drivers/ide/ide-probe.c index 4d76ba473097..63c53d65e875 100644 --- a/drivers/ide/ide-probe.c +++ b/drivers/ide/ide-probe.c | |||
@@ -1046,6 +1046,15 @@ static void ide_port_init_devices(ide_hwif_t *hwif) | |||
1046 | if (port_ops && port_ops->init_dev) | 1046 | if (port_ops && port_ops->init_dev) |
1047 | port_ops->init_dev(drive); | 1047 | port_ops->init_dev(drive); |
1048 | } | 1048 | } |
1049 | |||
1050 | ide_port_for_each_dev(i, drive, hwif) { | ||
1051 | /* | ||
1052 | * default to PIO Mode 0 before we figure out | ||
1053 | * the most suited mode for the attached device | ||
1054 | */ | ||
1055 | if (port_ops && port_ops->set_pio_mode) | ||
1056 | port_ops->set_pio_mode(drive, 0); | ||
1057 | } | ||
1049 | } | 1058 | } |
1050 | 1059 | ||
1051 | static void ide_init_port(ide_hwif_t *hwif, unsigned int port, | 1060 | static void ide_init_port(ide_hwif_t *hwif, unsigned int port, |
diff --git a/drivers/ide/sis5513.c b/drivers/ide/sis5513.c index afca22beaadf..3b88eba04c9c 100644 --- a/drivers/ide/sis5513.c +++ b/drivers/ide/sis5513.c | |||
@@ -2,7 +2,7 @@ | |||
2 | * Copyright (C) 1999-2000 Andre Hedrick <andre@linux-ide.org> | 2 | * Copyright (C) 1999-2000 Andre Hedrick <andre@linux-ide.org> |
3 | * Copyright (C) 2002 Lionel Bouton <Lionel.Bouton@inet6.fr>, Maintainer | 3 | * Copyright (C) 2002 Lionel Bouton <Lionel.Bouton@inet6.fr>, Maintainer |
4 | * Copyright (C) 2003 Vojtech Pavlik <vojtech@suse.cz> | 4 | * Copyright (C) 2003 Vojtech Pavlik <vojtech@suse.cz> |
5 | * Copyright (C) 2007 Bartlomiej Zolnierkiewicz | 5 | * Copyright (C) 2007-2009 Bartlomiej Zolnierkiewicz |
6 | * | 6 | * |
7 | * May be copied or modified under the terms of the GNU General Public License | 7 | * May be copied or modified under the terms of the GNU General Public License |
8 | * | 8 | * |
@@ -281,11 +281,13 @@ static void config_drive_art_rwp(ide_drive_t *drive) | |||
281 | 281 | ||
282 | pci_read_config_byte(dev, 0x4b, ®4bh); | 282 | pci_read_config_byte(dev, 0x4b, ®4bh); |
283 | 283 | ||
284 | rw_prefetch = reg4bh & ~(0x11 << drive->dn); | ||
285 | |||
284 | if (drive->media == ide_disk) | 286 | if (drive->media == ide_disk) |
285 | rw_prefetch = 0x11 << drive->dn; | 287 | rw_prefetch |= 0x11 << drive->dn; |
286 | 288 | ||
287 | if ((reg4bh & (0x11 << drive->dn)) != rw_prefetch) | 289 | if (reg4bh != rw_prefetch) |
288 | pci_write_config_byte(dev, 0x4b, reg4bh|rw_prefetch); | 290 | pci_write_config_byte(dev, 0x4b, rw_prefetch); |
289 | } | 291 | } |
290 | 292 | ||
291 | static void sis_set_pio_mode(ide_drive_t *drive, const u8 pio) | 293 | static void sis_set_pio_mode(ide_drive_t *drive, const u8 pio) |