[prev in list] [next in list] [prev in thread] [next in thread]
List: linux-usb-users
Subject: [Linux-usb-users] Re: [linux-usb-devel] usb-uhci problem
From: Georg Acher <acher () in ! tum ! de>
Date: 2001-11-26 19:19:00
[Download RAW message or body]
On Mon, Nov 26, 2001 at 11:02:08PM +0530, Masoodur Rahman wrote:
> hi ,
> I was not able to figure out how the packets coming to the usb device are
> handed over to the USB device drivers through the usb-uhci interface .
> AFAICS, while sending the packets, it goes through
> -->uhci_submit_urb()---->uhci_submit_xxx_urb() (xxx->ctrl/bulk/iso/int)
>
> In each of these routines Tds are allocates and filled and the URB gets
> queued.
> After this the host controller takes charge of putting them on the bus.
> Is my understanding correct ???
>
> What happens when a packet(bulk/isoc/control/interrupt) comes to the usb
> device from the other side ??
> What are the functions that gets called upto the point where it delivers
> to the specific device driver ?? Does it start from uhci_interrupt ???
No, you missed the point that USB is a master/slave protocol, with the PC as
the ONE AND ONLY master. Thus the PC actively sends a "read-request" to the
device, which answers (hopefully). So the if the user wants to receive data,
a TD with the IN-flag is assembled. This TD triggers a IN request on USB, if
the device sends data, the TD gets filled and completed. If no data arrives
(either an active NAK or a timeout), the transfer is retried.
So everything is started with the submit_urb, the interrupts only signal the
completion or the failing of the transfer.
--
Georg Acher, acher@in.tum.de
http://www.in.tum.de/~acher/
"Oh no, not again !" The bowl of petunias
_______________________________________________
Linux-usb-users@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-users
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic