Dear all:
My questions are list below:
1. Each QHD is assigned to 1 endpoints, right?
Ex: if some device has 3 endpoints, 0,1 and 2, and there must at least 3
QHDs.
2. What is the "device address" used for in QH?
I cannot find any information about "device address" in device descriptor
at chapter 9 of usb2.0 spec.
Since we can get endpoint address in endpoint descriptor and set the ep#
before controller determine where the data he sent out.
But how about device address?
Is this value randomly set by host when more than 1 device connected to it?
3. can 2 QHDs point to the same endpoint?
Ex: QHD[0]--> ep0
QHD[1]--> ep0
4. if the answer of 3 is Yes, can we set different device address and
different maximum packet length on several QHs, which point to the same end
point.
Ex:
pQH[0]->bTerminate=0; //data is valid
pQH[0]->bType=0x01; //QH type
pQH[0]->bEp=0x00; //ep0
pQH[0]->uDeviceAddress= 0x00;
pQH[0]->uMaxPacketSize=0x08;
pQH[1]->bTerminate=0; //data is valid
pQH[1]->bType=0x01; //QH type
pQH[1]->bEp=0x00; //ep0
pQH[1]->uDeviceAddress= 0x01;
pQH[1]->uMaxPacketSize=0x40;
BTW, I know "read the xxxx source code" is the duty for everyone who wants
to know the behavior of kernel. But is there any document or map can roughly
describe the whole flowchart of usb host driver. It's really complicated to
me.
Appreciate your help,
vichy
-
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html