On Thu, Jul 30, 2009 at 10:57:29AM -0400, Alan Stern wrote: > On Thu, 30 Jul 2009, Greg KH wrote: > > > On Thu, Jul 30, 2009 at 07:21:24PM +0530, Viral Mehta wrote: > > > Hi list, > > > > > > I went through lots of documents on USB. > > > Please correct me if my below understanding is wrong and please provide > > > pointers. > > > > > > 1. My application wants to pass some GBs of data to USB device. > > > > Like all applications, this is nothing new :) > > > > > 2. My mass storage class specific drivers can make URBs of some fix size > > > and can submit to usbcore. Any min/max size ? Or I can create just one > > > URB and submit. > > > > You can submit one urb, but it can't be Gb in size. > > The only limit is the amount of memory that can be allocated for the > URB. If you could allocate 1 GB of memory then the URB could be 1 GB. > > > > 3. USB host driver will convert that URB into different packets and will > > > transmit to USB device. The packet size will be as defined in USB spec > > > and as listed in protocol spec and also depends on what type of > > > transfers are happening. > > > > Yes. > > > > > 4. USB host driver will call completion only iff all packets are > > > transmitted and thus one URB is transmitted correctly. Yes? > > > > Yes. > > Actually no. If usb_submit_urb() succeeded then the completion routine > will definitely be called, whether or not the URB was transmitted > correctly. Sorry, you are right, I misread the "iff" :) thanks, greg k-h -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html