mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Mike Frysinger <vapier@gentoo.org>
To: linux-serial@vger.kernel.org, linux-kernel@vger.kernel.org
Cc: uclinux-dist-devel@blackfin.uclinux.org,
	Sonic Zhang <sonic.zhang@analog.com>
Subject: [PATCH 11/11] Blackfin Serial Driver: disable dma rx interrupt only rather than all irqs
Date: Tue,  2 Jun 2009 03:11:40 -0400	[thread overview]
Message-ID: <1243926700-30485-11-git-send-email-vapier@gentoo.org> (raw)
In-Reply-To: <1243926700-30485-1-git-send-email-vapier@gentoo.org>

From: Sonic Zhang <sonic.zhang@analog.com>

The UART RX handling code isn't exactly speeding, so don't go disabling
all interrupts when processing the buffer.  Just disable the relevant DMA
interrupt.  This greatly improves latency of the system when utilizing the
UART.

Signed-off-by: Sonic Zhang <sonic.zhang@analog.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
---
 drivers/serial/bfin_5xx.c |    7 ++++---
 1 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/drivers/serial/bfin_5xx.c b/drivers/serial/bfin_5xx.c
index 64603f5..e2f6b1b 100644
--- a/drivers/serial/bfin_5xx.c
+++ b/drivers/serial/bfin_5xx.c
@@ -479,9 +479,9 @@ static void bfin_serial_dma_rx_chars(struct bfin_serial_port *uart)
 void bfin_serial_rx_dma_timeout(struct bfin_serial_port *uart)
 {
 	int x_pos, pos;
-	unsigned long flags;
 
-	spin_lock_irqsave(&uart->port.lock, flags);
+	dma_disable_irq(uart->rx_dma_channel);
+	spin_lock_bh(&uart->port.lock);
 
 	/* 2D DMA RX buffer ring is used. Because curr_y_count and
 	 * curr_x_count can't be read as an atomic operation,
@@ -512,7 +512,8 @@ void bfin_serial_rx_dma_timeout(struct bfin_serial_port *uart)
 		uart->rx_dma_buf.tail = uart->rx_dma_buf.head;
 	}
 
-	spin_unlock_irqrestore(&uart->port.lock, flags);
+	spin_unlock_bh(&uart->port.lock);
+	dma_enable_irq(uart->rx_dma_channel);
 
 	mod_timer(&(uart->rx_dma_timer), jiffies + DMA_RX_FLUSH_JIFFIES);
 }
-- 
1.6.3.1


      parent reply	other threads:[~2009-06-02  7:14 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-06-02  7:11 [PATCH 01/11] Blackfin SPORT UART: fix typo in sport_set_termios prototype Mike Frysinger
2009-06-02  7:11 ` [PATCH 02/11] Blackfin SPORT UART: fix data misses while using transmit frame sync Mike Frysinger
2009-06-02  7:11 ` [PATCH 03/11] Blackfin SPORT UART: rewrite inline assembly Mike Frysinger
2009-06-02  7:11 ` [PATCH 04/11] Blackfin SPORT UART: fix overrun errors Mike Frysinger
2009-06-02  9:00   ` Alan Cox
2009-06-03  8:03     ` Mike Frysinger
2009-06-03  8:49       ` Cai, Cliff
2009-06-03  8:53       ` Alan Cox
2009-06-03  9:47         ` Mike Frysinger
2009-06-03  9:57           ` Alan Cox
2009-06-03 10:15             ` Mike Frysinger
2009-06-02  7:11 ` [PATCH 05/11] Blackfin Serial Driver: fix error while transferring large files Mike Frysinger
2009-06-02  7:11 ` [PATCH 06/11] Blackfin Serial Driver: fix baudrate for early_printk Mike Frysinger
2009-06-02  7:11 ` [PATCH 07/11] Blackfin Serial Driver: fix missing new lines when under load Mike Frysinger
2009-06-02  7:11 ` [PATCH 08/11] Blackfin Serial Driver: handle irregular DMA register status in auto start mode Mike Frysinger
2009-06-02  7:11 ` [PATCH 09/11] Blackfin Serial Driver: annotate anomalies 05000215 and 05000099 Mike Frysinger
2009-06-02  7:11 ` [PATCH 10/11] Blackfin Serial Driver: handle anomaly 05000231 Mike Frysinger
2009-06-02  7:11 ` Mike Frysinger [this message]

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=1243926700-30485-11-git-send-email-vapier@gentoo.org \
    --to=vapier@gentoo.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-serial@vger.kernel.org \
    --cc=sonic.zhang@analog.com \
    --cc=uclinux-dist-devel@blackfin.uclinux.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®