> 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