diff options
Diffstat (limited to 'drivers')
| -rw-r--r-- | drivers/ide/hpt366.c | 2 | ||||
| -rw-r--r-- | drivers/ide/ide-eh.c | 5 | ||||
| -rw-r--r-- | drivers/ide/ide-io.c | 8 | ||||
| -rw-r--r-- | drivers/ide/ide-iops.c | 6 |
4 files changed, 12 insertions, 9 deletions
diff --git a/drivers/ide/hpt366.c b/drivers/ide/hpt366.c index a2e9f6c65a93..7ce68ef6b904 100644 --- a/drivers/ide/hpt366.c +++ b/drivers/ide/hpt366.c | |||
| @@ -727,7 +727,7 @@ static void hpt3xx_maskproc(ide_drive_t *drive, int mask) | |||
| 727 | struct pci_dev *dev = to_pci_dev(hwif->dev); | 727 | struct pci_dev *dev = to_pci_dev(hwif->dev); |
| 728 | struct hpt_info *info = hpt3xx_get_info(hwif->dev); | 728 | struct hpt_info *info = hpt3xx_get_info(hwif->dev); |
| 729 | 729 | ||
| 730 | if (drive->quirk_list == 0) | 730 | if ((drive->dev_flags & IDE_DFLAG_NIEN_QUIRK) == 0) |
| 731 | return; | 731 | return; |
| 732 | 732 | ||
| 733 | if (info->chip_type >= HPT370) { | 733 | if (info->chip_type >= HPT370) { |
diff --git a/drivers/ide/ide-eh.c b/drivers/ide/ide-eh.c index 39d589254d41..2b9141979613 100644 --- a/drivers/ide/ide-eh.c +++ b/drivers/ide/ide-eh.c | |||
| @@ -407,8 +407,9 @@ static ide_startstop_t do_reset1(ide_drive_t *drive, int do_not_try_atapi) | |||
| 407 | /* more than enough time */ | 407 | /* more than enough time */ |
| 408 | udelay(10); | 408 | udelay(10); |
| 409 | /* clear SRST, leave nIEN (unless device is on the quirk list) */ | 409 | /* clear SRST, leave nIEN (unless device is on the quirk list) */ |
| 410 | tp_ops->write_devctl(hwif, (drive->quirk_list == 2 ? 0 : ATA_NIEN) | | 410 | tp_ops->write_devctl(hwif, |
| 411 | ATA_DEVCTL_OBS); | 411 | ((drive->dev_flags & IDE_DFLAG_NIEN_QUIRK) ? 0 : ATA_NIEN) | |
| 412 | ATA_DEVCTL_OBS); | ||
| 412 | /* more than enough time */ | 413 | /* more than enough time */ |
| 413 | udelay(10); | 414 | udelay(10); |
| 414 | hwif->poll_timeout = jiffies + WAIT_WORSTCASE; | 415 | hwif->poll_timeout = jiffies + WAIT_WORSTCASE; |
diff --git a/drivers/ide/ide-io.c b/drivers/ide/ide-io.c index 9654bd34cf52..243cf6561e7e 100644 --- a/drivers/ide/ide-io.c +++ b/drivers/ide/ide-io.c | |||
| @@ -488,11 +488,15 @@ repeat: | |||
| 488 | 488 | ||
| 489 | if ((hwif->host->host_flags & IDE_HFLAG_SERIALIZE) && | 489 | if ((hwif->host->host_flags & IDE_HFLAG_SERIALIZE) && |
| 490 | hwif != prev_port) { | 490 | hwif != prev_port) { |
| 491 | ide_drive_t *cur_dev = | ||
| 492 | prev_port ? prev_port->cur_dev : NULL; | ||
| 493 | |||
| 491 | /* | 494 | /* |
| 492 | * set nIEN for previous port, drives in the | 495 | * set nIEN for previous port, drives in the |
| 493 | * quirk_list may not like intr setups/cleanups | 496 | * quirk list may not like intr setups/cleanups |
| 494 | */ | 497 | */ |
| 495 | if (prev_port && prev_port->cur_dev->quirk_list == 0) | 498 | if (cur_dev && |
| 499 | (cur_dev->dev_flags & IDE_DFLAG_NIEN_QUIRK) == 0) | ||
| 496 | prev_port->tp_ops->write_devctl(prev_port, | 500 | prev_port->tp_ops->write_devctl(prev_port, |
| 497 | ATA_NIEN | | 501 | ATA_NIEN | |
| 498 | ATA_DEVCTL_OBS); | 502 | ATA_DEVCTL_OBS); |
diff --git a/drivers/ide/ide-iops.c b/drivers/ide/ide-iops.c index c55349537c27..fa047150a1c6 100644 --- a/drivers/ide/ide-iops.c +++ b/drivers/ide/ide-iops.c | |||
| @@ -300,11 +300,9 @@ void ide_check_nien_quirk_list(ide_drive_t *drive) | |||
| 300 | 300 | ||
| 301 | for (list = nien_quirk_list; *list != NULL; list++) | 301 | for (list = nien_quirk_list; *list != NULL; list++) |
| 302 | if (strstr(m, *list) != NULL) { | 302 | if (strstr(m, *list) != NULL) { |
| 303 | drive->quirk_list = 2; | 303 | drive->dev_flags |= IDE_DFLAG_NIEN_QUIRK; |
| 304 | return; | 304 | return; |
| 305 | } | 305 | } |
| 306 | |||
| 307 | drive->quirk_list = 0; | ||
| 308 | } | 306 | } |
| 309 | 307 | ||
| 310 | int ide_driveid_update(ide_drive_t *drive) | 308 | int ide_driveid_update(ide_drive_t *drive) |
| @@ -389,7 +387,7 @@ int ide_config_drive_speed(ide_drive_t *drive, u8 speed) | |||
| 389 | 387 | ||
| 390 | tp_ops->exec_command(hwif, ATA_CMD_SET_FEATURES); | 388 | tp_ops->exec_command(hwif, ATA_CMD_SET_FEATURES); |
| 391 | 389 | ||
| 392 | if (drive->quirk_list == 2) | 390 | if (drive->dev_flags & IDE_DFLAG_NIEN_QUIRK) |
| 393 | tp_ops->write_devctl(hwif, ATA_DEVCTL_OBS); | 391 | tp_ops->write_devctl(hwif, ATA_DEVCTL_OBS); |
| 394 | 392 | ||
| 395 | error = __ide_wait_stat(drive, drive->ready_stat, | 393 | error = __ide_wait_stat(drive, drive->ready_stat, |
