ChangeSet 1.2238, 2005/04/04 08:06:21-07:00, [EMAIL PROTECTED]

        [PATCH] jsm fixes
        
         a) jsm depends on PCI.  Kconfig fixed.
         b) spin_lock_irqsave() et.al. expect unsigned long, not u64.
         c) pointer arithmetics works just fine without casts to u64, thank
            you very much.
         d) iomem annotations added.
         e) jsm_get_mstat() lost bits - among other things it did
                if (mstat & UART_MSR_DSR)
                        result |= TIOCM_DSR;
            and ended with return result; since TIOCM_DSR is 256 on e.g.  i386,
            declaring result as unsigned char was a bad idea (function itself
            returns int). 
        
        Signed-off-by: Linus Torvalds <[EMAIL PROTECTED]>
        Signed-off-by: Al Viro <[EMAIL PROTECTED]>



 Kconfig       |    1 +
 jsm/jsm.h     |    4 ++--
 jsm/jsm_neo.c |    6 +++---
 jsm/jsm_tty.c |   13 ++++---------
 4 files changed, 10 insertions(+), 14 deletions(-)


diff -Nru a/drivers/serial/Kconfig b/drivers/serial/Kconfig
--- a/drivers/serial/Kconfig    2005-04-04 09:08:48 -07:00
+++ b/drivers/serial/Kconfig    2005-04-04 09:08:48 -07:00
@@ -829,6 +829,7 @@
 
 config SERIAL_JSM
         tristate "Digi International NEO PCI Support"
+       depends on PCI
         select SERIAL_CORE
         help
           This is a driver for Digi International's Neo series
diff -Nru a/drivers/serial/jsm/jsm.h b/drivers/serial/jsm/jsm.h
--- a/drivers/serial/jsm/jsm.h  2005-04-04 09:08:48 -07:00
+++ b/drivers/serial/jsm/jsm.h  2005-04-04 09:08:48 -07:00
@@ -171,7 +171,7 @@
        u64             membase;        /* Start of base memory of the card */
        u64             membase_end;    /* End of base memory of the card */
 
-       u8              *re_map_membase;/* Remapped memory of the card */
+       u8      __iomem *re_map_membase;/* Remapped memory of the card */
 
        u64             iobase;         /* Start of io base of the card */
        u64             iobase_end;     /* End of io base of the card */
@@ -254,7 +254,7 @@
        u8              ch_mostat;      /* FEP output modem status      */
        u8              ch_mistat;      /* FEP input modem status       */
 
-       struct neo_uart_struct *ch_neo_uart;    /* Pointer to the "mapped" UART 
struct */
+       struct neo_uart_struct __iomem *ch_neo_uart;    /* Pointer to the 
"mapped" UART struct */
        u8              ch_cached_lsr;  /* Cached value of the LSR register */
 
        u8              *ch_rqueue;     /* Our read queue buffer - malloc'ed */
diff -Nru a/drivers/serial/jsm/jsm_neo.c b/drivers/serial/jsm/jsm_neo.c
--- a/drivers/serial/jsm/jsm_neo.c      2005-04-04 09:08:48 -07:00
+++ b/drivers/serial/jsm/jsm_neo.c      2005-04-04 09:08:48 -07:00
@@ -690,7 +690,7 @@
  */
 void neo_clear_break(struct jsm_channel *ch, int force)
 {
-       u64 lock_flags;
+       unsigned long lock_flags;
 
        spin_lock_irqsave(&ch->ch_lock, lock_flags);
 
@@ -717,7 +717,7 @@
        struct jsm_channel *ch;
        u8 isr;
        u8 cause;
-       u64 lock_flags;
+       unsigned long lock_flags;
 
        if (!brd)
                return;
@@ -830,7 +830,7 @@
 {
        struct jsm_channel *ch;
        int linestatus;
-       u64 lock_flags;
+       unsigned long lock_flags;
 
        if (!brd)
                return;
diff -Nru a/drivers/serial/jsm/jsm_tty.c b/drivers/serial/jsm/jsm_tty.c
--- a/drivers/serial/jsm/jsm_tty.c      2005-04-04 09:08:48 -07:00
+++ b/drivers/serial/jsm/jsm_tty.c      2005-04-04 09:08:48 -07:00
@@ -34,7 +34,7 @@
 static inline int jsm_get_mstat(struct jsm_channel *ch)
 {
        unsigned char mstat;
-       unsigned char result;
+       unsigned result;
 
        jsm_printk(IOCTL, INFO, &ch->ch_bd->pci_dev, "start\n");
 
@@ -359,7 +359,7 @@
 int jsm_tty_init(struct jsm_board *brd)
 {
        int i;
-       u8 *vaddr;
+       void __iomem *vaddr;
        struct jsm_channel *ch;
 
        if (!brd)
@@ -371,8 +371,6 @@
         * Initialize board structure elements.
         */
 
-       vaddr = brd->re_map_membase;
-
        brd->nasync = brd->maxports;
 
        /*
@@ -408,8 +406,7 @@
                spin_lock_init(&ch->ch_lock);
 
                if (brd->bd_uart_offset == 0x200)
-                       ch->ch_neo_uart = (struct neo_uart_struct *) ((u64) 
vaddr
-                                               + (brd->bd_uart_offset * i));
+                       ch->ch_neo_uart =  vaddr + (brd->bd_uart_offset * i);
 
                ch->ch_bd = brd;
                ch->ch_portnum = i;
@@ -427,7 +424,6 @@
 int jsm_uart_port_init(struct jsm_board *brd)
 {
        int i;
-       u8 *vaddr;
        struct jsm_channel *ch;
 
        if (!brd)
@@ -439,7 +435,6 @@
         * Initialize board structure elements.
         */
 
-       vaddr = brd->re_map_membase;
        brd->nasync = brd->maxports;
 
        /* Set up channel variables */
@@ -504,7 +499,7 @@
        u16 head;
        u16 tail;
        int data_len;
-       u64 lock_flags;
+       unsigned long lock_flags;
        int flip_len;
        int len = 0;
        int n = 0;
-
To unsubscribe from this list: send the line "unsubscribe bk-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to