From 63c706b924ed0422b6816a72b8704bc3ed872792 Mon Sep 17 00:00:00 2001 From: Alexander Viro Date: Sun, 3 Apr 2005 18:06:21 -0700 Subject: [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 Signed-off-by: Al Viro --- drivers/serial/Kconfig | 1 + drivers/serial/jsm/jsm.h | 4 ++-- drivers/serial/jsm/jsm_neo.c | 6 +++--- drivers/serial/jsm/jsm_tty.c | 13 ++++--------- 4 files changed, 10 insertions(+), 14 deletions(-) diff --git a/drivers/serial/Kconfig b/drivers/serial/Kconfig index cdf110fd63518..6e44b46c9e9dd 100644 --- a/drivers/serial/Kconfig +++ b/drivers/serial/Kconfig @@ -829,6 +829,7 @@ config SERIAL_VR41XX_CONSOLE 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 --git a/drivers/serial/jsm/jsm.h b/drivers/serial/jsm/jsm.h index 6926b100e2b04..b12ee02a0f7c3 100644 --- a/drivers/serial/jsm/jsm.h +++ b/drivers/serial/jsm/jsm.h @@ -171,7 +171,7 @@ struct jsm_board 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 @@ struct jsm_channel { 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 --git a/drivers/serial/jsm/jsm_neo.c b/drivers/serial/jsm/jsm_neo.c index 0511d6be7d173..9b79c1ff6c723 100644 --- a/drivers/serial/jsm/jsm_neo.c +++ b/drivers/serial/jsm/jsm_neo.c @@ -690,7 +690,7 @@ static void neo_flush_uart_read(struct jsm_channel *ch) */ 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 @@ static inline void neo_parse_isr(struct jsm_board *brd, u32 port) struct jsm_channel *ch; u8 isr; u8 cause; - u64 lock_flags; + unsigned long lock_flags; if (!brd) return; @@ -830,7 +830,7 @@ static inline void neo_parse_lsr(struct jsm_board *brd, u32 port) { struct jsm_channel *ch; int linestatus; - u64 lock_flags; + unsigned long lock_flags; if (!brd) return; diff --git a/drivers/serial/jsm/jsm_tty.c b/drivers/serial/jsm/jsm_tty.c index b6bc881166c0d..7fb7cc07074bc 100644 --- a/drivers/serial/jsm/jsm_tty.c +++ b/drivers/serial/jsm/jsm_tty.c @@ -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 @@ static struct uart_ops jsm_ops = { 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 @@ int jsm_tty_init(struct jsm_board *brd) * Initialize board structure elements. */ - vaddr = brd->re_map_membase; - brd->nasync = brd->maxports; /* @@ -408,8 +406,7 @@ int jsm_tty_init(struct jsm_board *brd) 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_tty_init(struct jsm_board *brd) int jsm_uart_port_init(struct jsm_board *brd) { int i; - u8 *vaddr; struct jsm_channel *ch; if (!brd) @@ -439,7 +435,6 @@ int jsm_uart_port_init(struct jsm_board *brd) * Initialize board structure elements. */ - vaddr = brd->re_map_membase; brd->nasync = brd->maxports; /* Set up channel variables */ @@ -504,7 +499,7 @@ void jsm_input(struct jsm_channel *ch) u16 head; u16 tail; int data_len; - u64 lock_flags; + unsigned long lock_flags; int flip_len; int len = 0; int n = 0; -- cgit 1.2.3-korg