\retval -8: ftdi context invalid
\retval -9: libusb_get_device_descriptor() failed
\retval -10: libusb_get_config_descriptor() failed
- \retval -11: libusb_etach_kernel_driver() failed
+ \retval -11: libusb_detach_kernel_driver() failed
\retval -12: libusb_get_configuration() failed
*/
int ftdi_usb_open_dev(struct ftdi_context *ftdi, libusb_device *dev)
if (libusb_control_transfer(ftdi->usb_dev, FTDI_DEVICE_IN_REQTYPE, SIO_POLL_MODEM_STATUS_REQUEST, 0, ftdi->index, (unsigned char *)usb_val, 2, ftdi->usb_read_timeout) != 2)
ftdi_error_return(-1, "getting modem status failed");
- *status = (usb_val[1] << 8) | usb_val[0];
+ *status = (usb_val[1] << 8) | (usb_val[0] & 0xFF);
return 0;
}
cbus_mux[eeprom->cbus_function[i]]);
else
{
- /* FIXME for Uwe: This results in an access above array bounds.
- Also I couldn't find documentation about this mode.
- fprintf(stdout,"C%d BB Function: %s\n", i,
- cbus_BB[i]);
- */
- fprintf(stdout, "Unknown CBUS mode. Might be special mode?\n");
- (void)cbus_BB;
+ if (i < 4)
+ /* Running MPROG show that C0..3 have fixed function Synchronous
+ Bit Bang mode */
+ fprintf(stdout,"C%d BB Function: %s\n", i,
+ cbus_BB[i]);
+ else
+ fprintf(stdout, "Unknown CBUS mode. Might be special mode?\n");
}
}
}