Dear all: I list the initial sequences that I observed from source code. If I get something wrong, please let me know.
Suppose I get 3 devices connected to a host, A, B and C. A plugs in. We use QH with device-address = 0, ep = 0 to get A's device descriptor. Set A's device address to 1. B plugs in. We use QH with device-address = 0, ep = 0 to get B's device descriptor. Set A's device address to 2. C plugs in. We use QH with device-address = 0, ep = 0 to get C's device descriptor. Set A's device address to 2. So Qh with device-address = 0, ep = 0 is always the default and least QH to get every device's device descriptor, right? Appreciate your help, vichy -----Original Message----- From: Alan Stern [mailto:[EMAIL PROTECTED] Sent: Tuesday, February 12, 2008 1:44 AM To: Pandita, Vikram Cc: vichy; linux-usb@vger.kernel.org Subject: RE: Some Questions about QHD On Mon, 11 Feb 2008, Pandita, Vikram wrote: > >> 2. What is the "device address" used for in QH? > > > >There is no "device address" field in a QH -- at least, there isn't in > >uhci-hcd or ehci-hcd. Maybe other controller drivers do have such a > >field. > > I have a doubt - > Referring to ehci spec 3.6, looks like the QH has a Device Address that gets tracked in qh->hw_info1 field. > > Refer - > qh_make ( > ... > info1 |= usb_pipeendpoint (urb->pipe) << 8; > info1 |= usb_pipedevice (urb->pipe) << 0; > ... > qh->hw_info1 = cpu_to_hc32(ehci, info1); > ... > > Isn't the QH identifying the destination pipe by an Endpoint Number + Device Address? Yes, you are right and I was wrong. The EHCI controller uses the device address field in the QH to store the value for the ADDR field of Token packets (see section 8.3 and 8.4 in the USB 2.0 spec). Alan Stern - 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