diff old/linux-2.6.37.6-ftdi_sio.c.patch @ 259:40f44aa49dd0

linux-2.6.37.6-ftdi_sio.c.patch moved from doc to old
author Mychaela Falconia <falcon@freecalypso.org>
date Thu, 28 Sep 2017 07:55:58 +0000
parents doc/linux-2.6.37.6-ftdi_sio.c.patch@e7502631a0f9
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/old/linux-2.6.37.6-ftdi_sio.c.patch	Thu Sep 28 07:55:58 2017 +0000
@@ -0,0 +1,29 @@
+--- ftdi_sio.c.orig	2011-03-27 11:01:41.000000000 -0800
++++ ftdi_sio.c	2015-10-30 13:18:40.879000032 -0800
+@@ -949,7 +949,7 @@
+ 	static const unsigned char divfrac[8] = { 0, 3, 2, 4, 1, 5, 6, 7 };
+ 	__u32 divisor;
+ 	/* divisor shifted 3 bits to the left */
+-	int divisor3 = base / 2 / baud;
++	int divisor3 = (base / 2 + baud / 2) / baud;
+ 	divisor = divisor3 >> 3;
+ 	divisor |= (__u32)divfrac[divisor3 & 0x7] << 14;
+ 	/* Deal with special cases for highest baud rates. */
+@@ -1087,6 +1087,17 @@
+ 	baud = tty_get_baud_rate(tty);
+ 	dbg("%s - tty_get_baud_rate reports speed %d", __func__, baud);
+ 
++	/*
++	 * FreeCalypso hack: translate non-std high
++	 * baud rates for GSM like CP2102 does.
++	 */
++	if (baud == 230400)
++		baud = 203125;
++	else if (baud == 460800)
++		baud = 406250;
++	else if (baud == 921600)
++		baud = 812500;
++
+ 	/* 2. Observe async-compatible custom_divisor hack, update baudrate
+ 	   if needed */
+