Correct writing of EEPROM
authorMarius Kintel <kintel@sim.no>
Mon, 2 Mar 2009 16:36:14 +0000 (17:36 +0100)
committerThomas Jarosch <thomas.jarosch@intra2net.com>
Sat, 14 Mar 2009 21:44:25 +0000 (22:44 +0100)
src/ftdi.c

index a8a67fb..cf16664 100644 (file)
@@ -2060,9 +2060,14 @@ int ftdi_read_eeprom_getsize(struct ftdi_context *ftdi, unsigned char *eeprom, i
 */
 int ftdi_write_eeprom(struct ftdi_context *ftdi, unsigned char *eeprom)
 {
-    unsigned short usb_val;
+    unsigned short usb_val, status;
     int i;
 
+    /* These commands were traced while running MProg */
+    ftdi_usb_reset(ftdi);
+    ftdi_poll_modem_status(ftdi, &status);
+    ftdi_set_latency_timer(ftdi, 0x77);
+
     for (i = 0; i < ftdi->eeprom_size/2; i++) {
         usb_val = eeprom[i*2];
         usb_val += eeprom[(i*2)+1] << 8;