libftdi-git Archives

Subject: port libftdi to libusb-1.0 branch, eeprom-new, updated. v0.17-141-g814710b

From: libftdi-git@xxxxxxxxxxxxxxxxxxxxxxx
To: libftdi-git@xxxxxxxxxxxxxxxxxxxxxxx
Date: Fri, 24 Sep 2010 21:32:47 +0200 (CEST)
The branch, eeprom-new has been updated
       via  814710babd85edb7560418feb87b5ed003d437b2 (commit)
      from  f24a830c2b6e4a9c00a2779b33f7b468b541b650 (commit)


- Log -----------------------------------------------------------------
commit 814710babd85edb7560418feb87b5ed003d437b2
Author: Thomas Jarosch <thomas.jarosch@xxxxxxxxxxxxx>
Date:   Fri Sep 24 21:32:45 2010 +0200

    Include PnP descriptor in size check

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

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

diff --git a/src/ftdi.c b/src/ftdi.c
index 0ebb925..b613721 100644
--- a/src/ftdi.c
+++ b/src/ftdi.c
@@ -2307,25 +2307,26 @@ int ftdi_eeprom_build(struct ftdi_context *ftdi)
     if (eeprom->serial != NULL)
         serial_size = strlen(eeprom->serial);
 
-    // eeprom size exceeded?
-
-    switch (ftdi->type) {
-    case TYPE_AM:
-    case TYPE_BM:
-       user_area_size = 96;
-       break;
-    case TYPE_2232C:
-       user_area_size = 94;
-       break;
-    case TYPE_R:
-       user_area_size = 92;
-       break;
-    case TYPE_2232H:
-    case TYPE_4232H:
-       user_area_size = 90;
-       break;
+    // eeprom size check
+    switch (ftdi->type)
+    {
+        case TYPE_AM:
+        case TYPE_BM:
+            user_area_size = 96;    // base size for strings (total of 48 
characters)
+            break;
+        case TYPE_2232C:
+           user_area_size = 90;     // two extra config bytes and 4 bytes PnP 
stuff
+           break;
+        case TYPE_R:
+           user_area_size = 88;     // four extra config bytes + 4 bytes PnP 
stuff
+           break;
+        case TYPE_2232H:            // six extra config bytes + 4 bytes PnP 
stuff
+        case TYPE_4232H:
+           user_area_size = 86;
+           break;
     }
     user_area_size  -= (manufacturer_size + product_size + serial_size) * 2;
+
     if (user_area_size < 0)
         ftdi_error_return(-1,"eeprom size exceeded");
 
@@ -2344,7 +2345,8 @@ int ftdi_eeprom_build(struct ftdi_context *ftdi)
 
     // Addr 06: Device release number (0400h for BM features)
     output[0x06] = 0x00;
-    switch (ftdi->type) {
+    switch (ftdi->type)
+    {
         case TYPE_AM:
             output[0x07] = 0x02;
             break;
@@ -2693,7 +2695,7 @@ int ftdi_eeprom_decode(struct ftdi_context *ftdi, int 
verbose)
     // Bit 6: 1 if this device is self powered, 0 if bus powered
     // Bit 5: 1 if this device uses remote wakeup
     eeprom->self_powered = buf[0x08] & 0x40;
-    eeprom->remote_wakeup = buf[0x08] & 0x20;;
+    eeprom->remote_wakeup = buf[0x08] & 0x20;
 
     // Addr 09: Max power consumption: max power = value * 2 mA
     eeprom->max_power = buf[0x09];


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 libftdi-git+unsubscribe@xxxxxxxxxxxxxxxxxxxxxxx   

Current Thread
  • port libftdi to libusb-1.0 branch, eeprom-new, updated. v0.17-141-g814710b, libftdi-git <=