X-Git-Url: http://developer.intra2net.com/git/?p=libftdi;a=blobdiff_plain;f=src%2Fftdi.c;h=74ba8d3993a33c4b7f8f32be3ca07f47ad61f9e9;hp=e7a7274f1e3790ba93f6fea0295a326ee9e99303;hb=5230676f38a45f0fa4a94c50088fc7c504c11d49;hpb=49c5ac7264ef3e1bed2a4a1e290028eb48b3bf44 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;