Re: [Bugme-new] [Bug 8297] New: ldusb returns bad data on subsequent reads if no data is available.
"Shawn Bohrer" <[email protected]>
| Newsgroups | gmane.linux.usb.devel |
|---|---|
| Message-ID | <[email protected]> |
On 4/4/07, Oliver Neukum <[email protected]> wrote: > + spin_lock(&dev->rbsl); > if (urb->actual_length > 0) { > next_ring_head = (dev->ring_head+1) % ring_buffer_size; > if (next_ring_head != dev->ring_tail) { > @@ -245,17 +249,20 @@ > dev_warn(&dev->intf->dev, > "Ring buffer overflow, %d bytes dropped\n", > urb->actual_length); > + dev->buffer_overflow = 1; > } It looks like you are missing brackets around the else case. This patch does seem to fix the problem I described, though admittedly I haven't exactly figured out how you are supposed to use the ldusb driver. It looks like I need to first write some magic numbers to initialize the device before a read will produce useful data. I guess I need to study Greg KH's Go!Temp driver to figure out what exactly I am supposed to write to the device. -Shawn ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys-and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ [email protected] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel