浏览代码

USB: ftdi_sio: fix resolution of 2232H baud rate dividers

The 2232H high speed baud rates also support fractional baud
rate divisors, but when the performing the divisions before
the multiplication, the fractional bits are lost.

Signed-off-by: Daniel Glöckner <dg@emlix.com>
Acked-by: Mark Adamson <mark.adamson@ftdichip.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Daniel Glöckner 14 年之前
父节点
当前提交
f6c259a39f
共有 1 个文件被更改,包括 1 次插入1 次删除
  1. 1 1
      drivers/usb/serial/ftdi_sio.c

+ 1 - 1
drivers/usb/serial/ftdi_sio.c

@@ -955,7 +955,7 @@ static __u32 ftdi_2232h_baud_base_to_divisor(int baud, int base)
 	int divisor3;
 
 	/* hi-speed baud rate is 10-bit sampling instead of 16-bit */
-	divisor3 = (base / 10 / baud) * 8;
+	divisor3 = base * 8 / (baud * 10);
 
 	divisor = divisor3 >> 3;
 	divisor |= (__u32)divfrac[divisor3 & 0x7] << 14;