Skip to content

Commit

Permalink
Revert "usb: pl2303: increase the allowed baud rate range for the div…
Browse files Browse the repository at this point in the history
…isor based encoding method"

This reverts commit b5c16c6.

Revert all of the pl2303 changes that went into 3.12-rc1 and -rc2 as
they cause regressions on some versions of the chip.  This will all be
revisited for later kernel versions when we can figure out how to handle
this in a way that does not break working devices.

Reported-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Cc: Frank Schäfer <fschaefer.oss@googlemail.com>
Acked-by: Johan Hovold <jhovold@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  • Loading branch information
Greg Kroah-Hartman committed Nov 1, 2013
1 parent e2afb1d commit 92dfe41
Showing 1 changed file with 4 additions and 12 deletions.
16 changes: 4 additions & 12 deletions drivers/usb/serial/pl2303.c
Original file line number Diff line number Diff line change
Expand Up @@ -324,20 +324,12 @@ static int pl2303_baudrate_encode_divisor(int baud, enum pl2303_type type,
*/
unsigned int A, B;

/*
* NOTE: The Windows driver allows maximum baud rates of 110% of the
* specified maximium value.
* Quick tests with early (2004) HX (rev. A) chips suggest, that even
* higher baud rates (up to the maximum of 24M baud !) are working fine,
* but that should really be tested carefully in "real life" scenarios
* before removing the upper limit completely.
* Baud rates smaller than the specified 75 baud are definitely working
* fine.
*/
/* Respect the specified baud rate limits */
baud = max_t(int, baud, 75);
if (type == HX)
baud = min_t(int, baud, 6000000 * 1.1);
baud = min_t(int, baud, 6000000);
else
baud = min_t(int, baud, 1228800 * 1.1);
baud = min_t(int, baud, 1228800);
/* Determine factors A and B */
A = 0;
B = 12000000 * 32 / baud; /* 12MHz */
Expand Down

0 comments on commit 92dfe41

Please sign in to comment.