From 665cda0403fc795be8785c9545f357d039dda62d Mon Sep 17 00:00:00 2001 From: Uwe Bonnes Date: Fri, 24 Sep 2010 17:12:34 +0200 Subject: [PATCH] Simplify and correct user area calculation --- src/ftdi.c | 19 ++++++++++++++++++- 1 files changed, 18 insertions(+), 1 deletions(-) diff --git a/src/ftdi.c b/src/ftdi.c index bd81306..0ebb925 100644 --- a/src/ftdi.c +++ b/src/ftdi.c @@ -2308,7 +2308,24 @@ int ftdi_eeprom_build(struct ftdi_context *ftdi) serial_size = strlen(eeprom->serial); // eeprom size exceeded? - user_area_size = (48 - (manufacturer_size + product_size + serial_size)) * 2; + + 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; + } + user_area_size -= (manufacturer_size + product_size + serial_size) * 2; if (user_area_size < 0) ftdi_error_return(-1,"eeprom size exceeded"); -- 1.7.1