The patch titled
     SC26XX: New serial driver for SC2681 uarts (update)
has been removed from the -mm tree.  Its filename was
     sc26xx-new-serial-driver-for-sc2681-uarts-update.patch

This patch was dropped because it was folded into 
sc26xx-new-serial-driver-for-sc2681-uarts.patch

The current -mm tree may be found at http://userweb.kernel.org/~akpm/mmotm/

------------------------------------------------------
Subject: SC26XX: New serial driver for SC2681 uarts (update)
From: [EMAIL PROTECTED] (Thomas Bogendoerfer)

   - use container_of
   - remove not needed locking
   - remove inlines
   - fix macros with double argument reference

Signed-off-by: Thomas Bogendoerfer <[EMAIL PROTECTED]>
Cc: Ralf Baechle <[EMAIL PROTECTED]>
Cc: Alan Cox <[EMAIL PROTECTED]>
Cc: Torben Mathiasen <[EMAIL PROTECTED]>
Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
---

 drivers/serial/sc26xx.c |   48 ++++++++++++++++++--------------------
 1 file changed, 23 insertions(+), 25 deletions(-)

diff -puN 
drivers/serial/sc26xx.c~sc26xx-new-serial-driver-for-sc2681-uarts-update 
drivers/serial/sc26xx.c
--- a/drivers/serial/sc26xx.c~sc26xx-new-serial-driver-for-sc2681-uarts-update
+++ a/drivers/serial/sc26xx.c
@@ -53,8 +53,8 @@ struct uart_sc26xx_port {
 #define WR_OPR_CLR  0x3C
 
 /* access common register */
-#define READ_SC(p, r)        readb ((p)->membase + RD_##r)
-#define WRITE_SC(p, r, v)    writeb ((v), (p)->membase + WR_##r)
+#define READ_SC(p, r)        readb((p)->membase + RD_##r)
+#define WRITE_SC(p, r, v)    writeb((v), (p)->membase + WR_##r)
 
 /* register per port */
 #define RD_PORT_MRx 0x00
@@ -66,12 +66,6 @@ struct uart_sc26xx_port {
 #define WR_PORT_CR  0x08
 #define WR_PORT_THR 0x0c
 
-/* access port register */
-#define READ_SC_PORT(p, r)     \
-               readb((p)->membase + (p)->line * 0x20 + RD_PORT_##r)
-#define WRITE_SC_PORT(p, r, v) \
-               writeb((v), (p)->membase + (p)->line * 0x20 + WR_PORT_##r)
-
 /* SR bits */
 #define SR_BREAK    (1 << 7)
 #define SR_FRAME    (1 << 6)
@@ -100,13 +94,27 @@ struct uart_sc26xx_port {
 #define IMR_RXRDY   (1 << 1)
 #define IMR_TXRDY   (1 << 0)
 
+/* access port register */
+static inline u8 read_sc_port(struct uart_port *p, u8 reg)
+{
+       return readb(p->membase + p->line * 0x20 + reg);
+}
+
+static inline void write_sc_port(struct uart_port *p, u8 reg, u8 val)
+{
+       writeb(val, p->membase + p->line * 0x20 + reg);
+}
+
+#define READ_SC_PORT(p, r)     read_sc_port(p, RD_PORT_##r)
+#define WRITE_SC_PORT(p, r, v) write_sc_port(p, WR_PORT_##r, v)
+
 static void sc26xx_enable_irq(struct uart_port *port, int mask)
 {
        struct uart_sc26xx_port *up;
        int line = port->line;
 
        port -= line;
-       up = (struct uart_sc26xx_port *)port;
+       up = container_of(port, struct uart_sc26xx_port, port[0]);
 
        up->imr |= mask << (line * 4);
        WRITE_SC(port, IMR, up->imr);
@@ -118,7 +126,7 @@ static void sc26xx_disable_irq(struct ua
        int line = port->line;
 
        port -= line;
-       up = (struct uart_sc26xx_port *)port;
+       up = container_of(port, struct uart_sc26xx_port, port[0]);
 
        up->imr &= ~(mask << (line * 4));
        WRITE_SC(port, IMR, up->imr);
@@ -242,13 +250,7 @@ static irqreturn_t sc26xx_interrupt(int 
 /* port->lock is not held.  */
 static unsigned int sc26xx_tx_empty(struct uart_port *port)
 {
-       unsigned long flags;
-       unsigned int ret;
-
-       spin_lock_irqsave(&port->lock, flags);
-       ret = (READ_SC_PORT(port, SR) & SR_TXRDY) ? TIOCSER_TEMT : 0;
-       spin_unlock_irqrestore(&port->lock, flags);
-       return ret;
+       return (READ_SC_PORT(port, SR) & SR_TXRDY) ? TIOCSER_TEMT : 0;
 }
 
 /* port->lock held by caller.  */
@@ -258,7 +260,7 @@ static void sc26xx_set_mctrl(struct uart
        int line = port->line;
 
        port -= line;
-       up = (struct uart_sc26xx_port *)port;
+       up = container_of(port, struct uart_sc26xx_port, port[0]);
 
        if (up->dtr_mask[line]) {
                if (mctrl & TIOCM_DTR)
@@ -283,7 +285,7 @@ static unsigned int sc26xx_get_mctrl(str
        u8 ipr;
 
        port -= line;
-       up = (struct uart_sc26xx_port *)port;
+       up = container_of(port, struct uart_sc26xx_port, port[0]);
        ipr = READ_SC(port, IPR) ^ 0xff;
 
        if (up->dsr_mask[line]) {
@@ -340,14 +342,10 @@ static void sc26xx_enable_ms(struct uart
 /* port->lock is not held.  */
 static void sc26xx_break_ctl(struct uart_port *port, int break_state)
 {
-       unsigned long flags;
-
-       spin_lock_irqsave(&port->lock, flags);
        if (break_state == -1)
                WRITE_SC_PORT(port, CR, CR_STRT_BRK);
        else
                WRITE_SC_PORT(port, CR, CR_STOP_BRK);
-       spin_unlock_irqrestore(&port->lock, flags);
 }
 
 /* port->lock is not held.  */
@@ -539,7 +537,7 @@ static struct uart_ops sc26xx_ops = {
 static struct uart_port *sc26xx_port;
 
 #ifdef CONFIG_SERIAL_SC26XX_CONSOLE
-static inline void sc26xx_console_putchar(struct uart_port *port, char c)
+static void sc26xx_console_putchar(struct uart_port *port, char c)
 {
        unsigned long flags;
        int limit = 1000000;
@@ -612,7 +610,7 @@ static struct uart_driver sc26xx_reg = {
        .cons                   = SC26XX_CONSOLE,
 };
 
-static inline u8 sc26xx_flags2mask(unsigned int flags, unsigned int bitpos)
+static u8 sc26xx_flags2mask(unsigned int flags, unsigned int bitpos)
 {
        unsigned int bit = (flags >> bitpos) & 15;
 
_

Patches currently in -mm which might be from [EMAIL PROTECTED] are

origin.patch
serial-use-sgi_has_zilog-for-ip22_zilog-depends.patch
char-use-sgi_has_ds1286-for-sgi_ds1286-depends.patch
sc26xx-new-serial-driver-for-sc2681-uarts.patch
sc26xx-new-serial-driver-for-sc2681-uarts-update.patch
partition-use-default_sgi_partition-for-sgi_partion-default.patch

-
To unsubscribe from this list: send the line "unsubscribe mm-commits" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to