> Thanks for this clearing int_edge_triggered has made the
> interrupts
> appear, but unfortunately now I hit a 'BUG_ON' in isp1362_irq, 
> 
> 1089:        spin_lock(&isp1362_hcd->lock);
> 1090:
> 1091:        BUG_ON(isp1362_hcd->irq_active++);
> 1092:
> 1093:        isp1362_write_reg16(isp1362_hcd, HCuPINTENB, 0);
> 
> It would appear that it is entering the interrupt handler twice
> for some
> reason.
> 

Hey.  I just wanted to pipe in that I had this problem for a short
while as well.  It boggled my mind.. doesn't spin_lock prevent two
interrupt handlers from entering this function at the same time?

irq_active is only referenced in this function, and it's subtracted
at the end.  I did two things, and it went away.

First, I changed the BUG_ON to an if-else, and printed some useful
debugging info (like the value of irq_active), and did a WARN_ON
instead.

Second, I found the definition of isp1362_hcd, and changed
irq_active from a bit to a full integer.  I didn't see why it
needed to be a bit (other than the fact that theoretically it
doesn't need to be a full integer), so I simplified it.  It seemed
to make it go away.

Mike


-------------------------------------------------------
This SF.Net email is sponsored by: NEC IT Guy Games.
Get your fingers limbered up and give it your best shot. 4 great events, 4
opportunities to win big! Highest score wins.NEC IT Guy Games. Play to
win an NEC 61 plasma display. Visit http://www.necitguy.com/?r=20
_______________________________________________
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to