.\" 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 "MC32_INTERRUPT" "9" "09 October 2005" "" ""
.SH NAME
mc32_interrupt \- handle an interrupt from a 3c527
.SH SYNOPSIS
"SYNOPSIS"
.sp
\fB
.sp
irqreturn_t mc32_interrupt (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
3c527 that requires servicing
.TP
\fB\fIregs\fB\fR
Registers (unused)
.SH "DESCRIPTION"
.PP
.PP
An interrupt is raised whenever the 3c527 writes to the command
register. This register contains the message it wishes to send us
packed into a single byte field. We keep reading status entries
until we have processed all the control items, but simply count
transmit and receive reports. When all reports are in we empty the
transceiver rings as appropriate. This saves the overhead of
multiple command requests.
.PP
Because MCA is level-triggered, we shouldn't miss indications.
Therefore, we needn't ask the card to suspend interrupts within
this handler. The card receives an implicit acknowledgment of the
current interrupt when we read the command register.