2011/1/12 Thomas Jarosch <thomas.jaro...@intra2net.com>: - Показать цитируемый текст - > On Wednesday, 12. January 2011 12:47:34 Vladimir Yakovlev wrote: >> >> This code do nothing (tested on FT2232H). Index alyaws set to 0, even >> >> without my patch by ftdi_init() >> > >> > ftdi_usb_open_dev() gets called after ftdi_init(). The switch should >> > set the "ftdi->index" to INTERFACE_A if "ftdi->type == TYPE_2232H" and >> > it checks for "if !(ftdi->index)". Please correct me if I'm wrong. >> > >> > It still does the same as ftdi_set_interface(), so I'll remove it. >> >> With current version of libftdi you cant set channel A after B. Only >> way to set A is re initialise device. >> ftdi_set_interface(ftdi, INTERFACE_A); >> do nothing (see code). >> My patch intended to fix this problem. > > Yes, that is absolutely correct. I was referring to this > piece of code from ftdi_usb_open_dev(): > > -------------------------------------------- > // Set default interface on dual/quad type chips > switch (ftdi->type) > { > case TYPE_2232C: > case TYPE_2232H: > case TYPE_4232H: > if (!ftdi->index) > ftdi->index = INTERFACE_A; > break; > default: > break; > } > -------------------------------------------- > > Thomas >
Now ftdi_init set INTERFACE_A for all devices. If all devices have INTERFACE_A, this code is not need. I tested on FT2232HQ and FT245BM, both work with A. -- libftdi - see http://www.intra2net.com/en/developer/libftdi for details. To unsubscribe send a mail to libftdi+unsubscr...@developer.intra2net.com