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