/*! * ======== InterruptBenelli_intClear ======== * Clear interrupt */ UInt InterruptBenelli_intClear(UInt16 remoteProcId, IInterrupt_IntInfo *intInfo) { UInt arg; UInt16 index; index = MBX_TABLE_IDX(remoteProcId, MultiProc_self()); arg = REG32(MAILBOX_MESSAGE(index)); REG32(MAILBOX_IRQSTATUS_CLR(index)) = MAILBOX_REG_VAL(SUBMBX_IDX(index)); return (arg); }
/*! * ======== InterruptArp32_intClear ======== * Clear interrupt */ UInt InterruptArp32_intClear(UInt16 remoteProcId, IInterrupt_IntInfo *intInfo) { UInt arg; /* DSP to ARP32 */ arg = REG32(MAILBOX_MESSAGE(DSP_TO_ARP32)); /* clear the dsp mailbox */ REG32(MAILBOX_IRQSTATUS_CLR(MBX_INTR_TO_ARP32)) = MAILBOX_REG_VAL(DSP_TO_ARP32); return (arg); }
/*! * ======== InterruptDsp_intClear ======== * Clear interrupt */ UInt InterruptDsp_intClear(UInt16 remoteProcId, IInterrupt_IntInfo *intInfo) { UInt arg; arg = REG32(MAILBOX_MESSAGE(ARP32_TO_DSP)); /* clear the dsp mailbox */ REG32(MAILBOX_IRQSTATUS_CLR(MBX_INTR_TO_DSP)) = MAILBOX_REG_VAL(ARP32_TO_DSP); /* Write to EOI (End Of Interrupt) register */ REG32(MAILBOX_EOI_REG) = 0x1; return (arg); }
/*! * ======== InterruptArp32_intClear ======== * Clear interrupt */ UInt InterruptArp32_intClear(UInt16 remoteProcId, IInterrupt_IntInfo *intInfo) { UInt arg; UInt16 index; index = MBX_TABLE_IDX(remoteProcId, MultiProc_self()); arg = REG32(MAILBOX_MESSAGE(index)); /* clear the dsp mailbox */ REG32(MAILBOX_IRQSTATUS_CLR(index)) = MAILBOX_REG_VAL(SUBMBX_IDX(index)); /* Write to EOI (End Of Interrupt) register */ REG32(MAILBOX_EOI_REG(index)) = 0x1; return (arg); }