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