The branch, master has been updated
       via  8de6eea49cd2689d79d4c27467fcfd3dde121d15 (commit)
      from  866a6dbba29fe197207a3d2ea579fcab9778ea8c (commit)


- Log -----------------------------------------------------------------
commit 8de6eea49cd2689d79d4c27467fcfd3dde121d15
Author: Jie Zhang <[email protected]>
Date:   Sun Feb 14 08:44:23 2010 +0800

    Limit read buffer chunksize to 16384 on Linux.

-----------------------------------------------------------------------

Summary of changes:
 src/ftdi.c |    8 ++++++++
 1 files changed, 8 insertions(+), 0 deletions(-)

diff --git a/src/ftdi.c b/src/ftdi.c
index 22e746d..afcf897 100644
--- a/src/ftdi.c
+++ b/src/ftdi.c
@@ -1621,6 +1621,14 @@ int ftdi_read_data_set_chunksize(struct ftdi_context 
*ftdi, unsigned int chunksi
     // Invalidate all remaining data
     ftdi->readbuffer_offset = 0;
     ftdi->readbuffer_remaining = 0;
+#ifdef __linux__
+    /* We can't set readbuffer_chunksize larger than MAX_BULK_BUFFER_LENGTH,
+       which is defined in libusb-1.0.  Otherwise, each USB read request will
+       be devided into multiple URBs.  This will cause issues on Linux kernel
+       older than 2.6.32.  */
+    if (chunksize > 16384)
+        chunksize = 16384;
+#endif
 
     if ((new_buf = (unsigned char *)realloc(ftdi->readbuffer, chunksize)) == 
NULL)
         ftdi_error_return(-1, "out of memory for readbuffer");


hooks/post-receive
-- 
port libftdi to libusb-1.0

--
libftdi-git - see http://www.intra2net.com/en/developer/libftdi for details.
To unsubscribe send a mail to [email protected]   

Reply via email to