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

Reply via email to