Lines Matching defs:ireason
349 void ide_read_bcount_and_ireason(ide_drive_t *drive, u16 *bcount, u8 *ireason)
357 *ireason = tf.nsect & 3;
370 int ireason, int rw)
374 debug_log("ireason: 0x%x, rw: 0x%x\n", ireason, rw);
376 if (ireason == (!rw << 1))
378 else if (ireason == (rw << 1)) {
384 } else if (!rw && ireason == ATAPI_COD) {
394 if (ireason & ATAPI_COD)
398 /* drive wants a command packet, or invalid ireason... */
400 drive->name, __func__, ireason);
424 u8 stat, ireason, dsc = 0;
533 ide_read_bcount_and_ireason(drive, &bcount, &ireason);
535 if (ide_check_ireason(drive, rq, bcount, ireason, write))
578 static u8 ide_wait_ireason(ide_drive_t *drive, u8 ireason)
582 while (retries-- && ((ireason & ATAPI_COD) == 0 ||
583 (ireason & ATAPI_IO))) {
587 ireason = ide_read_ireason(drive);
592 ireason |= ATAPI_COD;
593 ireason &= ~ATAPI_IO;
597 return ireason;
618 u8 ireason;
658 ireason = ide_read_ireason(drive);
660 ireason = ide_wait_ireason(drive, ireason);
662 if ((ireason & ATAPI_COD) == 0 || (ireason & ATAPI_IO)) {