From ac0af8ec4e70b4c4137f34df8efb61546794720d Mon Sep 17 00:00:00 2001 From: Vladimir Yakovlev Date: Thu, 23 Dec 2010 16:05:42 +0300 Subject: [PATCH] Proper initialisation of interface A. Write correct ftdi->in_ep and others when initialising interface A. Without it you can not switch back to interface A, after B. In sequence A-B-A, B stuck forewer. --- src/ftdi.c | 10 +++++----- 1 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/ftdi.c b/src/ftdi.c index 895f9e1..202306c 100644 --- a/src/ftdi.c +++ b/src/ftdi.c @@ -95,10 +95,7 @@ int ftdi_init(struct ftdi_context *ftdi) ftdi->writebuffer_chunksize = 4096; ftdi->max_packet_size = 0; - ftdi->interface = 0; - ftdi->index = 0; - ftdi->in_ep = 0x02; - ftdi->out_ep = 0x81; + ftdi_set_interface(ftdi, INTERFACE_ANY); ftdi->bitbang_mode = 1; /* when bitbang is enabled this holds the number of the mode */ ftdi->error_str = NULL; @@ -154,7 +151,10 @@ int ftdi_set_interface(struct ftdi_context *ftdi, enum ftdi_interface interface) { case INTERFACE_ANY: case INTERFACE_A: - /* ftdi_usb_open_desc cares to set the right index, depending on the found chip */ + ftdi->interface = 0; + ftdi->index = INTERFACE_A; + ftdi->in_ep = 0x02; + ftdi->out_ep = 0x81; break; case INTERFACE_B: ftdi->interface = 1; -- 1.7.1