linux 2.6.16.38 w/ vs2.0.3-rc1
[linux-2.6.git] / drivers / char / amiserial.c
index 9d6713a..7ac365b 100644 (file)
@@ -31,6 +31,7 @@
  *             ever possible.
  */
 
+#include <linux/config.h>
 #include <linux/delay.h>
 
 #undef SERIAL_PARANOIA_CHECK
@@ -45,6 +46,8 @@
 
 /* Sanity checks */
 
+#define SERIAL_INLINE
+  
 #if defined(MODULE) && defined(SERIAL_DEBUG_MCOUNT)
 #define DBG_CNT(s) printk("(%s): [%x] refc=%d, serc=%d, ttyc=%d -> %s\n", \
  tty->name, (info->flags), serial_driver->refcount,info->count,tty->count,s)
@@ -92,6 +95,10 @@ static char *serial_version = "4.30";
 #include <asm/amigahw.h>
 #include <asm/amigaints.h>
 
+#ifdef SERIAL_INLINE
+#define _INLINE_ inline
+#endif
+
 #define custom amiga_custom
 static char *serial_name = "Amiga-builtin serial driver";
 
@@ -246,14 +253,14 @@ static void rs_start(struct tty_struct *tty)
  * This routine is used by the interrupt handler to schedule
  * processing in the software interrupt portion of the driver.
  */
-static void rs_sched_event(struct async_struct *info,
-                          int event)
+static _INLINE_ void rs_sched_event(struct async_struct *info,
+                                 int event)
 {
        info->event |= 1 << event;
        tasklet_schedule(&info->tlet);
 }
 
-static void receive_chars(struct async_struct *info)
+static _INLINE_ void receive_chars(struct async_struct *info)
 {
         int status;
        int serdatr;
@@ -342,7 +349,7 @@ out:
        return;
 }
 
-static void transmit_chars(struct async_struct *info)
+static _INLINE_ void transmit_chars(struct async_struct *info)
 {
        custom.intreq = IF_TBE;
        mb();
@@ -382,7 +389,7 @@ static void transmit_chars(struct async_struct *info)
        }
 }
 
-static void check_modem_status(struct async_struct *info)
+static _INLINE_ void check_modem_status(struct async_struct *info)
 {
        unsigned char status = ciab.pra & (SER_DCD | SER_CTS | SER_DSR);
        unsigned char dstatus;
@@ -1952,7 +1959,7 @@ done:
  * number, and identifies which options were configured into this
  * driver.
  */
-static void show_serial_version(void)
+static _INLINE_ void show_serial_version(void)
 {
        printk(KERN_INFO "%s version %s\n", serial_name, serial_version);
 }
@@ -2051,7 +2058,7 @@ static int __init rs_init(void)
 
        /* set ISRs, and then disable the rx interrupts */
        request_irq(IRQ_AMIGA_TBE, ser_tx_int, 0, "serial TX", state);
-       request_irq(IRQ_AMIGA_RBF, ser_rx_int, IRQF_DISABLED, "serial RX", state);
+       request_irq(IRQ_AMIGA_RBF, ser_rx_int, SA_INTERRUPT, "serial RX", state);
 
        /* turn off Rx and Tx interrupts */
        custom.intena = IF_RBF | IF_TBE;