From 5230676f38a45f0fa4a94c50088fc7c504c11d49 Mon Sep 17 00:00:00 2001 From: Matthias Richter Date: Mon, 16 Mar 2009 10:27:53 +0100 Subject: [PATCH] Fix ftdi_read_chipid in some cases --- src/ftdi.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) 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; -- 1.7.1