that means the packet will be sent during next frame instead? can we just change the hc_interrupt to
if (.... && urb_state <= 0) { if (urb_state == 0) add_packet else schedule_trans Pei Liu wrote: > > > > >but i thought sh_done_list returns (urb_state = -1) if it is done??? > >but in the hc_interrupt... it checks whether urb_state == 0... which > >means it would not try another packet??? > > Yes, I think I understand your concern. The sh_done_list returns a -1 when > it has completed the URB, in such case, the hc_interrupt would not call send > another packet. But you still have to remember in the sh_schedule_trans > routine, which initiated every SOF, would continue to call even after the > hc_interrupt returns. The sequence is like this > > -->sh_schedule_trans > ------>> scan_urb_list > ----------->> sh_add_packet() > > ->hc_interrupt ; interrupt occurred because xferdone irq. In this case, the > sh_schedule_trans would be pre-empted > --->sh_done_list : take care of the xferdone irq > -------> sh_add_packet if urb_state >=0 > > ...... > > ->hc_interrupt ; interrupt occurred because xferdone irq. > --->sh_done_list : take care of the xferdone irq > ---> hc_interrupt exits when urb_state = -1; > > --> sh_schedules continues with the next urb after all irq has handled. > > Pei ------------------------------------------------------- This SF.NET email is sponsored by: FREE SSL Guide from Thawte are you planning your Web Server Security? Click here to get a FREE Thawte SSL guide and find the answers to all your SSL security issues. http://ads.sourceforge.net/cgi-bin/redirect.pl?thaw0026en _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel