On Thu, Jul 23, 2009 at 2:20 AM, Johannes<joh.schrimpf@xxxxxxxxx> wrote: > Hi, > > I am writing an USB driver and have a problem with the bulk-IN transfer. I > create some urbs and send them to the IN-endpoint with a buffer created by > kmalloc. The buffer size is 64 byte, which is the same size as the packets > which are send over the USB-connection. The status of the urb in the > callback function is 0 and the actual_length is 64, but I figured out that > the data in the buffer is not correct. In most packets, parts of the buffer, > either the first 32 bytes or the second 32 bytes, still contain the > initialization values of the buffer. > > I am using linux-omap3-2.6.29 on a Gumstix overo board. > > Do you have an idea what the problem could be? > For more help, include more info. A copy of your driver would really help. The arm processor is not cache coherent. What is the cache line size? Check your kmalloc args. Don't touch (debug print) a buffer once the urb is submitted to the core, it will put initial data into the cpu cache and you will not read the dma'ed data from memory after completion. Usbmon or an analyzer will help determine that a bus operation occurred. Regards, Steve -- 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