|
@@ -305,10 +305,14 @@ static void pl2303_encode_baudrate(struct tty_struct *tty,
|
|
if (spriv->type != HX)
|
|
if (spriv->type != HX)
|
|
baud = min_t(int, baud, 1228800);
|
|
baud = min_t(int, baud, 1228800);
|
|
|
|
|
|
- if (baud <= 115200) {
|
|
|
|
|
|
+ if (spriv->type != HX || baud <= 115200) {
|
|
|
|
+ /* Direct (standard) baud rate encoding method */
|
|
put_unaligned_le32(baud, buf);
|
|
put_unaligned_le32(baud, buf);
|
|
} else {
|
|
} else {
|
|
/*
|
|
/*
|
|
|
|
+ * NOTE: it's not clear if the type_0/1 chips
|
|
|
|
+ * support this method
|
|
|
|
+ *
|
|
* Apparently the formula for higher speeds is:
|
|
* Apparently the formula for higher speeds is:
|
|
* baudrate = 12M * 32 / (2^buf[1]) / buf[0]
|
|
* baudrate = 12M * 32 / (2^buf[1]) / buf[0]
|
|
*/
|
|
*/
|