mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@suse.de>
To: linux-kernel@vger.kernel.org
Cc: Feng Tang <feng.tang@intel.com>, Greg Kroah-Hartman <gregkh@suse.de>
Subject: [PATCH 45/49] serial: mfd: add more baud rates support
Date: Fri, 22 Oct 2010 11:21:24 -0700	[thread overview]
Message-ID: <1287771688-14805-45-git-send-email-gregkh@suse.de> (raw)
In-Reply-To: <20101022175112.GC13489@kroah.com>

From: Feng Tang <feng.tang@intel.com>

Add more baud rates support referring the baud_table[] defined
in drivers/char/tty_ioctl.c: 3000000/2000000/1000000/500000

Signed-off-by: Feng Tang <feng.tang@intel.com>
Acked-by: Alan Cox <alan.cox@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
 drivers/serial/mfd.c |   41 +++++++++++++++++++++++++++--------------
 1 files changed, 27 insertions(+), 14 deletions(-)

diff --git a/drivers/serial/mfd.c b/drivers/serial/mfd.c
index ad35130..735799e 100644
--- a/drivers/serial/mfd.c
+++ b/drivers/serial/mfd.c
@@ -929,39 +929,52 @@ serial_hsu_set_termios(struct uart_port *port, struct ktermios *termios,
 		cval |= UART_LCR_EPAR;
 
 	/*
+	 * The base clk is 50Mhz, and the baud rate come from:
+	 *	baud = 50M * MUL / (DIV * PS * DLAB)
+	 *
 	 * For those basic low baud rate we can get the direct
-	 * scalar from 2746800, like 115200 = 2746800/24, for those
-	 * higher baud rate, we have to handle them case by case,
-	 * but DIV reg is never touched as its default value 0x3d09
+	 * scalar from 2746800, like 115200 = 2746800/24. For those
+	 * higher baud rate, we handle them case by case, mainly by
+	 * adjusting the MUL/PS registers, and DIV register is kept
+	 * as default value 0x3d09 to make things simple
 	 */
 	baud = uart_get_baud_rate(port, termios, old, 0, 4000000);
-	quot = uart_get_divisor(port, baud);
 
+	quot = 1;
 	switch (baud) {
 	case 3500000:
 		mul = 0x3345;
 		ps = 0xC;
-		quot = 1;
+		break;
+	case 3000000:
+		mul = 0x2EE0;
 		break;
 	case 2500000:
 		mul = 0x2710;
-		ps = 0x10;
-		quot = 1;
 		break;
-	case 18432000:
+	case 2000000:
+		mul = 0x1F40;
+		break;
+	case 1843200:
 		mul = 0x2400;
-		ps = 0x10;
-		quot = 1;
 		break;
 	case 1500000:
-		mul = 0x1D4C;
-		ps = 0xc;
-		quot = 1;
+		mul = 0x1770;
+		break;
+	case 1000000:
+		mul = 0xFA0;
+		break;
+	case 500000:
+		mul = 0x7D0;
 		break;
 	default:
-		;
+		/* Use uart_get_divisor to get quot for other baud rates */
+		quot = 0;
 	}
 
+	if (!quot)
+		quot = uart_get_divisor(port, baud);
+
 	if ((up->port.uartclk / quot) < (2400 * 16))
 		fcr = UART_FCR_ENABLE_FIFO | UART_FCR_HSU_64_1B;
 	else if ((up->port.uartclk / quot) < (230400 * 16))
-- 
1.7.2


  parent reply	other threads:[~2010-10-22 18:33 UTC|newest]

Thread overview: 71+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-10-22 17:51 [GIT PATCH] TTY/Serial merge for .37-rc1 Greg KH
2010-10-22 18:20 ` [PATCH 01/49] tty: add tty_struct->dev pointer to corresponding device instance Greg Kroah-Hartman
2010-10-22 18:20 ` [PATCH 02/49] serport: place serport serio device correctly in the device tree Greg Kroah-Hartman
2010-10-22 18:20 ` [PATCH 03/49] serial: mfd: snprintf() returns largish values Greg Kroah-Hartman
2010-10-22 18:20 ` [PATCH 04/49] serial: Add CONSOLE_POLL support for uartlite Greg Kroah-Hartman
2010-10-22 18:20 ` [PATCH 05/49] tty: Remove __GFP_NOFAIL from tty_add_file() Greg Kroah-Hartman
2010-10-22 18:20 ` [PATCH 06/49] ioctl: Use asm-generic/ioctls.h on arm (enables termiox) Greg Kroah-Hartman
2010-10-22 18:20 ` [PATCH 07/49] ioctl: Use asm-generic/ioctls.h on avr32 " Greg Kroah-Hartman
2010-10-22 18:20 ` [PATCH 08/49] ioctl: Use asm-generic/ioctls.h on cris " Greg Kroah-Hartman
2010-10-25 14:10   ` Jesper Nilsson
2010-10-22 18:20 ` [PATCH 09/49] ioctl: Use asm-generic/ioctls.h on frv " Greg Kroah-Hartman
2010-10-22 18:20 ` [PATCH 10/49] ioctl: Use asm-generic/ioctls.h on h8300 " Greg Kroah-Hartman
2010-10-22 18:20 ` [PATCH 11/49] ioctl: Use asm-generic/ioctls.h on ia64 " Greg Kroah-Hartman
2010-10-22 18:20 ` [PATCH 12/49] ioctl: Use asm-generic/ioctls.h on m32r " Greg Kroah-Hartman
2010-10-22 18:20 ` [PATCH 13/49] ioctl: Use asm-generic/ioctls.h on m68k " Greg Kroah-Hartman
2010-10-22 18:20 ` [PATCH 14/49] ioctl: Use asm-generic/ioctls.h on mn10300 " Greg Kroah-Hartman
2010-10-22 18:20 ` [PATCH 15/49] ioctl: Use asm-generic/ioctls.h on s390 " Greg Kroah-Hartman
2010-10-22 18:20 ` [PATCH 16/49] serial-core: skip call set_termios/console_start when no_console_suspend Greg Kroah-Hartman
2010-10-22 18:20 ` [PATCH 17/49] serial-core: restore termios settings when resume console ports Greg Kroah-Hartman
2010-10-22 18:20 ` [PATCH 18/49] add ttyprintk driver Greg Kroah-Hartman
2010-10-22 18:20 ` [PATCH 19/49] Char: mxser, call pci_disable_device from probe/remove Greg Kroah-Hartman
2010-10-22 18:20 ` [PATCH 20/49] tty_io: check return code of tty_register_device Greg Kroah-Hartman
2010-10-22 18:21 ` [PATCH 21/49] serial: mrst_max3110: some code cleanup Greg Kroah-Hartman
2010-10-22 18:21 ` [PATCH 22/49] serial: mrst_max3110: Make the IRQ option runtime Greg Kroah-Hartman
2010-10-22 18:21 ` [PATCH 23/49] serial: max3107: Fix memory leaks when returning on error Greg Kroah-Hartman
2010-10-22 18:21 ` [PATCH 24/49] tty: Make tiocgicount a handler Greg Kroah-Hartman
2010-10-22 18:21 ` [PATCH 25/49] tty: Convert the USB drivers to the new icount interface Greg Kroah-Hartman
2010-10-22 18:21 ` [PATCH 26/49] tty: icount changeover for other main devices Greg Kroah-Hartman
2010-10-22 18:21 ` [PATCH 27/49] tty: Fix warning left over from TIOCGICOUNT changes Greg Kroah-Hartman
2010-10-22 18:21 ` [PATCH 28/49] tty: Add a new file /proc/tty/consoles Greg Kroah-Hartman
2010-10-23 11:24   ` Jiri Slaby
2010-10-23 11:40   ` Jiri Slaby
2010-10-23 11:51     ` Al Viro
2010-10-23 12:00       ` Jiri Slaby
2010-10-23 12:26         ` Al Viro
2010-10-23 15:46           ` Greg KH
2010-10-23 16:53             ` Greg KH
2010-10-23 17:03               ` Greg KH
2010-10-23 12:04       ` Al Viro
2010-10-25  7:51     ` Dr. Werner Fink
2010-10-27  0:50       ` Al Viro
2010-10-27  9:27         ` Dr. Werner Fink
2010-10-27  9:51           ` Jiri Slaby
2010-10-27 11:31             ` Dr. Werner Fink
2010-10-23 11:46   ` Christoph Hellwig
2010-10-22 18:21 ` [PATCH 29/49] vcs: add poll/fasync support Greg Kroah-Hartman
2010-11-10  0:12   ` Kay Sievers
2010-11-10  1:26     ` Nicolas Pitre
2010-11-10  1:42       ` Kay Sievers
2010-11-10  6:33         ` Nicolas Pitre
2010-11-10  9:35           ` Kay Sievers
2010-10-22 18:21 ` [PATCH 30/49] vcs: invoke the vt update callback when /dev/vcs* is written to Greg Kroah-Hartman
2010-10-22 18:21 ` [PATCH 31/49] tty: MAINTAINERS: add drivers/serial/jsm/ as maintained driver Greg Kroah-Hartman
2010-10-22 18:21 ` [PATCH 32/49] serial: 8250: Don't delay after transmitter is ready Greg Kroah-Hartman
2010-10-22 18:21 ` [PATCH 33/49] serial: mark the 8250 driver as maintained Greg Kroah-Hartman
2010-10-22 18:21 ` [PATCH 34/49] serial: Factor out uart_poll_timeout() from 8250 driver Greg Kroah-Hartman
2010-10-22 18:21 ` [PATCH 35/49] altera_uart: Add support for polling mode (IRQ-less) Greg Kroah-Hartman
2010-10-22 18:21 ` [PATCH 36/49] altera_uart: Add support for getting mapbase and IRQ from resources Greg Kroah-Hartman
2010-10-22 18:21 ` [PATCH 37/49] altera_uart: Add support for different address strides Greg Kroah-Hartman
2010-10-22 18:21 ` [PATCH 38/49] altera_uart: Make it possible to use Altera UART and 8250 ports together Greg Kroah-Hartman
2010-10-22 18:21 ` [PATCH 39/49] altera_uart: Fixup type usage of port flags Greg Kroah-Hartman
2010-10-22 18:21 ` [PATCH 40/49] altera_uart: Fix missing prototype for registering an early console Greg Kroah-Hartman
2010-10-22 18:21 ` [PATCH 41/49] altera_uart: Don't use plain integer as NULL pointer Greg Kroah-Hartman
2010-10-22 18:21 ` [PATCH 42/49] 8250: allow platforms to override PM hook Greg Kroah-Hartman
2010-10-22 18:21 ` [PATCH 43/49] Alchemy: Add UART PM methods Greg Kroah-Hartman
2010-10-22 18:21 ` [PATCH 44/49] jsm: Remove the uart port on errors Greg Kroah-Hartman
2010-10-22 18:21 ` Greg Kroah-Hartman [this message]
2010-10-22 18:21 ` [PATCH 46/49] serial/imx: check that the buffer is non-empty before sending it out Greg Kroah-Hartman
2010-10-22 18:21 ` [PATCH 47/49] serial: abstraction for 8250 legacy ports Greg Kroah-Hartman
2010-10-22 18:21 ` [PATCH 48/49] serial: bfin_sport_uart: speed up sport RX sample rate to be 3% faster Greg Kroah-Hartman
2010-10-22 18:21 ` [PATCH 49/49] serial8250: ratelimit "too much work" error Greg Kroah-Hartman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1287771688-14805-45-git-send-email-gregkh@suse.de \
    --to=gregkh@suse.de \
    --cc=feng.tang@intel.com \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®