diff options
Diffstat (limited to 'drivers/ide/ide-iops.c')
-rw-r--r-- | drivers/ide/ide-iops.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/ide/ide-iops.c b/drivers/ide/ide-iops.c index 97a49e77a8f..77703acaec1 100644 --- a/drivers/ide/ide-iops.c +++ b/drivers/ide/ide-iops.c | |||
@@ -6,7 +6,6 @@ | |||
6 | * | 6 | * |
7 | */ | 7 | */ |
8 | 8 | ||
9 | #include <linux/config.h> | ||
10 | #include <linux/module.h> | 9 | #include <linux/module.h> |
11 | #include <linux/types.h> | 10 | #include <linux/types.h> |
12 | #include <linux/string.h> | 11 | #include <linux/string.h> |
@@ -24,6 +23,7 @@ | |||
24 | #include <linux/hdreg.h> | 23 | #include <linux/hdreg.h> |
25 | #include <linux/ide.h> | 24 | #include <linux/ide.h> |
26 | #include <linux/bitops.h> | 25 | #include <linux/bitops.h> |
26 | #include <linux/nmi.h> | ||
27 | 27 | ||
28 | #include <asm/byteorder.h> | 28 | #include <asm/byteorder.h> |
29 | #include <asm/irq.h> | 29 | #include <asm/irq.h> |
@@ -597,6 +597,10 @@ u8 eighty_ninty_three (ide_drive_t *drive) | |||
597 | { | 597 | { |
598 | if(HWIF(drive)->udma_four == 0) | 598 | if(HWIF(drive)->udma_four == 0) |
599 | return 0; | 599 | return 0; |
600 | |||
601 | /* Check for SATA but only if we are ATA5 or higher */ | ||
602 | if (drive->id->hw_config == 0 && (drive->id->major_rev_num & 0x7FE0)) | ||
603 | return 1; | ||
600 | if (!(drive->id->hw_config & 0x6000)) | 604 | if (!(drive->id->hw_config & 0x6000)) |
601 | return 0; | 605 | return 0; |
602 | #ifndef CONFIG_IDEDMA_IVB | 606 | #ifndef CONFIG_IDEDMA_IVB |
@@ -1240,6 +1244,7 @@ int ide_wait_not_busy(ide_hwif_t *hwif, unsigned long timeout) | |||
1240 | if (stat == 0xff) | 1244 | if (stat == 0xff) |
1241 | return -ENODEV; | 1245 | return -ENODEV; |
1242 | touch_softlockup_watchdog(); | 1246 | touch_softlockup_watchdog(); |
1247 | touch_nmi_watchdog(); | ||
1243 | } | 1248 | } |
1244 | return -EBUSY; | 1249 | return -EBUSY; |
1245 | } | 1250 | } |