summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: e40ab3c)
raw | patch | inline | side by side (parent: e40ab3c)
author | vwan@ti.com <vwan@ti.com> | |
Mon, 17 Jun 2013 04:36:16 +0000 (21:36 -0700) | ||
committer | Chris Ring <cring@ti.com> | |
Mon, 17 Jun 2013 04:36:16 +0000 (21:36 -0700) |
The register/unregister functions are clearing mailbox
messages and disabling the host->rproc interrupts. When loading
multiple remote procs, this can cause an issue where the
remote proc's host->rproc interrupt remains disabled and the
remote proc is unable to receive interrupts.
This patch removes the code to avoid disabling the interrupt.
messages and disabling the host->rproc interrupts. When loading
multiple remote procs, this can cause an issue where the
remote proc's host->rproc interrupt remains disabled and the
remote proc is unable to receive interrupts.
This patch removes the code to avoid disabling the interrupt.
qnx/src/ipc3x_dev/ti/syslink/ipc/hlos/knl/arch/vayu/VAYUIpcInt.c | patch | blob | history |
diff --git a/qnx/src/ipc3x_dev/ti/syslink/ipc/hlos/knl/arch/vayu/VAYUIpcInt.c b/qnx/src/ipc3x_dev/ti/syslink/ipc/hlos/knl/arch/vayu/VAYUIpcInt.c
index d6f1a17246a3c4bc6b3e75d13db22efd454588e6..1b5e66e2f12a762e0f27a2440856523f7b5fd7dd 100644 (file)
if (status >= 0) {
#endif /* if !defined(SYSLINK_BUILD_OPTIMIZE) */
VAYUIpcInt_state.isrObjects [procId].isrHandle = elem;
-
- /* Clear the messages in the IPU2->HOST mailbox */
- while (REG32(VAYUIpcInt_state.mailbox6Base + \
- MAILBOX_MSGSTATUS_m_OFFSET(IPU2_HOST_SUB_MBOX))) {
- VAYUIpcInt_clearInterrupt(
- VAYUIpcInt_state.procIds [VAYU_INDEX_IPU2],
- IPU2_HOST_SUB_MBOX);
- }
- /* Clear the messages in the HOST->IPU2 mailbox */
- while (REG32(VAYUIpcInt_state.mailbox6Base + \
- MAILBOX_MSGSTATUS_m_OFFSET(HOST_IPU2_SUB_MBOX))) {
- VAYUIpcInt_clearInterrupt(
- VAYUIpcInt_state.procIds [VAYU_INDEX_IPU2],
- HOST_IPU2_SUB_MBOX);
- }
- /* Clear the messages in the DSP1->HOST mailbox */
- while (REG32(VAYUIpcInt_state.mailbox5Base + \
- MAILBOX_MSGSTATUS_m_OFFSET(DSP1_HOST_SUB_MBOX))) {
- VAYUIpcInt_clearInterrupt(
- VAYUIpcInt_state.procIds [VAYU_INDEX_DSP1],
- DSP1_HOST_SUB_MBOX);
- }
- /* Clear the messages in the HOST->DSP1 mailbox */
- while (REG32(VAYUIpcInt_state.mailbox5Base + \
- MAILBOX_MSGSTATUS_m_OFFSET(HOST_DSP1_SUB_MBOX))) {
- VAYUIpcInt_clearInterrupt(
- VAYUIpcInt_state.procIds [VAYU_INDEX_DSP1],
- HOST_DSP1_SUB_MBOX);
- }
- /* The below seems to be needed for OMAP5 Virtio for
- * slaying/restarting syslink properly
- */
- /* Disables interrupts from HOST->IPU2 */
- SET_BIT(REG(VAYUIpcInt_state.mailbox6Base + \
- MAILBOX_IRQENABLE_CLR_OFFSET + \
- (0x10 * VAYU_IPU2_USER_ID)),
- ((HOST_IPU2_SUB_MBOX) << 1));
- /* Disables interrupts from HOST->DSP1 */
- SET_BIT(REG(VAYUIpcInt_state.mailbox5Base + \
- MAILBOX_IRQENABLE_CLR_OFFSET + \
- (0x10 * VAYU_DSP1_USER_ID)),
- ((HOST_DSP1_SUB_MBOX) << 1));
-
- /* Set mailbox to smart-idle */
- REG(VAYUIpcInt_state.mailbox5Base + MAILBOX_SYSCONFIG_OFFSET) = 0x8;
- REG(VAYUIpcInt_state.mailbox6Base + MAILBOX_SYSCONFIG_OFFSET) = 0x8;
#if !defined(SYSLINK_BUILD_OPTIMIZE)
}
#endif /* if !defined(SYSLINK_BUILD_OPTIMIZE) */
status,
"OsalIsr_uninstall failed");
}
-#endif /* if !defined(SYSLINK_BUILD_OPTIMIZE) */
- /* Clear the messages in the IPU2->HOST mailbox */
- while (REG32(VAYUIpcInt_state.mailbox6Base + \
- MAILBOX_MSGSTATUS_m_OFFSET(IPU2_HOST_SUB_MBOX))) {
- VAYUIpcInt_clearInterrupt(
- VAYUIpcInt_state.procIds [VAYU_INDEX_IPU2],
- IPU2_HOST_SUB_MBOX);
- }
- /* Clear the messages in the HOST->IPU2 mailbox */
- while (REG32(VAYUIpcInt_state.mailbox6Base + \
- MAILBOX_MSGSTATUS_m_OFFSET(HOST_IPU2_SUB_MBOX))) {
- VAYUIpcInt_clearInterrupt(
- VAYUIpcInt_state.procIds [VAYU_INDEX_IPU2],
- HOST_IPU2_SUB_MBOX);
- }
- /* Clear the messages in the DSP1->HOST mailbox */
- while (REG32(VAYUIpcInt_state.mailbox5Base + \
- MAILBOX_MSGSTATUS_m_OFFSET(DSP1_HOST_SUB_MBOX))) {
- VAYUIpcInt_clearInterrupt(
- VAYUIpcInt_state.procIds [VAYU_INDEX_DSP1],
- DSP1_HOST_SUB_MBOX);
- }
- /* Clear the messages in the HOST->DSP1 mailbox */
- while (REG32(VAYUIpcInt_state.mailbox5Base + \
- MAILBOX_MSGSTATUS_m_OFFSET(HOST_DSP1_SUB_MBOX))) {
- VAYUIpcInt_clearInterrupt(
- VAYUIpcInt_state.procIds [VAYU_INDEX_DSP1],
- HOST_DSP1_SUB_MBOX);
- }
- /* The below seems to be needed for OMAP5 Virtio for
- * slaying/restarting syslink properly
- */
- /* Disables interrupts from HOST->IPU2 */
- SET_BIT(REG(VAYUIpcInt_state.mailbox6Base + \
- MAILBOX_IRQENABLE_CLR_OFFSET + \
- (0x10 * VAYU_IPU2_USER_ID)),
- ((HOST_IPU2_SUB_MBOX) << 1));
- /* Disables interrupts from HOST->DSP1 */
- SET_BIT(REG(VAYUIpcInt_state.mailbox5Base + \
- MAILBOX_IRQENABLE_CLR_OFFSET + \
- (0x10 * VAYU_DSP1_USER_ID)),
- ((HOST_DSP1_SUB_MBOX) << 1));
-#if !defined(SYSLINK_BUILD_OPTIMIZE)
tmpStatus =
#endif /* if !defined(SYSLINK_BUILD_OPTIMIZE) */
OsalIsr_delete (&(isrHandleElem->isrHandle));