History log of /haiku/src/add-ons/kernel/drivers/ports/usb_serial/FTDI.cpp
Revision Date Author Comments
# 309c0689 28-Oct-2017 Adrien Destugues <pulkomandy@pulkomandy.tk>

FTDI: properly remove out-of-band info from data.

FTDI chips send packets of at most 62 bytes of data, with a 2 byte
header. The code assumed that the chip would return at most 64 bytes,
but with new (USB2) chips this is not the case anymore. As a result,
it was skipping only the first header in a packet and leaving the other
ones in the data stream.


# 7b6e6c15 26-Aug-2017 Adrien Destugues <pulkomandy@pulkomandy.tk>

FT232x driver: support hardware flow control.

We had everything in place, except we never actually sent the command to
the device.

Note that the other drivers (prolific, etc) as well as pc_serial need to
be updated as well (might do it when I get access to hardware where I
can test the changes).


# 93ea83e5 27-Feb-2016 Adrien Destugues <pulkomandy@pulkomandy.tk>

Allow custom baud rates for FTDI serial ports

- Termios: cf{get,set}{i,o}speed can handle arbitrary speed values.
- The value is stored in the appropriate fields of the termios structure
in this case. The old constants (stored in the flags) are preserved
for BeOS binary compatibility.
- Adjust the FTDI FT232* driver to accept custom rates, by replacing the
hardcoded regster values with a function that will compute it
according to FTDI documentation (confirmed giving the same values for
the existing baudrates).


# 5ba5e31f 20-Jul-2012 Alexander von Gluck IV <kallisti5@unixzen.com>

usb_serial: clean up usb device identification

* Update FTDI, KLSI, Prolific, and Silicon drivers to share a
common structural layout for device identification.
* More flexible and cleaner than massive switch case statements.
* Avoids the problem of different chipsets from identical vendors.


# 5cc76019 10-Jun-2011 Michael Lotz <mmlr@mlotz.ch>

Apply limits to the transfer lengths. At least in the case where a one byte FTDI
header is used that only has 6 bits of length info this would've previously
potentially overflowed depending on the input size.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42088 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c5f2df28 03-Jan-2011 Philippe Houdoin <philippe.houdoin@gmail.com>

Switched to use USB_cdc.h definitions.
Expanded search in every configuration, not only first. ELSA USB modem for instance
publish two configurations, the first one being a vendor-specific one for
Windows NT.
ACMDevice now don't assume anymore union functional descriptor is always there.
The data interface index can be found also in Call Management (CM) functional
descriptor.

(Style cleanup pending...)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40092 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 503233ca 07-Dec-2010 Michael Lotz <mmlr@mlotz.ch>

* Remove a line of useless or-ing the same values on the variable.
* Try setting FTDI line state (I think)...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39761 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 12f32926 12-Jun-2008 François Revol <revol@free.fr>

- change KLSI init the way it's done by the linux driver
- do not count usb headers as part of count returned by write(), else we might end up writing more than the passed amount :)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25939 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7aa661d4 19-Jan-2008 Michael Lotz <mmlr@mlotz.ch>

Rework of the usb_serial driver:
* Refactored everything to C++ with the different devices as subclasses
* Added proper ACM detection with parsing of the ACM descriptors
* Added device transfer error handling and fixed some concurency issues
* Big cleanup to conform to our style guide

This should make at least ACM stable to use. Commiting this over my K850i with
ACM compliant USB modem and UMTS data connection. Note that support for all
other device classes (Prolific, FTDI and KLSI) is untested but should work the
same as before. Note also that since we currently lack a TTY module this will
only build/work for R5 or Dano with the proper TTY headers.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23634 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5ba5e31f8a59cb5f3299edd7af256d0fb4db12aa 20-Jul-2012 Alexander von Gluck IV <kallisti5@unixzen.com>

usb_serial: clean up usb device identification

* Update FTDI, KLSI, Prolific, and Silicon drivers to share a
common structural layout for device identification.
* More flexible and cleaner than massive switch case statements.
* Avoids the problem of different chipsets from identical vendors.


# 5cc760197a3c7b60e6c63014ab06728a6e69cbfe 10-Jun-2011 Michael Lotz <mmlr@mlotz.ch>

Apply limits to the transfer lengths. At least in the case where a one byte FTDI
header is used that only has 6 bits of length info this would've previously
potentially overflowed depending on the input size.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42088 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c5f2df286e21f263432f1deb39b6ccf6a6ff32c0 03-Jan-2011 Philippe Houdoin <philippe.houdoin@gmail.com>

Switched to use USB_cdc.h definitions.
Expanded search in every configuration, not only first. ELSA USB modem for instance
publish two configurations, the first one being a vendor-specific one for
Windows NT.
ACMDevice now don't assume anymore union functional descriptor is always there.
The data interface index can be found also in Call Management (CM) functional
descriptor.

(Style cleanup pending...)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40092 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 503233ca7dbe3de7534d4e2869614f9f0783785c 07-Dec-2010 Michael Lotz <mmlr@mlotz.ch>

* Remove a line of useless or-ing the same values on the variable.
* Try setting FTDI line state (I think)...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39761 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 12f329261557cff6c769a4cb0c23fe8a55bb2622 12-Jun-2008 François Revol <revol@free.fr>

- change KLSI init the way it's done by the linux driver
- do not count usb headers as part of count returned by write(), else we might end up writing more than the passed amount :)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25939 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7aa661d403eac10eab21bcd0facf01c2bcc03c24 19-Jan-2008 Michael Lotz <mmlr@mlotz.ch>

Rework of the usb_serial driver:
* Refactored everything to C++ with the different devices as subclasses
* Added proper ACM detection with parsing of the ACM descriptors
* Added device transfer error handling and fixed some concurency issues
* Big cleanup to conform to our style guide

This should make at least ACM stable to use. Commiting this over my K850i with
ACM compliant USB modem and UMTS data connection. Note that support for all
other device classes (Prolific, FTDI and KLSI) is untested but should work the
same as before. Note also that since we currently lack a TTY module this will
only build/work for R5 or Dano with the proper TTY headers.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23634 a95241bf-73f2-0310-859d-f6bbb57e9c96