aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/ide/ide-atapi.c32
-rw-r--r--drivers/ide/ide-cd.c16
-rw-r--r--drivers/ide/ide-dma.c2
-rw-r--r--drivers/ide/ide-floppy.c2
-rw-r--r--drivers/ide/ide-io.c25
-rw-r--r--drivers/ide/ide-iops.c22
-rw-r--r--drivers/ide/ide-lib.c48
-rw-r--r--drivers/ide/ide-probe.c16
-rw-r--r--drivers/ide/ide-tape.c6
-rw-r--r--drivers/ide/ide-taskfile.c26
-rw-r--r--drivers/ide/ide.c8
-rw-r--r--drivers/ide/pci/ns87415.c6
-rw-r--r--drivers/ide/pci/scc_pata.c4
-rw-r--r--drivers/scsi/ide-scsi.c2
-rw-r--r--include/linux/ide.h15
15 files changed, 117 insertions, 113 deletions
diff --git a/drivers/ide/ide-atapi.c b/drivers/ide/ide-atapi.c
index 2433fce6c111..12674e6519e6 100644
--- a/drivers/ide/ide-atapi.c
+++ b/drivers/ide/ide-atapi.c
@@ -41,7 +41,7 @@ ide_startstop_t ide_pc_intr(ide_drive_t *drive, struct ide_atapi_pc *pc,
41 41
42 if (pc->flags & PC_FLAG_DMA_IN_PROGRESS) { 42 if (pc->flags & PC_FLAG_DMA_IN_PROGRESS) {
43 if (hwif->dma_ops->dma_end(drive) || 43 if (hwif->dma_ops->dma_end(drive) ||
44 (drive->media == ide_tape && !scsi && (stat & ERR_STAT))) { 44 (drive->media == ide_tape && !scsi && (stat & ATA_ERR))) {
45 if (drive->media == ide_floppy && !scsi) 45 if (drive->media == ide_floppy && !scsi)
46 printk(KERN_ERR "%s: DMA %s error\n", 46 printk(KERN_ERR "%s: DMA %s error\n",
47 drive->name, rq_data_dir(pc->rq) 47 drive->name, rq_data_dir(pc->rq)
@@ -56,7 +56,7 @@ ide_startstop_t ide_pc_intr(ide_drive_t *drive, struct ide_atapi_pc *pc,
56 } 56 }
57 57
58 /* No more interrupts */ 58 /* No more interrupts */
59 if ((stat & DRQ_STAT) == 0) { 59 if ((stat & ATA_DRQ) == 0) {
60 debug_log("Packet command completed, %d bytes transferred\n", 60 debug_log("Packet command completed, %d bytes transferred\n",
61 pc->xferred); 61 pc->xferred);
62 62
@@ -65,10 +65,10 @@ ide_startstop_t ide_pc_intr(ide_drive_t *drive, struct ide_atapi_pc *pc,
65 local_irq_enable_in_hardirq(); 65 local_irq_enable_in_hardirq();
66 66
67 if (drive->media == ide_tape && !scsi && 67 if (drive->media == ide_tape && !scsi &&
68 (stat & ERR_STAT) && rq->cmd[0] == REQUEST_SENSE) 68 (stat & ATA_ERR) && rq->cmd[0] == REQUEST_SENSE)
69 stat &= ~ERR_STAT; 69 stat &= ~ATA_ERR;
70 70
71 if ((stat & ERR_STAT) || (pc->flags & PC_FLAG_DMA_ERROR)) { 71 if ((stat & ATA_ERR) || (pc->flags & PC_FLAG_DMA_ERROR)) {
72 /* Error detected */ 72 /* Error detected */
73 debug_log("%s: I/O error\n", drive->name); 73 debug_log("%s: I/O error\n", drive->name);
74 74
@@ -95,7 +95,7 @@ ide_startstop_t ide_pc_intr(ide_drive_t *drive, struct ide_atapi_pc *pc,
95cmd_finished: 95cmd_finished:
96 pc->error = 0; 96 pc->error = 0;
97 if ((pc->flags & PC_FLAG_WAIT_FOR_DSC) && 97 if ((pc->flags & PC_FLAG_WAIT_FOR_DSC) &&
98 (stat & SEEK_STAT) == 0) { 98 (stat & ATA_DSC) == 0) {
99 dsc_handle(drive); 99 dsc_handle(drive);
100 return ide_stopped; 100 return ide_stopped;
101 } 101 }
@@ -117,17 +117,18 @@ cmd_finished:
117 /* Get the number of bytes to transfer on this interrupt. */ 117 /* Get the number of bytes to transfer on this interrupt. */
118 ide_read_bcount_and_ireason(drive, &bcount, &ireason); 118 ide_read_bcount_and_ireason(drive, &bcount, &ireason);
119 119
120 if (ireason & CD) { 120 if (ireason & ATAPI_COD) {
121 printk(KERN_ERR "%s: CoD != 0 in %s\n", drive->name, __func__); 121 printk(KERN_ERR "%s: CoD != 0 in %s\n", drive->name, __func__);
122 return ide_do_reset(drive); 122 return ide_do_reset(drive);
123 } 123 }
124 124
125 if (((ireason & IO) == IO) == !!(pc->flags & PC_FLAG_WRITING)) { 125 if (((ireason & ATAPI_IO) == ATAPI_IO) ==
126 !!(pc->flags & PC_FLAG_WRITING)) {
126 /* Hopefully, we will never get here */ 127 /* Hopefully, we will never get here */
127 printk(KERN_ERR "%s: We wanted to %s, but the device wants us " 128 printk(KERN_ERR "%s: We wanted to %s, but the device wants us "
128 "to %s!\n", drive->name, 129 "to %s!\n", drive->name,
129 (ireason & IO) ? "Write" : "Read", 130 (ireason & ATAPI_IO) ? "Write" : "Read",
130 (ireason & IO) ? "Read" : "Write"); 131 (ireason & ATAPI_IO) ? "Read" : "Write");
131 return ide_do_reset(drive); 132 return ide_do_reset(drive);
132 } 133 }
133 134
@@ -205,7 +206,8 @@ static u8 ide_wait_ireason(ide_drive_t *drive, u8 ireason)
205{ 206{
206 int retries = 100; 207 int retries = 100;
207 208
208 while (retries-- && ((ireason & CD) == 0 || (ireason & IO))) { 209 while (retries-- && ((ireason & ATAPI_COD) == 0 ||
210 (ireason & ATAPI_IO))) {
209 printk(KERN_ERR "%s: (IO,CoD != (0,1) while issuing " 211 printk(KERN_ERR "%s: (IO,CoD != (0,1) while issuing "
210 "a packet command, retrying\n", drive->name); 212 "a packet command, retrying\n", drive->name);
211 udelay(100); 213 udelay(100);
@@ -214,8 +216,8 @@ static u8 ide_wait_ireason(ide_drive_t *drive, u8 ireason)
214 printk(KERN_ERR "%s: (IO,CoD != (0,1) while issuing " 216 printk(KERN_ERR "%s: (IO,CoD != (0,1) while issuing "
215 "a packet command, ignoring\n", 217 "a packet command, ignoring\n",
216 drive->name); 218 drive->name);
217 ireason |= CD; 219 ireason |= ATAPI_COD;
218 ireason &= ~IO; 220 ireason &= ~ATAPI_IO;
219 } 221 }
220 } 222 }
221 223
@@ -231,7 +233,7 @@ ide_startstop_t ide_transfer_pc(ide_drive_t *drive, struct ide_atapi_pc *pc,
231 ide_startstop_t startstop; 233 ide_startstop_t startstop;
232 u8 ireason; 234 u8 ireason;
233 235
234 if (ide_wait_stat(&startstop, drive, DRQ_STAT, BUSY_STAT, WAIT_READY)) { 236 if (ide_wait_stat(&startstop, drive, ATA_DRQ, ATA_BUSY, WAIT_READY)) {
235 printk(KERN_ERR "%s: Strange, packet command initiated yet " 237 printk(KERN_ERR "%s: Strange, packet command initiated yet "
236 "DRQ isn't asserted\n", drive->name); 238 "DRQ isn't asserted\n", drive->name);
237 return startstop; 239 return startstop;
@@ -241,7 +243,7 @@ ide_startstop_t ide_transfer_pc(ide_drive_t *drive, struct ide_atapi_pc *pc,
241 if (drive->media == ide_tape && !drive->scsi) 243 if (drive->media == ide_tape && !drive->scsi)
242 ireason = ide_wait_ireason(drive, ireason); 244 ireason = ide_wait_ireason(drive, ireason);
243 245
244 if ((ireason & CD) == 0 || (ireason & IO)) { 246 if ((ireason & ATAPI_COD) == 0 || (ireason & ATAPI_IO)) {
245 printk(KERN_ERR "%s: (IO,CoD) != (0,1) while issuing " 247 printk(KERN_ERR "%s: (IO,CoD) != (0,1) while issuing "
246 "a packet command\n", drive->name); 248 "a packet command\n", drive->name);
247 return ide_do_reset(drive); 249 return ide_do_reset(drive);
diff --git a/drivers/ide/ide-cd.c b/drivers/ide/ide-cd.c
index 77e0f9ab7698..239557f8920e 100644
--- a/drivers/ide/ide-cd.c
+++ b/drivers/ide/ide-cd.c
@@ -436,7 +436,7 @@ static int cdrom_decode_status(ide_drive_t *drive, int good_stat, int *stat_ret)
436 ide_dump_status_no_sense(drive, "media error (blank)", 436 ide_dump_status_no_sense(drive, "media error (blank)",
437 stat); 437 stat);
438 do_end_request = 1; 438 do_end_request = 1;
439 } else if ((err & ~ABRT_ERR) != 0) { 439 } else if ((err & ~ATA_ABORTED) != 0) {
440 /* go to the default handler for other errors */ 440 /* go to the default handler for other errors */
441 ide_error(drive, "cdrom_decode_status", stat); 441 ide_error(drive, "cdrom_decode_status", stat);
442 return 1; 442 return 1;
@@ -457,7 +457,7 @@ static int cdrom_decode_status(ide_drive_t *drive, int good_stat, int *stat_ret)
457 * If we got a CHECK_CONDITION status, queue 457 * If we got a CHECK_CONDITION status, queue
458 * a request sense command. 458 * a request sense command.
459 */ 459 */
460 if (stat & ERR_STAT) 460 if (stat & ATA_ERR)
461 cdrom_queue_request_sense(drive, NULL, NULL); 461 cdrom_queue_request_sense(drive, NULL, NULL);
462 } else { 462 } else {
463 blk_dump_rq_flags(rq, "ide-cd: bad rq"); 463 blk_dump_rq_flags(rq, "ide-cd: bad rq");
@@ -468,7 +468,7 @@ static int cdrom_decode_status(ide_drive_t *drive, int good_stat, int *stat_ret)
468 return 1; 468 return 1;
469 469
470end_request: 470end_request:
471 if (stat & ERR_STAT) { 471 if (stat & ATA_ERR) {
472 unsigned long flags; 472 unsigned long flags;
473 473
474 spin_lock_irqsave(&ide_lock, flags); 474 spin_lock_irqsave(&ide_lock, flags);
@@ -574,7 +574,7 @@ static ide_startstop_t cdrom_transfer_packet_command(ide_drive_t *drive,
574 */ 574 */
575 575
576 /* check for errors */ 576 /* check for errors */
577 if (cdrom_decode_status(drive, DRQ_STAT, NULL)) 577 if (cdrom_decode_status(drive, ATA_DRQ, NULL))
578 return ide_stopped; 578 return ide_stopped;
579 579
580 /* ok, next interrupt will be DMA interrupt */ 580 /* ok, next interrupt will be DMA interrupt */
@@ -582,8 +582,8 @@ static ide_startstop_t cdrom_transfer_packet_command(ide_drive_t *drive,
582 drive->waiting_for_dma = 1; 582 drive->waiting_for_dma = 1;
583 } else { 583 } else {
584 /* otherwise, we must wait for DRQ to get set */ 584 /* otherwise, we must wait for DRQ to get set */
585 if (ide_wait_stat(&startstop, drive, DRQ_STAT, 585 if (ide_wait_stat(&startstop, drive, ATA_DRQ,
586 BUSY_STAT, WAIT_READY)) 586 ATA_BUSY, WAIT_READY))
587 return startstop; 587 return startstop;
588 } 588 }
589 589
@@ -938,7 +938,7 @@ static ide_startstop_t cdrom_newpc_intr(ide_drive_t *drive)
938 thislen = len; 938 thislen = len;
939 939
940 /* If DRQ is clear, the command has completed. */ 940 /* If DRQ is clear, the command has completed. */
941 if ((stat & DRQ_STAT) == 0) { 941 if ((stat & ATA_DRQ) == 0) {
942 if (blk_fs_request(rq)) { 942 if (blk_fs_request(rq)) {
943 /* 943 /*
944 * If we're not done reading/writing, complain. 944 * If we're not done reading/writing, complain.
@@ -1206,7 +1206,7 @@ static ide_startstop_t ide_cd_do_request(ide_drive_t *drive, struct request *rq,
1206 unsigned long elapsed = jiffies - info->start_seek; 1206 unsigned long elapsed = jiffies - info->start_seek;
1207 int stat = hwif->tp_ops->read_status(hwif); 1207 int stat = hwif->tp_ops->read_status(hwif);
1208 1208
1209 if ((stat & SEEK_STAT) != SEEK_STAT) { 1209 if ((stat & ATA_DSC) != ATA_DSC) {
1210 if (elapsed < IDECD_SEEK_TIMEOUT) { 1210 if (elapsed < IDECD_SEEK_TIMEOUT) {
1211 ide_stall_queue(drive, 1211 ide_stall_queue(drive,
1212 IDECD_SEEK_TIMER); 1212 IDECD_SEEK_TIMER);
diff --git a/drivers/ide/ide-dma.c b/drivers/ide/ide-dma.c
index 15e608f52eba..ef2f1504c0d5 100644
--- a/drivers/ide/ide-dma.c
+++ b/drivers/ide/ide-dma.c
@@ -106,7 +106,7 @@ ide_startstop_t ide_dma_intr (ide_drive_t *drive)
106 dma_stat = hwif->dma_ops->dma_end(drive); 106 dma_stat = hwif->dma_ops->dma_end(drive);
107 stat = hwif->tp_ops->read_status(hwif); 107 stat = hwif->tp_ops->read_status(hwif);
108 108
109 if (OK_STAT(stat,DRIVE_READY,drive->bad_wstat|DRQ_STAT)) { 109 if (OK_STAT(stat, DRIVE_READY, drive->bad_wstat | ATA_DRQ)) {
110 if (!dma_stat) { 110 if (!dma_stat) {
111 struct request *rq = HWGROUP(drive)->rq; 111 struct request *rq = HWGROUP(drive)->rq;
112 112
diff --git a/drivers/ide/ide-floppy.c b/drivers/ide/ide-floppy.c
index 67f93a46f510..59baa9643f8b 100644
--- a/drivers/ide/ide-floppy.c
+++ b/drivers/ide/ide-floppy.c
@@ -945,7 +945,7 @@ static int idefloppy_get_format_progress(ide_drive_t *drive, int __user *arg)
945 stat = hwif->tp_ops->read_status(hwif); 945 stat = hwif->tp_ops->read_status(hwif);
946 local_irq_restore(flags); 946 local_irq_restore(flags);
947 947
948 progress_indication = ((stat & SEEK_STAT) == 0) ? 0 : 0x10000; 948 progress_indication = ((stat & ATA_DSC) == 0) ? 0 : 0x10000;
949 } 949 }
950 if (put_user(progress_indication, arg)) 950 if (put_user(progress_indication, arg))
951 return (-EFAULT); 951 return (-EFAULT);
diff --git a/drivers/ide/ide-io.c b/drivers/ide/ide-io.c
index ce9ecd138836..8dd7b46b41b7 100644
--- a/drivers/ide/ide-io.c
+++ b/drivers/ide/ide-io.c
@@ -322,7 +322,7 @@ void ide_end_drive_cmd (ide_drive_t *drive, u8 stat, u8 err)
322 ide_task_t *task = (ide_task_t *)rq->special; 322 ide_task_t *task = (ide_task_t *)rq->special;
323 323
324 if (rq->errors == 0) 324 if (rq->errors == 0)
325 rq->errors = !OK_STAT(stat, READY_STAT, BAD_STAT); 325 rq->errors = !OK_STAT(stat, ATA_DRDY, BAD_STAT);
326 326
327 if (task) { 327 if (task) {
328 struct ide_taskfile *tf = &task->tf; 328 struct ide_taskfile *tf = &task->tf;
@@ -373,12 +373,12 @@ static ide_startstop_t ide_ata_error(ide_drive_t *drive, struct request *rq, u8
373{ 373{
374 ide_hwif_t *hwif = drive->hwif; 374 ide_hwif_t *hwif = drive->hwif;
375 375
376 if (stat & BUSY_STAT || ((stat & WRERR_STAT) && !drive->nowerr)) { 376 if ((stat & ATA_BUSY) || ((stat & ATA_DF) && !drive->nowerr)) {
377 /* other bits are useless when BUSY */ 377 /* other bits are useless when BUSY */
378 rq->errors |= ERROR_RESET; 378 rq->errors |= ERROR_RESET;
379 } else if (stat & ERR_STAT) { 379 } else if (stat & ATA_ERR) {
380 /* err has different meaning on cdrom and tape */ 380 /* err has different meaning on cdrom and tape */
381 if (err == ABRT_ERR) { 381 if (err == ATA_ABORTED) {
382 if (drive->select.b.lba && 382 if (drive->select.b.lba &&
383 /* some newer drives don't support ATA_CMD_INIT_DEV_PARAMS */ 383 /* some newer drives don't support ATA_CMD_INIT_DEV_PARAMS */
384 hwif->tp_ops->read_status(hwif) == ATA_CMD_INIT_DEV_PARAMS) 384 hwif->tp_ops->read_status(hwif) == ATA_CMD_INIT_DEV_PARAMS)
@@ -386,16 +386,16 @@ static ide_startstop_t ide_ata_error(ide_drive_t *drive, struct request *rq, u8
386 } else if ((err & BAD_CRC) == BAD_CRC) { 386 } else if ((err & BAD_CRC) == BAD_CRC) {
387 /* UDMA crc error, just retry the operation */ 387 /* UDMA crc error, just retry the operation */
388 drive->crc_count++; 388 drive->crc_count++;
389 } else if (err & (BBD_ERR | ECC_ERR)) { 389 } else if (err & (ATA_BBK | ATA_UNC)) {
390 /* retries won't help these */ 390 /* retries won't help these */
391 rq->errors = ERROR_MAX; 391 rq->errors = ERROR_MAX;
392 } else if (err & TRK0_ERR) { 392 } else if (err & ATA_TRK0NF) {
393 /* help it find track zero */ 393 /* help it find track zero */
394 rq->errors |= ERROR_RECAL; 394 rq->errors |= ERROR_RECAL;
395 } 395 }
396 } 396 }
397 397
398 if ((stat & DRQ_STAT) && rq_data_dir(rq) == READ && 398 if ((stat & ATA_DRQ) && rq_data_dir(rq) == READ &&
399 (hwif->host_flags & IDE_HFLAG_ERROR_STOPS_FIFO) == 0) { 399 (hwif->host_flags & IDE_HFLAG_ERROR_STOPS_FIFO) == 0) {
400 int nsect = drive->mult_count ? drive->mult_count : 1; 400 int nsect = drive->mult_count ? drive->mult_count : 1;
401 401
@@ -407,7 +407,7 @@ static ide_startstop_t ide_ata_error(ide_drive_t *drive, struct request *rq, u8
407 return ide_stopped; 407 return ide_stopped;
408 } 408 }
409 409
410 if (hwif->tp_ops->read_status(hwif) & (BUSY_STAT | DRQ_STAT)) 410 if (hwif->tp_ops->read_status(hwif) & (ATA_BUSY | ATA_DRQ))
411 rq->errors |= ERROR_RESET; 411 rq->errors |= ERROR_RESET;
412 412
413 if ((rq->errors & ERROR_RESET) == ERROR_RESET) { 413 if ((rq->errors & ERROR_RESET) == ERROR_RESET) {
@@ -427,14 +427,14 @@ static ide_startstop_t ide_atapi_error(ide_drive_t *drive, struct request *rq, u
427{ 427{
428 ide_hwif_t *hwif = drive->hwif; 428 ide_hwif_t *hwif = drive->hwif;
429 429
430 if (stat & BUSY_STAT || ((stat & WRERR_STAT) && !drive->nowerr)) { 430 if ((stat & ATA_BUSY) || ((stat & ATA_DF) && !drive->nowerr)) {
431 /* other bits are useless when BUSY */ 431 /* other bits are useless when BUSY */
432 rq->errors |= ERROR_RESET; 432 rq->errors |= ERROR_RESET;
433 } else { 433 } else {
434 /* add decoding error stuff */ 434 /* add decoding error stuff */
435 } 435 }
436 436
437 if (hwif->tp_ops->read_status(hwif) & (BUSY_STAT | DRQ_STAT)) 437 if (hwif->tp_ops->read_status(hwif) & (ATA_BUSY | ATA_DRQ))
438 /* force an abort */ 438 /* force an abort */
439 hwif->tp_ops->exec_command(hwif, ATA_CMD_IDLEIMMEDIATE); 439 hwif->tp_ops->exec_command(hwif, ATA_CMD_IDLEIMMEDIATE);
440 440
@@ -804,7 +804,8 @@ static ide_startstop_t start_request (ide_drive_t *drive, struct request *rq)
804 ide_check_pm_state(drive, rq); 804 ide_check_pm_state(drive, rq);
805 805
806 SELECT_DRIVE(drive); 806 SELECT_DRIVE(drive);
807 if (ide_wait_stat(&startstop, drive, drive->ready_stat, BUSY_STAT|DRQ_STAT, WAIT_READY)) { 807 if (ide_wait_stat(&startstop, drive, drive->ready_stat,
808 ATA_BUSY | ATA_DRQ, WAIT_READY)) {
808 printk(KERN_ERR "%s: drive not ready for command\n", drive->name); 809 printk(KERN_ERR "%s: drive not ready for command\n", drive->name);
809 return startstop; 810 return startstop;
810 } 811 }
@@ -1324,7 +1325,7 @@ static void unexpected_intr (int irq, ide_hwgroup_t *hwgroup)
1324 if (hwif->irq == irq) { 1325 if (hwif->irq == irq) {
1325 stat = hwif->tp_ops->read_status(hwif); 1326 stat = hwif->tp_ops->read_status(hwif);
1326 1327
1327 if (!OK_STAT(stat, READY_STAT, BAD_STAT)) { 1328 if (!OK_STAT(stat, ATA_DRDY, BAD_STAT)) {
1328 /* Try to not flood the console with msgs */ 1329 /* Try to not flood the console with msgs */
1329 static unsigned long last_msgtime, count; 1330 static unsigned long last_msgtime, count;
1330 ++count; 1331 ++count;
diff --git a/drivers/ide/ide-iops.c b/drivers/ide/ide-iops.c
index 21647a2eaff9..8cfa6125c7a4 100644
--- a/drivers/ide/ide-iops.c
+++ b/drivers/ide/ide-iops.c
@@ -473,7 +473,7 @@ int drive_is_ready (ide_drive_t *drive)
473 /* Note: this may clear a pending IRQ!! */ 473 /* Note: this may clear a pending IRQ!! */
474 stat = hwif->tp_ops->read_status(hwif); 474 stat = hwif->tp_ops->read_status(hwif);
475 475
476 if (stat & BUSY_STAT) 476 if (stat & ATA_BUSY)
477 /* drive busy: definitely not interrupting */ 477 /* drive busy: definitely not interrupting */
478 return 0; 478 return 0;
479 479
@@ -505,10 +505,10 @@ static int __ide_wait_stat(ide_drive_t *drive, u8 good, u8 bad, unsigned long ti
505 udelay(1); /* spec allows drive 400ns to assert "BUSY" */ 505 udelay(1); /* spec allows drive 400ns to assert "BUSY" */
506 stat = tp_ops->read_status(hwif); 506 stat = tp_ops->read_status(hwif);
507 507
508 if (stat & BUSY_STAT) { 508 if (stat & ATA_BUSY) {
509 local_irq_set(flags); 509 local_irq_set(flags);
510 timeout += jiffies; 510 timeout += jiffies;
511 while ((stat = tp_ops->read_status(hwif)) & BUSY_STAT) { 511 while ((stat = tp_ops->read_status(hwif)) & ATA_BUSY) {
512 if (time_after(jiffies, timeout)) { 512 if (time_after(jiffies, timeout)) {
513 /* 513 /*
514 * One last read after the timeout in case 514 * One last read after the timeout in case
@@ -516,7 +516,7 @@ static int __ide_wait_stat(ide_drive_t *drive, u8 good, u8 bad, unsigned long ti
516 * progress during the timeout.. 516 * progress during the timeout..
517 */ 517 */
518 stat = tp_ops->read_status(hwif); 518 stat = tp_ops->read_status(hwif);
519 if (!(stat & BUSY_STAT)) 519 if ((stat & ATA_BUSY) == 0)
520 break; 520 break;
521 521
522 local_irq_restore(flags); 522 local_irq_restore(flags);
@@ -685,12 +685,12 @@ int ide_driveid_update(ide_drive_t *drive)
685 685
686 msleep(50); /* give drive a breather */ 686 msleep(50); /* give drive a breather */
687 stat = tp_ops->read_altstatus(hwif); 687 stat = tp_ops->read_altstatus(hwif);
688 } while (stat & BUSY_STAT); 688 } while (stat & ATA_BUSY);
689 689
690 msleep(50); /* wait for IRQ and DRQ_STAT */ 690 msleep(50); /* wait for IRQ and ATA_DRQ */
691 stat = tp_ops->read_status(hwif); 691 stat = tp_ops->read_status(hwif);
692 692
693 if (!OK_STAT(stat, DRQ_STAT, BAD_R_STAT)) { 693 if (!OK_STAT(stat, ATA_DRQ, BAD_R_STAT)) {
694 SELECT_MASK(drive, 0); 694 SELECT_MASK(drive, 0);
695 printk("%s: CHECK for good STATUS\n", drive->name); 695 printk("%s: CHECK for good STATUS\n", drive->name);
696 return 0; 696 return 0;
@@ -776,7 +776,7 @@ int ide_config_drive_speed(ide_drive_t *drive, u8 speed)
776 tp_ops->set_irq(hwif, 1); 776 tp_ops->set_irq(hwif, 1);
777 777
778 error = __ide_wait_stat(drive, drive->ready_stat, 778 error = __ide_wait_stat(drive, drive->ready_stat,
779 BUSY_STAT|DRQ_STAT|ERR_STAT, 779 ATA_BUSY | ATA_DRQ | ATA_ERR,
780 WAIT_CMD, &stat); 780 WAIT_CMD, &stat);
781 781
782 SELECT_MASK(drive, 0); 782 SELECT_MASK(drive, 0);
@@ -923,7 +923,7 @@ static ide_startstop_t atapi_reset_pollfunc (ide_drive_t *drive)
923 udelay (10); 923 udelay (10);
924 stat = hwif->tp_ops->read_status(hwif); 924 stat = hwif->tp_ops->read_status(hwif);
925 925
926 if (OK_STAT(stat, 0, BUSY_STAT)) 926 if (OK_STAT(stat, 0, ATA_BUSY))
927 printk("%s: ATAPI reset complete\n", drive->name); 927 printk("%s: ATAPI reset complete\n", drive->name);
928 else { 928 else {
929 if (time_before(jiffies, hwgroup->poll_timeout)) { 929 if (time_before(jiffies, hwgroup->poll_timeout)) {
@@ -969,7 +969,7 @@ static ide_startstop_t reset_pollfunc (ide_drive_t *drive)
969 969
970 tmp = hwif->tp_ops->read_status(hwif); 970 tmp = hwif->tp_ops->read_status(hwif);
971 971
972 if (!OK_STAT(tmp, 0, BUSY_STAT)) { 972 if (!OK_STAT(tmp, 0, ATA_BUSY)) {
973 if (time_before(jiffies, hwgroup->poll_timeout)) { 973 if (time_before(jiffies, hwgroup->poll_timeout)) {
974 ide_set_handler(drive, &reset_pollfunc, HZ/20, NULL); 974 ide_set_handler(drive, &reset_pollfunc, HZ/20, NULL);
975 /* continue polling */ 975 /* continue polling */
@@ -1183,7 +1183,7 @@ int ide_wait_not_busy(ide_hwif_t *hwif, unsigned long timeout)
1183 */ 1183 */
1184 mdelay(1); 1184 mdelay(1);
1185 stat = hwif->tp_ops->read_status(hwif); 1185 stat = hwif->tp_ops->read_status(hwif);
1186 if ((stat & BUSY_STAT) == 0) 1186 if ((stat & ATA_BUSY) == 0)
1187 return 0; 1187 return 0;
1188 /* 1188 /*
1189 * Assume a value of 0xff means nothing is connected to 1189 * Assume a value of 0xff means nothing is connected to
diff --git a/drivers/ide/ide-lib.c b/drivers/ide/ide-lib.c
index 738c007a04d3..c5c37bfd8b09 100644
--- a/drivers/ide/ide-lib.c
+++ b/drivers/ide/ide-lib.c
@@ -340,16 +340,16 @@ static void ide_dump_sector(ide_drive_t *drive)
340static void ide_dump_ata_error(ide_drive_t *drive, u8 err) 340static void ide_dump_ata_error(ide_drive_t *drive, u8 err)
341{ 341{
342 printk("{ "); 342 printk("{ ");
343 if (err & ABRT_ERR) printk("DriveStatusError "); 343 if (err & ATA_ABORTED) printk("DriveStatusError ");
344 if (err & ICRC_ERR) 344 if (err & ATA_ICRC)
345 printk((err & ABRT_ERR) ? "BadCRC " : "BadSector "); 345 printk((err & ATA_ABORTED) ? "BadCRC " : "BadSector ");
346 if (err & ECC_ERR) printk("UncorrectableError "); 346 if (err & ATA_UNC) printk("UncorrectableError ");
347 if (err & ID_ERR) printk("SectorIdNotFound "); 347 if (err & ATA_IDNF) printk("SectorIdNotFound ");
348 if (err & TRK0_ERR) printk("TrackZeroNotFound "); 348 if (err & ATA_TRK0NF) printk("TrackZeroNotFound ");
349 if (err & MARK_ERR) printk("AddrMarkNotFound "); 349 if (err & ATA_AMNF) printk("AddrMarkNotFound ");
350 printk("}"); 350 printk("}");
351 if ((err & (BBD_ERR | ABRT_ERR)) == BBD_ERR || 351 if ((err & (ATA_BBK | ATA_ABORTED)) == ATA_BBK ||
352 (err & (ECC_ERR|ID_ERR|MARK_ERR))) { 352 (err & (ATA_UNC | ATA_IDNF | ATA_AMNF))) {
353 ide_dump_sector(drive); 353 ide_dump_sector(drive);
354 if (HWGROUP(drive) && HWGROUP(drive)->rq) 354 if (HWGROUP(drive) && HWGROUP(drive)->rq)
355 printk(", sector=%llu", 355 printk(", sector=%llu",
@@ -361,12 +361,12 @@ static void ide_dump_ata_error(ide_drive_t *drive, u8 err)
361static void ide_dump_atapi_error(ide_drive_t *drive, u8 err) 361static void ide_dump_atapi_error(ide_drive_t *drive, u8 err)
362{ 362{
363 printk("{ "); 363 printk("{ ");
364 if (err & ILI_ERR) printk("IllegalLengthIndication "); 364 if (err & ATAPI_ILI) printk("IllegalLengthIndication ");
365 if (err & EOM_ERR) printk("EndOfMedia "); 365 if (err & ATAPI_EOM) printk("EndOfMedia ");
366 if (err & ABRT_ERR) printk("AbortedCommand "); 366 if (err & ATA_ABORTED) printk("AbortedCommand ");
367 if (err & MCR_ERR) printk("MediaChangeRequested "); 367 if (err & ATA_MCR) printk("MediaChangeRequested ");
368 if (err & LFS_ERR) printk("LastFailedSense=0x%02x ", 368 if (err & ATAPI_LFS) printk("LastFailedSense=0x%02x ",
369 (err & LFS_ERR) >> 4); 369 (err & ATAPI_LFS) >> 4);
370 printk("}\n"); 370 printk("}\n");
371} 371}
372 372
@@ -388,19 +388,19 @@ u8 ide_dump_status(ide_drive_t *drive, const char *msg, u8 stat)
388 388
389 local_irq_save(flags); 389 local_irq_save(flags);
390 printk("%s: %s: status=0x%02x { ", drive->name, msg, stat); 390 printk("%s: %s: status=0x%02x { ", drive->name, msg, stat);
391 if (stat & BUSY_STAT) 391 if (stat & ATA_BUSY)
392 printk("Busy "); 392 printk("Busy ");
393 else { 393 else {
394 if (stat & READY_STAT) printk("DriveReady "); 394 if (stat & ATA_DRDY) printk("DriveReady ");
395 if (stat & WRERR_STAT) printk("DeviceFault "); 395 if (stat & ATA_DF) printk("DeviceFault ");
396 if (stat & SEEK_STAT) printk("SeekComplete "); 396 if (stat & ATA_DSC) printk("SeekComplete ");
397 if (stat & DRQ_STAT) printk("DataRequest "); 397 if (stat & ATA_DRQ) printk("DataRequest ");
398 if (stat & ECC_STAT) printk("CorrectedError "); 398 if (stat & ATA_CORR) printk("CorrectedError ");
399 if (stat & INDEX_STAT) printk("Index "); 399 if (stat & ATA_IDX) printk("Index ");
400 if (stat & ERR_STAT) printk("Error "); 400 if (stat & ATA_ERR) printk("Error ");
401 } 401 }
402 printk("}\n"); 402 printk("}\n");
403 if ((stat & (BUSY_STAT|ERR_STAT)) == ERR_STAT) { 403 if ((stat & (ATA_BUSY | ATA_ERR)) == ATA_ERR) {
404 err = ide_read_error(drive); 404 err = ide_read_error(drive);
405 printk("%s: %s: error=0x%02x ", drive->name, msg, err); 405 printk("%s: %s: error=0x%02x ", drive->name, msg, err);
406 if (drive->media == ide_disk) 406 if (drive->media == ide_disk)
diff --git a/drivers/ide/ide-probe.c b/drivers/ide/ide-probe.c
index 4829daacb342..7578ad48080f 100644
--- a/drivers/ide/ide-probe.c
+++ b/drivers/ide/ide-probe.c
@@ -264,7 +264,7 @@ static int actual_try_to_identify (ide_drive_t *drive, u8 cmd)
264 if (io_ports->ctl_addr) { 264 if (io_ports->ctl_addr) {
265 a = tp_ops->read_altstatus(hwif); 265 a = tp_ops->read_altstatus(hwif);
266 s = tp_ops->read_status(hwif); 266 s = tp_ops->read_status(hwif);
267 if ((a ^ s) & ~INDEX_STAT) 267 if ((a ^ s) & ~ATA_IDX)
268 /* ancient Seagate drives, broken interfaces */ 268 /* ancient Seagate drives, broken interfaces */
269 printk(KERN_INFO "%s: probing with STATUS(0x%02x) " 269 printk(KERN_INFO "%s: probing with STATUS(0x%02x) "
270 "instead of ALTSTATUS(0x%02x)\n", 270 "instead of ALTSTATUS(0x%02x)\n",
@@ -301,13 +301,13 @@ static int actual_try_to_identify (ide_drive_t *drive, u8 cmd)
301 msleep(50); 301 msleep(50);
302 s = use_altstatus ? tp_ops->read_altstatus(hwif) 302 s = use_altstatus ? tp_ops->read_altstatus(hwif)
303 : tp_ops->read_status(hwif); 303 : tp_ops->read_status(hwif);
304 } while (s & BUSY_STAT); 304 } while (s & ATA_BUSY);
305 305
306 /* wait for IRQ and DRQ_STAT */ 306 /* wait for IRQ and ATA_DRQ */
307 msleep(50); 307 msleep(50);
308 s = tp_ops->read_status(hwif); 308 s = tp_ops->read_status(hwif);
309 309
310 if (OK_STAT(s, DRQ_STAT, BAD_R_STAT)) { 310 if (OK_STAT(s, ATA_DRQ, BAD_R_STAT)) {
311 unsigned long flags; 311 unsigned long flags;
312 312
313 /* local CPU only; some systems need this */ 313 /* local CPU only; some systems need this */
@@ -391,7 +391,7 @@ static int ide_busy_sleep(ide_hwif_t *hwif)
391 do { 391 do {
392 msleep(50); 392 msleep(50);
393 stat = hwif->tp_ops->read_status(hwif); 393 stat = hwif->tp_ops->read_status(hwif);
394 if ((stat & BUSY_STAT) == 0) 394 if ((stat & ATA_BUSY) == 0)
395 return 0; 395 return 0;
396 } while (time_before(jiffies, timeout)); 396 } while (time_before(jiffies, timeout));
397 397
@@ -460,7 +460,7 @@ static int do_probe (ide_drive_t *drive, u8 cmd)
460 if (drive->select.b.unit != 0) { 460 if (drive->select.b.unit != 0) {
461 /* exit with drive0 selected */ 461 /* exit with drive0 selected */
462 SELECT_DRIVE(&hwif->drives[0]); 462 SELECT_DRIVE(&hwif->drives[0]);
463 /* allow BUSY_STAT to assert & clear */ 463 /* allow ATA_BUSY to assert & clear */
464 msleep(50); 464 msleep(50);
465 } 465 }
466 /* no i/f present: mmm.. this should be a 4 -ml */ 466 /* no i/f present: mmm.. this should be a 4 -ml */
@@ -469,7 +469,7 @@ static int do_probe (ide_drive_t *drive, u8 cmd)
469 469
470 stat = tp_ops->read_status(hwif); 470 stat = tp_ops->read_status(hwif);
471 471
472 if (OK_STAT(stat, READY_STAT, BUSY_STAT) || 472 if (OK_STAT(stat, ATA_DRDY, ATA_BUSY) ||
473 drive->present || cmd == ATA_CMD_ID_ATAPI) { 473 drive->present || cmd == ATA_CMD_ID_ATAPI) {
474 /* send cmd and wait */ 474 /* send cmd and wait */
475 if ((rc = try_to_identify(drive, cmd))) { 475 if ((rc = try_to_identify(drive, cmd))) {
@@ -479,7 +479,7 @@ static int do_probe (ide_drive_t *drive, u8 cmd)
479 479
480 stat = tp_ops->read_status(hwif); 480 stat = tp_ops->read_status(hwif);
481 481
482 if (stat == (BUSY_STAT | READY_STAT)) 482 if (stat == (ATA_BUSY | ATA_DRDY))
483 return 4; 483 return 4;
484 484
485 if (rc == 1 && cmd == ATA_CMD_ID_ATAPI) { 485 if (rc == 1 && cmd == ATA_CMD_ID_ATAPI) {
diff --git a/drivers/ide/ide-tape.c b/drivers/ide/ide-tape.c
index 2c4c6674db61..2745e5d26848 100644
--- a/drivers/ide/ide-tape.c
+++ b/drivers/ide/ide-tape.c
@@ -920,8 +920,8 @@ static ide_startstop_t idetape_media_access_finished(ide_drive_t *drive)
920 920
921 stat = hwif->tp_ops->read_status(hwif); 921 stat = hwif->tp_ops->read_status(hwif);
922 922
923 if (stat & SEEK_STAT) { 923 if (stat & ATA_DSC) {
924 if (stat & ERR_STAT) { 924 if (stat & ATA_ERR) {
925 /* Error detected */ 925 /* Error detected */
926 if (pc->c[0] != TEST_UNIT_READY) 926 if (pc->c[0] != TEST_UNIT_READY)
927 printk(KERN_ERR "ide-tape: %s: I/O error, ", 927 printk(KERN_ERR "ide-tape: %s: I/O error, ",
@@ -1022,7 +1022,7 @@ static ide_startstop_t idetape_do_request(ide_drive_t *drive,
1022 } 1022 }
1023 1023
1024 if (!test_and_clear_bit(IDE_AFLAG_IGNORE_DSC, &drive->atapi_flags) && 1024 if (!test_and_clear_bit(IDE_AFLAG_IGNORE_DSC, &drive->atapi_flags) &&
1025 (stat & SEEK_STAT) == 0) { 1025 (stat & ATA_DSC) == 0) {
1026 if (postponed_rq == NULL) { 1026 if (postponed_rq == NULL) {
1027 tape->dsc_polling_start = jiffies; 1027 tape->dsc_polling_start = jiffies;
1028 tape->dsc_poll_freq = tape->best_dsc_rw_freq; 1028 tape->dsc_poll_freq = tape->best_dsc_rw_freq;
diff --git a/drivers/ide/ide-taskfile.c b/drivers/ide/ide-taskfile.c
index 9224f6797186..b1fb815dbf68 100644
--- a/drivers/ide/ide-taskfile.c
+++ b/drivers/ide/ide-taskfile.c
@@ -136,7 +136,7 @@ static ide_startstop_t set_multmode_intr(ide_drive_t *drive)
136 local_irq_enable_in_hardirq(); 136 local_irq_enable_in_hardirq();
137 stat = hwif->tp_ops->read_status(hwif); 137 stat = hwif->tp_ops->read_status(hwif);
138 138
139 if (OK_STAT(stat, READY_STAT, BAD_STAT)) 139 if (OK_STAT(stat, ATA_DRDY, BAD_STAT))
140 drive->mult_count = drive->mult_req; 140 drive->mult_count = drive->mult_req;
141 else { 141 else {
142 drive->mult_req = drive->mult_count = 0; 142 drive->mult_req = drive->mult_count = 0;
@@ -159,15 +159,15 @@ static ide_startstop_t set_geometry_intr(ide_drive_t *drive)
159 159
160 while (1) { 160 while (1) {
161 stat = hwif->tp_ops->read_status(hwif); 161 stat = hwif->tp_ops->read_status(hwif);
162 if ((stat & BUSY_STAT) == 0 || retries-- == 0) 162 if ((stat & ATA_BUSY) == 0 || retries-- == 0)
163 break; 163 break;
164 udelay(10); 164 udelay(10);
165 }; 165 };
166 166
167 if (OK_STAT(stat, READY_STAT, BAD_STAT)) 167 if (OK_STAT(stat, ATA_DRDY, BAD_STAT))
168 return ide_stopped; 168 return ide_stopped;
169 169
170 if (stat & (ERR_STAT|DRQ_STAT)) 170 if (stat & (ATA_ERR | ATA_DRQ))
171 return ide_error(drive, "set_geometry_intr", stat); 171 return ide_error(drive, "set_geometry_intr", stat);
172 172
173 ide_set_handler(drive, &set_geometry_intr, WAIT_WORSTCASE, NULL); 173 ide_set_handler(drive, &set_geometry_intr, WAIT_WORSTCASE, NULL);
@@ -185,7 +185,7 @@ static ide_startstop_t recal_intr(ide_drive_t *drive)
185 local_irq_enable_in_hardirq(); 185 local_irq_enable_in_hardirq();
186 stat = hwif->tp_ops->read_status(hwif); 186 stat = hwif->tp_ops->read_status(hwif);
187 187
188 if (!OK_STAT(stat, READY_STAT, BAD_STAT)) 188 if (!OK_STAT(stat, ATA_DRDY, BAD_STAT))
189 return ide_error(drive, "recal_intr", stat); 189 return ide_error(drive, "recal_intr", stat);
190 return ide_stopped; 190 return ide_stopped;
191} 191}
@@ -202,7 +202,7 @@ static ide_startstop_t task_no_data_intr(ide_drive_t *drive)
202 local_irq_enable_in_hardirq(); 202 local_irq_enable_in_hardirq();
203 stat = hwif->tp_ops->read_status(hwif); 203 stat = hwif->tp_ops->read_status(hwif);
204 204
205 if (!OK_STAT(stat, READY_STAT, BAD_STAT)) 205 if (!OK_STAT(stat, ATA_DRDY, BAD_STAT))
206 return ide_error(drive, "task_no_data_intr", stat); 206 return ide_error(drive, "task_no_data_intr", stat);
207 /* calls ide_end_drive_cmd */ 207 /* calls ide_end_drive_cmd */
208 208
@@ -225,13 +225,13 @@ static u8 wait_drive_not_busy(ide_drive_t *drive)
225 for (retries = 0; retries < 1000; retries++) { 225 for (retries = 0; retries < 1000; retries++) {
226 stat = hwif->tp_ops->read_status(hwif); 226 stat = hwif->tp_ops->read_status(hwif);
227 227
228 if (stat & BUSY_STAT) 228 if (stat & ATA_BUSY)
229 udelay(10); 229 udelay(10);
230 else 230 else
231 break; 231 break;
232 } 232 }
233 233
234 if (stat & BUSY_STAT) 234 if (stat & ATA_BUSY)
235 printk(KERN_ERR "%s: drive still BUSY!\n", drive->name); 235 printk(KERN_ERR "%s: drive still BUSY!\n", drive->name);
236 236
237 return stat; 237 return stat;
@@ -390,7 +390,7 @@ void task_end_request(ide_drive_t *drive, struct request *rq, u8 stat)
390static ide_startstop_t task_in_unexpected(ide_drive_t *drive, struct request *rq, u8 stat) 390static ide_startstop_t task_in_unexpected(ide_drive_t *drive, struct request *rq, u8 stat)
391{ 391{
392 /* Command all done? */ 392 /* Command all done? */
393 if (OK_STAT(stat, READY_STAT, BUSY_STAT)) { 393 if (OK_STAT(stat, ATA_DRDY, ATA_BUSY)) {
394 task_end_request(drive, rq, stat); 394 task_end_request(drive, rq, stat);
395 return ide_stopped; 395 return ide_stopped;
396 } 396 }
@@ -410,11 +410,11 @@ static ide_startstop_t task_in_intr(ide_drive_t *drive)
410 u8 stat = hwif->tp_ops->read_status(hwif); 410 u8 stat = hwif->tp_ops->read_status(hwif);
411 411
412 /* Error? */ 412 /* Error? */
413 if (stat & ERR_STAT) 413 if (stat & ATA_ERR)
414 return task_error(drive, rq, __func__, stat); 414 return task_error(drive, rq, __func__, stat);
415 415
416 /* Didn't want any data? Odd. */ 416 /* Didn't want any data? Odd. */
417 if (!(stat & DRQ_STAT)) 417 if ((stat & ATA_DRQ) == 0)
418 return task_in_unexpected(drive, rq, stat); 418 return task_in_unexpected(drive, rq, stat);
419 419
420 ide_pio_datablock(drive, rq, 0); 420 ide_pio_datablock(drive, rq, 0);
@@ -447,7 +447,7 @@ static ide_startstop_t task_out_intr (ide_drive_t *drive)
447 return task_error(drive, rq, __func__, stat); 447 return task_error(drive, rq, __func__, stat);
448 448
449 /* Deal with unexpected ATA data phase. */ 449 /* Deal with unexpected ATA data phase. */
450 if (((stat & DRQ_STAT) == 0) ^ !hwif->nleft) 450 if (((stat & ATA_DRQ) == 0) ^ !hwif->nleft)
451 return task_error(drive, rq, __func__, stat); 451 return task_error(drive, rq, __func__, stat);
452 452
453 if (!hwif->nleft) { 453 if (!hwif->nleft) {
@@ -466,7 +466,7 @@ static ide_startstop_t pre_task_out_intr(ide_drive_t *drive, struct request *rq)
466{ 466{
467 ide_startstop_t startstop; 467 ide_startstop_t startstop;
468 468
469 if (ide_wait_stat(&startstop, drive, DRQ_STAT, 469 if (ide_wait_stat(&startstop, drive, ATA_DRQ,
470 drive->bad_wstat, WAIT_DRQ)) { 470 drive->bad_wstat, WAIT_DRQ)) {
471 printk(KERN_ERR "%s: no DRQ after issuing %sWRITE%s\n", 471 printk(KERN_ERR "%s: no DRQ after issuing %sWRITE%s\n",
472 drive->name, 472 drive->name,
diff --git a/drivers/ide/ide.c b/drivers/ide/ide.c
index 21b3a767e7d7..7fddfe161795 100644
--- a/drivers/ide/ide.c
+++ b/drivers/ide/ide.c
@@ -119,7 +119,7 @@ static void ide_port_init_devices_data(ide_hwif_t *hwif)
119 drive->media = ide_disk; 119 drive->media = ide_disk;
120 drive->select.all = (unit<<4)|0xa0; 120 drive->select.all = (unit<<4)|0xa0;
121 drive->hwif = hwif; 121 drive->hwif = hwif;
122 drive->ready_stat = READY_STAT; 122 drive->ready_stat = ATA_DRDY;
123 drive->bad_wstat = BAD_W_STAT; 123 drive->bad_wstat = BAD_W_STAT;
124 drive->special.b.recalibrate = 1; 124 drive->special.b.recalibrate = 1;
125 drive->special.b.set_geometry = 1; 125 drive->special.b.set_geometry = 1;
@@ -884,7 +884,7 @@ MODULE_PARM_DESC(noprobe, "skip probing for a device");
884static unsigned int ide_nowerr; 884static unsigned int ide_nowerr;
885 885
886module_param_call(nowerr, ide_set_dev_param_mask, NULL, &ide_nowerr, 0); 886module_param_call(nowerr, ide_set_dev_param_mask, NULL, &ide_nowerr, 0);
887MODULE_PARM_DESC(nowerr, "ignore the WRERR_STAT bit for a device"); 887MODULE_PARM_DESC(nowerr, "ignore the ATA_DF bit for a device");
888 888
889static unsigned int ide_cdroms; 889static unsigned int ide_cdroms;
890 890
@@ -949,7 +949,7 @@ static void ide_dev_apply_params(ide_drive_t *drive)
949 drive->noprobe = 1; 949 drive->noprobe = 1;
950 } 950 }
951 if (ide_nowerr & (1 << i)) { 951 if (ide_nowerr & (1 << i)) {
952 printk(KERN_INFO "ide: ignoring the WRERR_STAT bit for %s\n", 952 printk(KERN_INFO "ide: ignoring the ATA_DF bit for %s\n",
953 drive->name); 953 drive->name);
954 drive->bad_wstat = BAD_R_STAT; 954 drive->bad_wstat = BAD_R_STAT;
955 } 955 }
@@ -970,7 +970,7 @@ static void ide_dev_apply_params(ide_drive_t *drive)
970 drive->cyl, drive->head, drive->sect); 970 drive->cyl, drive->head, drive->sect);
971 drive->present = 1; 971 drive->present = 1;
972 drive->media = ide_disk; 972 drive->media = ide_disk;
973 drive->ready_stat = READY_STAT; 973 drive->ready_stat = ATA_DRDY;
974 } 974 }
975} 975}
976 976
diff --git a/drivers/ide/pci/ns87415.c b/drivers/ide/pci/ns87415.c
index ffefcd15196c..17685f0ade13 100644
--- a/drivers/ide/pci/ns87415.c
+++ b/drivers/ide/pci/ns87415.c
@@ -274,9 +274,9 @@ static void __devinit init_hwif_ns87415 (ide_hwif_t *hwif)
274 do { 274 do {
275 udelay(50); 275 udelay(50);
276 stat = hwif->tp_ops->read_status(hwif); 276 stat = hwif->tp_ops->read_status(hwif);
277 if (stat == 0xff) 277 if (stat == 0xff)
278 break; 278 break;
279 } while ((stat & BUSY_STAT) && --timeout); 279 } while ((stat & ATA_BUSY) && --timeout);
280#endif 280#endif
281 } 281 }
282 282
diff --git a/drivers/ide/pci/scc_pata.c b/drivers/ide/pci/scc_pata.c
index 44cccd1e086a..192a6a70a631 100644
--- a/drivers/ide/pci/scc_pata.c
+++ b/drivers/ide/pci/scc_pata.c
@@ -400,7 +400,7 @@ static int scc_dma_end(ide_drive_t *drive)
400 /* errata A308 workaround: Step5 (check data loss) */ 400 /* errata A308 workaround: Step5 (check data loss) */
401 /* We don't check non ide_disk because it is limited to UDMA4 */ 401 /* We don't check non ide_disk because it is limited to UDMA4 */
402 if (!(in_be32((void __iomem *)hwif->io_ports.ctl_addr) 402 if (!(in_be32((void __iomem *)hwif->io_ports.ctl_addr)
403 & ERR_STAT) && 403 & ATA_ERR) &&
404 drive->media == ide_disk && drive->current_speed > XFER_UDMA_4) { 404 drive->media == ide_disk && drive->current_speed > XFER_UDMA_4) {
405 reg = in_be32((void __iomem *)intsts_port); 405 reg = in_be32((void __iomem *)intsts_port);
406 if (!(reg & INTSTS_ACTEINT)) { 406 if (!(reg & INTSTS_ACTEINT)) {
@@ -504,7 +504,7 @@ static int scc_dma_test_irq(ide_drive_t *drive)
504 504
505 /* SCC errata A252,A308 workaround: Step4 */ 505 /* SCC errata A252,A308 workaround: Step4 */
506 if ((in_be32((void __iomem *)hwif->io_ports.ctl_addr) 506 if ((in_be32((void __iomem *)hwif->io_ports.ctl_addr)
507 & ERR_STAT) && 507 & ATA_ERR) &&
508 (int_stat & INTSTS_INTRQ)) 508 (int_stat & INTSTS_INTRQ))
509 return 1; 509 return 1;
510 510
diff --git a/drivers/scsi/ide-scsi.c b/drivers/scsi/ide-scsi.c
index 167c3b625218..daa5f3115ddc 100644
--- a/drivers/scsi/ide-scsi.c
+++ b/drivers/scsi/ide-scsi.c
@@ -244,7 +244,7 @@ idescsi_atapi_error(ide_drive_t *drive, struct request *rq, u8 stat, u8 err)
244{ 244{
245 ide_hwif_t *hwif = drive->hwif; 245 ide_hwif_t *hwif = drive->hwif;
246 246
247 if (hwif->tp_ops->read_status(hwif) & (BUSY_STAT | DRQ_STAT)) 247 if (hwif->tp_ops->read_status(hwif) & (ATA_BUSY | ATA_DRQ))
248 /* force an abort */ 248 /* force an abort */
249 hwif->tp_ops->exec_command(hwif, ATA_CMD_IDLEIMMEDIATE); 249 hwif->tp_ops->exec_command(hwif, ATA_CMD_IDLEIMMEDIATE);
250 250
diff --git a/include/linux/ide.h b/include/linux/ide.h
index e887927e00e6..d963c1929c84 100644
--- a/include/linux/ide.h
+++ b/include/linux/ide.h
@@ -87,12 +87,13 @@ struct ide_io_ports {
87}; 87};
88 88
89#define OK_STAT(stat,good,bad) (((stat)&((good)|(bad)))==(good)) 89#define OK_STAT(stat,good,bad) (((stat)&((good)|(bad)))==(good))
90#define BAD_R_STAT (BUSY_STAT | ERR_STAT)
91#define BAD_W_STAT (BAD_R_STAT | WRERR_STAT)
92#define BAD_STAT (BAD_R_STAT | DRQ_STAT)
93#define DRIVE_READY (READY_STAT | SEEK_STAT)
94 90
95#define BAD_CRC (ABRT_ERR | ICRC_ERR) 91#define BAD_R_STAT (ATA_BUSY | ATA_ERR)
92#define BAD_W_STAT (BAD_R_STAT | ATA_DF)
93#define BAD_STAT (BAD_R_STAT | ATA_DRQ)
94#define DRIVE_READY (ATA_DRDY | ATA_DSC)
95
96#define BAD_CRC (ATA_ABORTED | ATA_ICRC)
96 97
97#define SATA_NR_PORTS (3) /* 16 possible ?? */ 98#define SATA_NR_PORTS (3) /* 16 possible ?? */
98 99
@@ -438,8 +439,8 @@ struct ide_drive_s {
438 u8 mult_req; /* requested multiple sector setting */ 439 u8 mult_req; /* requested multiple sector setting */
439 u8 tune_req; /* requested drive tuning setting */ 440 u8 tune_req; /* requested drive tuning setting */
440 u8 io_32bit; /* 0=16-bit, 1=32-bit, 2/3=32bit+sync */ 441 u8 io_32bit; /* 0=16-bit, 1=32-bit, 2/3=32bit+sync */
441 u8 bad_wstat; /* used for ignoring WRERR_STAT */ 442 u8 bad_wstat; /* used for ignoring ATA_DF */
442 u8 nowerr; /* used for ignoring WRERR_STAT */ 443 u8 nowerr; /* used for ignoring ATA_DF */
443 u8 sect0; /* offset of first sector for DM6:DDO */ 444 u8 sect0; /* offset of first sector for DM6:DDO */
444 u8 head; /* "real" number of heads */ 445 u8 head; /* "real" number of heads */
445 u8 sect; /* "real" sectors per track */ 446 u8 sect; /* "real" sectors per track */