.\" This manpage has been automatically generated by docbook2man .\" from a DocBook document. This tool can be found at: .\" .\" Please send any bug reports, improvements, comments, patches, .\" etc. to Steve Cheng . .TH "IDE_INTR" "" "06 October 2005" "" "" .SH NAME ide_intr \- default IDE interrupt handler .SH SYNOPSIS "SYNOPSIS" .sp \fB .sp irqreturn_t ide_intr (int \fIirq\fB, void * \fIdev_id\fB, struct pt_regs * \fIregs\fB); \fR .SH "ARGUMENTS" .TP \fB\fIirq\fB\fR interrupt number .TP \fB\fIdev_id\fB\fR hwif group .TP \fB\fIregs\fB\fR unused weirdness from the kernel irq layer .SH "DESCRIPTION" .PP This is the default IRQ handler for the IDE layer. You should not need to override it. If you do be aware it is subtle in places .PP hwgroup->hwif is the interface in the group currently performing a command. hwgroup->drive is the drive and hwgroup->handler is the IRQ handler to call. As we issue a command the handlers step through multiple states, reassigning the handler to the next step in the process. Unlike a smart SCSI controller IDE expects the main processor to sequence the various transfer stages. We also manage a poll timer to catch up with most timeout situations. There are still a few where the handlers don't ever decide to give up. .PP The handler eventually returns ide_stopped to indicate the request completed. At this point we issue the next request on the hwgroup and the process begins again.