Added support for formula-based arbitrary baud rates (in contrast with the
current fixed values) which enables use of rates above 1 Mbps.
Improved the detection of HXD chips, and the status flag handling as well.
For details see https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=225932
Details
Details
Setting 8 data bits with no parity and writing an endless stream of 0xf0-s
produces 5 high bits followed by 5 low ones, that is, a square wave at a
frequency 1/10 of the baud rate, which can be measured even by a handheld
multimeter.
Diff Detail
Diff Detail
- Repository
- rS FreeBSD src repository - subversion
- Lint
Lint Not Applicable - Unit
Tests Not Applicable
Event Timeline
sys/dev/usb/serial/uplcom.c | ||
---|---|---|
382 ↗ | (On Diff #46447) | bcdDevice is a 16-bit field. Can you use: UGETW(dd->bcdDevice) and update the case values to include the most significant byte as well, likely: case 3 -> case 0x103 I guess, for example |
410 ↗ | (On Diff #46447) | style: "case XXX:" should be indented like "switch" keyword. |
sys/dev/usb/serial/uplcom.c | ||
---|---|---|
382 ↗ | (On Diff #46447) | Done, and extra thx for pointing out a bug: I was checking the 0th (low) byte of bcdDevice instead of the 1st (high) one. |
sys/dev/usb/serial/uplcom.c | ||
---|---|---|
382 ↗ | (On Diff #46447) | And the lower one should be zero I guess. |
sys/dev/usb/serial/uplcom.c | ||
---|---|---|
382 ↗ | (On Diff #46447) | Definitely :), the specifications contain explicitely 0x300, 0x400 and 0x500. |