From: Matthias Richter Date: Mon, 16 Mar 2009 09:27:53 +0000 (+0100) Subject: Fix ftdi_read_chipid in some cases X-Git-Tag: v0.16rc1~25 X-Git-Url: http://developer.intra2net.com/git/?p=libftdi;a=commitdiff_plain;h=5230676f38a45f0fa4a94c50088fc7c504c11d49 Fix ftdi_read_chipid in some cases --- diff --git a/src/ftdi.c b/src/ftdi.c index e7a7274..74ba8d3 100644 --- a/src/ftdi.c +++ b/src/ftdi.c @@ -2024,7 +2024,7 @@ int ftdi_read_chipid(struct ftdi_context *ftdi, unsigned int *chipid) if (usb_control_msg(ftdi->usb_dev, FTDI_DEVICE_IN_REQTYPE, SIO_READ_EEPROM_REQUEST, 0, 0x44, (char *)&b, 2, ftdi->usb_read_timeout) == 2) { b = b << 8 | b >> 8; - a = (a << 16) | b; + a = (a << 16) | (b & 0xFFFF); a = ftdi_read_chipid_shift(a) | ftdi_read_chipid_shift(a>>8)<<8 | ftdi_read_chipid_shift(a>>16)<<16 | ftdi_read_chipid_shift(a>>24)<<24; *chipid = a ^ 0xa5f0f7d1;