Merge branch 'autoconf-removal'
[libftdi] / src / ftdi.c
index 0c8d540..fba5288 100644 (file)
@@ -1112,7 +1112,11 @@ static int ftdi_to_clkbits(int baudrate, unsigned int clk, int clk_div, unsigned
             best_divisor = divisor/2;
         if(best_divisor > 0x20000)
             best_divisor = 0x1ffff;
-        best_baud = clk*8/clk_div/best_divisor;
+        best_baud = clk*16/clk_div/best_divisor;
+        if (best_baud & 1) /* Decide if to round up or down*/
+            best_baud = best_baud /2 +1;
+        else
+            best_baud = best_baud /2;
         *encoded_divisor = (best_divisor >> 3) | (frac_code[best_divisor & 0x7] << 14);
     }
     return best_baud;
@@ -1161,7 +1165,7 @@ static int ftdi_convert_baudrate(int baudrate, struct ftdi_context *ftdi,
     }
     // Split into "value" and "index" values
     *value = (unsigned short)(encoded_divisor & 0xFFFF);
-    if (ftdi->type == TYPE_2232C || ftdi->type == TYPE_2232H || 
+    if (ftdi->type == TYPE_2232H || 
         ftdi->type == TYPE_4232H || ftdi->type == TYPE_232H )
     {
         *index = (unsigned short)(encoded_divisor >> 8);