On Sat, Feb 19 2005, Jeff Garzik wrote:
> Albert Lee wrote:
> >I'm a little confused about what is the "correct behavior" of ATAPI DMA 
> >INTRQ.
> >
> >1. The ATA-4 flowchart and ATA-6 state diagram seems to be inconsistent.
> >In the ATA-4 flowchart, no wait for INTRQ is specified.
> >
> >2. From the ATA-5 errata:
> >http://www.t13.org/project/e01122r0.pdf
> >
> >"...Page 265 through 270 of NCITS 340-2000 clause 9.8 was not properly 
> >converted from the flow
> >charts in NCITS 317-1998 to the state diagrams. The state diagrams figures 
> >33 and 34 and
> >associated text is modified to indicate that the device interrupts only at 
> >command completion. "
> >
> >Notice the "device interrupts only at command completion." statement.
> >However, the diagrams in the errata are inconsistent with the above 
> >statement.
> >
> >3. The ide-cd code does not wait for INTRQ before starting BM-DMA
> >
> >        /* Arm the interrupt handler. */
> >        ide_set_handler(drive, handler, rq->timeout, cdrom_timer_expiry);
> >
> >        /* ATAPI commands get padded out to 12 bytes minimum */
> >        cmd_len = COMMAND_SIZE(rq->cmd[0]);
> >        if (cmd_len < ATAPI_MIN_CDB_BYTES)
> >            cmd_len = ATAPI_MIN_CDB_BYTES;
> >
> >        /* Send the command to the device. */
> >        HWIF(drive)->atapi_output_bytes(drive, rq->cmd, cmd_len);
> >
> >        /* Start the DMA if need be */
> >        if (info->dma)
> >            hwif->dma_start(drive);
> >
> >        return ide_started;
> >
> >4. My CD-ROM drive does not generate INTRQ after it received the command 
> >packet.
> >   It only assert DMARQ.
> >
> >Maybe the state diagrams in ATA-5 and ATA-6 are incorrect?  Any idea?
> 
> 
> As I mentioned in an earlier email, research seems to indicate the 
> IDENTIFY PACKET DEVICE word 0, bits 6-5 can be used to indicate INTRQ 
> will be delivered.  This is consistent with my ATA-4 specification.
> 
> Apparently this behavior is obsolete, but we still need to support it.

ide-cd uses those bits to check for interrupt delivery, see
drq_interrupt in that file.

-- 
Jens Axboe

-
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to