From: Greg Kroah-Hartman <gregkh@suse.de>
To: linux-kernel@vger.kernel.org
Cc: Tobias Klauser <tklauser@distanz.ch>,
Thomas Chou <thomas@wytron.com.tw>,
Greg Kroah-Hartman <gregkh@suse.de>
Subject: [PATCH 07/11] altera_uart: Simplify altera_uart_console_putc
Date: Fri, 4 Jun 2010 13:47:53 -0700 [thread overview]
Message-ID: <1275684477-20172-7-git-send-email-gregkh@suse.de> (raw)
In-Reply-To: <20100604204445.GB19761@kroah.com>
From: Tobias Klauser <tklauser@distanz.ch>
The check for the TRDY flag after writing the character is not needed.
Also do a cpu_relax() inside the loop.
Pass a struct uart_port to altera_uart_console_putc, so we do not need
to get it (and dereference pointers) for every character.
Cc: Thomas Chou <thomas@wytron.com.tw>
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
drivers/serial/altera_uart.c | 23 ++++++++---------------
1 files changed, 8 insertions(+), 15 deletions(-)
diff --git a/drivers/serial/altera_uart.c b/drivers/serial/altera_uart.c
index b1609cc..7d6afc9 100644
--- a/drivers/serial/altera_uart.c
+++ b/drivers/serial/altera_uart.c
@@ -391,31 +391,24 @@ int __init early_altera_uart_setup(struct altera_uart_platform_uart *platp)
return 0;
}
-static void altera_uart_console_putc(struct console *co, const char c)
+static void altera_uart_console_putc(struct uart_port *port, const char c)
{
- struct uart_port *port = &(altera_uart_ports + co->index)->port;
- int i;
+ while (!(readl(port->membase + ALTERA_UART_STATUS_REG) &
+ ALTERA_UART_STATUS_TRDY_MSK))
+ cpu_relax();
- for (i = 0; i < 0x10000; i++) {
- if (readl(port->membase + ALTERA_UART_STATUS_REG) &
- ALTERA_UART_STATUS_TRDY_MSK)
- break;
- }
writel(c, port->membase + ALTERA_UART_TXDATA_REG);
- for (i = 0; i < 0x10000; i++) {
- if (readl(port->membase + ALTERA_UART_STATUS_REG) &
- ALTERA_UART_STATUS_TRDY_MSK)
- break;
- }
}
static void altera_uart_console_write(struct console *co, const char *s,
unsigned int count)
{
+ struct uart_port *port = &(altera_uart_ports + co->index)->port;
+
for (; count; count--, s++) {
- altera_uart_console_putc(co, *s);
+ altera_uart_console_putc(port, *s);
if (*s == '\n')
- altera_uart_console_putc(co, '\r');
+ altera_uart_console_putc(port, '\r');
}
}
--
1.7.1
next prev parent reply other threads:[~2010-06-04 20:49 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-06-04 20:44 [GIT PATCH] TTY and serial fixes for .35-git Greg KH
2010-06-04 20:47 ` [PATCH 01/11] msm_serial: fix serial on trout Greg Kroah-Hartman
2010-06-04 20:47 ` [PATCH 02/11] serial_cs: add and sort IDs for serial and modem cards Greg Kroah-Hartman
2010-06-04 20:47 ` [PATCH 03/11] serial: bfin_5xx: IRDA is not affected by anomaly 05000230 Greg Kroah-Hartman
2010-06-04 20:47 ` [PATCH 04/11] serial: bfin_5xx: fix typo in IER check Greg Kroah-Hartman
2010-06-04 20:47 ` [PATCH 05/11] TTY/n_gsm: potential double lock Greg Kroah-Hartman
2010-06-04 20:47 ` [PATCH 06/11] altera_uart: Don't take spinlock in already protected functions Greg Kroah-Hartman
2010-06-04 20:47 ` Greg Kroah-Hartman [this message]
2010-06-04 20:47 ` [PATCH 08/11] tty: fix a little bug in scrup, vt.c Greg Kroah-Hartman
2010-06-04 20:47 ` [PATCH 09/11] serial: altera_uart: Proper section for altera_uart_remove Greg Kroah-Hartman
2010-06-04 20:47 ` [PATCH 10/11] vt_ioctl: return -EFAULT on copy_from_user errors Greg Kroah-Hartman
2010-06-04 20:47 ` [PATCH 11/11] serial: add support for various Titan PCI cards 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=1275684477-20172-7-git-send-email-gregkh@suse.de \
--to=gregkh@suse.de \
--cc=linux-kernel@vger.kernel.org \
--cc=thomas@wytron.com.tw \
--cc=tklauser@distanz.ch \
/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
Powered by JetHome