}
irq_register=can_read_reg(chip,SJAIR);
-
+
status=can_read_reg(chip,SJASR);
- } while((irq_register & (sjaIR_BEI|sjaIR_EPI|sjaIR_DOI|sjaIR_EI|sjaIR_TI|sjaIR_RI)) ||
- ((status & sjaSR_TBS) && can_msgobj_test_fl(obj,TX_PENDING)) ||
+ if(((status & sjaSR_TBS) && can_msgobj_test_fl(obj,TX_PENDING)) ||
+ (irq_register & sjaIR_TI))
+ can_msgobj_set_fl(obj,TX_REQUEST);
+
+ } while((irq_register & (sjaIR_BEI|sjaIR_EPI|sjaIR_DOI|sjaIR_EI|sjaIR_RI)) ||
+ (can_msgobj_test_fl(obj,TX_PENDING) && !can_msgobj_test_fl(obj,TX_LOCK)) ||
(status & sjaSR_RBS));
return CANCHIP_IRQ_HANDLED;