fix hang in USB interrupt (disabled for now)
This commit is contained in:
@@ -36,8 +36,9 @@
|
||||
#include "util.h"
|
||||
#include "dma.h"
|
||||
#include "pci.h"
|
||||
#include <stdarg.h>
|
||||
|
||||
// // #define DEBUG
|
||||
// #define DEBUG
|
||||
#include "debug.h"
|
||||
|
||||
#ifndef MAX_ISR_ENTRY
|
||||
@@ -434,14 +435,29 @@ bool pciarb_interrupt_handler(void *arg1, void *arg2)
|
||||
return true;
|
||||
}
|
||||
|
||||
bool xlbarb_interrupt_handler(void *arg1, void *arg2)
|
||||
bool xlbarb_interrupt_handler(void *arg1, void *arg2, ...)
|
||||
{
|
||||
va_list args;
|
||||
int i;
|
||||
uint32_t status = MCF_XLB_XARB_SR;
|
||||
|
||||
dbg("arg1=0x%08x arg2=0x%08x\r\n", arg1, arg2);
|
||||
va_start(args, arg2);
|
||||
for (i = 0; i < 20; i++)
|
||||
{
|
||||
dbg("arg[%d]=0x%08x\r\n", i, va_arg(args, int));
|
||||
}
|
||||
va_end(args);
|
||||
|
||||
/*
|
||||
* TODO: we should probably issue a bus error when this occors
|
||||
*/
|
||||
err("XLB arbiter interrupt. XARB_ADRCAP=0x%08lx\r\n", MCF_XLB_XARB_ADRCAP);
|
||||
err("XLB arbiter interrupt.\r\n");
|
||||
err("XARB_ADRCAP=0x%08lx\r\n", MCF_XLB_XARB_ADRCAP);
|
||||
err("XARB_SIGCAP=0x%08lx\r\n", MCF_XLB_XARB_SIGCAP);
|
||||
|
||||
MCF_XLB_XARB_ADRCAP = 0x0L;
|
||||
MCF_XLB_XARB_SIGCAP = 0x0L;
|
||||
|
||||
if (status & MCF_XLB_XARB_SR_AT)
|
||||
err("address tenure timeout\r\n");
|
||||
|
||||
Reference in New Issue
Block a user