diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/char/cyclades.c | 133 |
1 files changed, 50 insertions, 83 deletions
diff --git a/drivers/char/cyclades.c b/drivers/char/cyclades.c index 31bc8e41587..7da6c3babb1 100644 --- a/drivers/char/cyclades.c +++ b/drivers/char/cyclades.c @@ -1,7 +1,6 @@ #undef BLOCKMOVE #define Z_WAKE #undef Z_EXT_CHARS_IN_BUFFER -static char rcsid[] = "$Revision: 2.3.2.20 $$Date: 2004/02/25 18:14:16 $"; /* * linux/drivers/char/cyclades.c @@ -592,6 +591,8 @@ static char rcsid[] = "$Revision: 2.3.2.20 $$Date: 2004/02/25 18:14:16 $"; * */ +#define CY_VERSION "2.4" + /* If you need to install more boards than NR_CARDS, change the constant in the definition below. No other change is necessary to support up to eight boards. Beyond that you'll have to extend cy_isa_addresses. */ @@ -624,9 +625,9 @@ static char rcsid[] = "$Revision: 2.3.2.20 $$Date: 2004/02/25 18:14:16 $"; #undef CY_PCI_DEBUG #if 0 -#define PAUSE __asm__("nop"); +#define PAUSE __asm__("nop") #else -#define PAUSE ; +#define PAUSE do {} while (0) #endif /* @@ -697,8 +698,6 @@ static void cy_send_xchar(struct tty_struct *tty, char ch); #define STD_COM_FLAGS (0) -#define JIFFIES_DIFF(n, j) ((j) - (n)) - static struct tty_driver *cy_serial_driver; #ifdef CONFIG_ISA @@ -870,26 +869,22 @@ static inline int serial_paranoia_check(struct cyclades_port *info, char *name, const char *routine) { #ifdef SERIAL_PARANOIA_CHECK - static const char *badmagic = - "cyc Warning: bad magic number for serial struct (%s) in %s\n"; - static const char *badinfo = - "cyc Warning: null cyclades_port for (%s) in %s\n"; - static const char *badrange = - "cyc Warning: cyclades_port out of range for (%s) in %s\n"; - if (!info) { - printk(badinfo, name, routine); + printk("cyc Warning: null cyclades_port for (%s) in %s\n", + name, routine); return 1; } if ((long)info < (long)(&cy_port[0]) || (long)(&cy_port[NR_PORTS]) < (long)info) { - printk(badrange, name, routine); + printk("cyc Warning: cyclades_port out of range for (%s) in " + "%s\n", name, routine); return 1; } if (info->magic != CYCLADES_MAGIC) { - printk(badmagic, name, routine); + printk("cyc Warning: bad magic number for serial struct (%s) " + "in %s\n", name, routine); return 1; } #endif @@ -991,12 +986,12 @@ static int cyy_issue_cmd(void __iomem * base_addr, u_char cmd, int index) /* if the CCR never cleared, the previous command didn't finish within the "reasonable time" */ if (i == 100) - return (-1); + return -1; /* Issue the new command */ cy_writeb(base_addr + (CyCCR << index), cmd); - return (0); + return 0; } /* cyy_issue_cmd */ #ifdef CONFIG_ISA @@ -1511,7 +1506,7 @@ cyz_fetch_msg(struct cyclades_card *cinfo, firm_id = cinfo->base_addr + ID_ADDRESS; if (!ISZLOADED(*cinfo)) { - return (-1); + return -1; } zfw_ctrl = cinfo->base_addr + (cy_readl(&firm_id->zfwctrl_addr) & 0xfffff); @@ -1542,7 +1537,7 @@ cyz_issue_cmd(struct cyclades_card *cinfo, firm_id = cinfo->base_addr + ID_ADDRESS; if (!ISZLOADED(*cinfo)) { - return (-1); + return -1; } zfw_ctrl = cinfo->base_addr + (cy_readl(&firm_id->zfwctrl_addr) & 0xfffff); @@ -1553,7 +1548,7 @@ cyz_issue_cmd(struct cyclades_card *cinfo, &((struct RUNTIME_9060 __iomem *)(cinfo->ctl_addr))->pci_doorbell; while ((cy_readl(pci_doorbell) & 0xff) != 0) { if (index++ == 1000) { - return ((int)(cy_readl(pci_doorbell) & 0xff)); + return (int)(cy_readl(pci_doorbell) & 0xff); } udelay(50L); } @@ -1561,7 +1556,7 @@ cyz_issue_cmd(struct cyclades_card *cinfo, cy_writel(&board_ctrl->hcmd_param, param); cy_writel(pci_doorbell, (long)cmd); - return (0); + return 0; } /* cyz_issue_cmd */ static void @@ -1959,8 +1954,6 @@ static void cyz_poll(unsigned long arg) cyz_timerlist.expires = jiffies + cyz_polling_cycle; } add_timer(&cyz_timerlist); - - return; } /* cyz_poll */ #endif /* CONFIG_CYZ_INTR */ @@ -2318,7 +2311,6 @@ static void shutdown(struct cyclades_port *info) #ifdef CY_DEBUG_OPEN printk(" cyc shutdown done\n"); #endif - return; } /* shutdown */ /* @@ -2349,8 +2341,7 @@ block_til_ready(struct tty_struct *tty, struct file *filp, if (info->flags & ASYNC_CLOSING) { interruptible_sleep_on(&info->close_wait); } - return ((info-> - flags & ASYNC_HUP_NOTIFY) ? -EAGAIN : -ERESTARTSYS); + return (info->flags & ASYNC_HUP_NOTIFY) ? -EAGAIN: -ERESTARTSYS; } /* @@ -2629,8 +2620,7 @@ static int cy_open(struct tty_struct *tty, struct file *filp) if (tty_hung_up_p(filp) || (info->flags & ASYNC_CLOSING)) { if (info->flags & ASYNC_CLOSING) interruptible_sleep_on(&info->close_wait); - return ((info-> - flags & ASYNC_HUP_NOTIFY) ? -EAGAIN : -ERESTARTSYS); + return (info->flags & ASYNC_HUP_NOTIFY) ? -EAGAIN: -ERESTARTSYS; } /* @@ -2727,7 +2717,7 @@ static void cy_wait_until_sent(struct tty_struct *tty, int timeout) break; } } else { - // Nothing to do! + /* Nothing to do! */ } /* Run one more char cycle */ msleep_interruptible(jiffies_to_msecs(char_time * 5)); @@ -2869,7 +2859,6 @@ static void cy_close(struct tty_struct *tty, struct file *filp) #endif CY_UNLOCK(info, flags); - return; } /* cy_close */ /* This routine gets called when tty_write has put something into @@ -3053,7 +3042,7 @@ static int cy_chars_in_buffer(struct tty_struct *tty) #ifdef CY_DEBUG_IO printk("cyc:cy_chars_in_buffer ttyC%d %d\n", info->line, info->xmit_cnt + char_count); /* */ #endif - return (info->xmit_cnt + char_count); + return info->xmit_cnt + char_count; } #endif /* Z_EXT_CHARS_IN_BUFFER */ } /* cy_chars_in_buffer */ @@ -3918,7 +3907,7 @@ static int set_threshold(struct cyclades_port *info, unsigned long value) cyy_issue_cmd(base_addr, CyCOR_CHANGE | CyCOR3ch, index); CY_UNLOCK(info, flags); } else { - // Nothing to do! + /* Nothing to do! */ } return 0; } /* set_threshold */ @@ -3942,7 +3931,7 @@ get_threshold(struct cyclades_port *info, unsigned long __user * value) tmp = cy_readb(base_addr + (CyCOR3 << index)) & CyREC_FIFO; return put_user(tmp, value); } else { - // Nothing to do! + /* Nothing to do! */ return 0; } } /* get_threshold */ @@ -3979,7 +3968,7 @@ static int set_timeout(struct cyclades_port *info, unsigned long value) cy_writeb(base_addr + (CyRTPR << index), value & 0xff); CY_UNLOCK(info, flags); } else { - // Nothing to do! + /* Nothing to do! */ } return 0; } /* set_timeout */ @@ -4002,7 +3991,7 @@ static int get_timeout(struct cyclades_port *info, unsigned long __user * value) tmp = cy_readb(base_addr + (CyRTPR << index)); return put_user(tmp, value); } else { - // Nothing to do! + /* Nothing to do! */ return 0; } } /* get_timeout */ @@ -4249,8 +4238,6 @@ static void cy_set_termios(struct tty_struct *tty, struct ktermios *old_termios) (tty->termios->c_cflag & CLOCAL)) wake_up_interruptible(&info->open_wait); #endif - - return; } /* cy_set_termios */ /* This function is used to send a high-priority XON/XOFF character to @@ -4337,8 +4324,6 @@ static void cy_throttle(struct tty_struct *tty) info->throttle = 1; } } - - return; } /* cy_throttle */ /* @@ -4396,8 +4381,6 @@ static void cy_unthrottle(struct tty_struct *tty) info->throttle = 0; } } - - return; } /* cy_unthrottle */ /* cy_start and cy_stop provide software output flow control as a @@ -4434,10 +4417,8 @@ static void cy_stop(struct tty_struct *tty) cy_readb(base_addr + (CySRER << index)) & ~CyTxRdy); CY_UNLOCK(info, flags); } else { - // Nothing to do! + /* Nothing to do! */ } - - return; } /* cy_stop */ static void cy_start(struct tty_struct *tty) @@ -4470,10 +4451,8 @@ static void cy_start(struct tty_struct *tty) cy_readb(base_addr + (CySRER << index)) | CyTxRdy); CY_UNLOCK(info, flags); } else { - // Nothing to do! + /* Nothing to do! */ } - - return; } /* cy_start */ static void cy_flush_buffer(struct tty_struct *tty) @@ -4661,7 +4640,7 @@ static int __init cy_detect_isa(void) for (i = 0; i < NR_ISA_ADDRS; i++) { unsigned int isa_address = cy_isa_addresses[i]; if (isa_address == 0x0000) { - return (nboard); + return nboard; } /* probe for CD1400... */ @@ -4691,7 +4670,7 @@ static int __init cy_detect_isa(void) printk("but no more channels are available.\n"); printk("Change NR_PORTS in cyclades.c and recompile " "kernel.\n"); - return (nboard); + return nboard; } /* fill the next cy_card structure available */ for (j = 0; j < NR_CARDS; j++) { @@ -4704,7 +4683,7 @@ static int __init cy_detect_isa(void) printk("but no more cards can be used .\n"); printk("Change NR_CARDS in cyclades.c and recompile " "kernel.\n"); - return (nboard); + return nboard; } /* allocate IRQ */ @@ -4713,7 +4692,7 @@ static int __init cy_detect_isa(void) printk("Cyclom-Y/ISA found at 0x%lx ", (unsigned long)cy_isa_address); printk("but could not allocate IRQ#%d.\n", cy_isa_irq); - return (nboard); + return nboard; } /* set cy_card */ @@ -4734,9 +4713,9 @@ static int __init cy_detect_isa(void) cy_isa_nchan, cy_next_channel); cy_next_channel += cy_isa_nchan; } - return (nboard); + return nboard; #else - return (0); + return 0; #endif /* CONFIG_ISA */ } /* cy_detect_isa */ @@ -4867,7 +4846,7 @@ static int __init cy_detect_pci(void) printk("but no channels are available.\n"); printk("Change NR_PORTS in cyclades.c and " "recompile kernel.\n"); - return (i); + return i; } /* fill the next cy_card structure available */ for (j = 0; j < NR_CARDS; j++) { @@ -4880,7 +4859,7 @@ static int __init cy_detect_pci(void) printk("but no more cards can be used.\n"); printk("Change NR_CARDS in cyclades.c and " "recompile kernel.\n"); - return (i); + return i; } /* allocate IRQ */ @@ -4890,7 +4869,7 @@ static int __init cy_detect_pci(void) (ulong) cy_pci_phys2); printk("but could not allocate IRQ%d.\n", cy_pci_irq); - return (i); + return i; } /* set cy_card */ @@ -5029,7 +5008,7 @@ static int __init cy_detect_pci(void) cy_writel(&((struct RUNTIME_9060 *) (cy_pci_addr0))->loc_addr_base, WIN_CREG); - PAUSE + PAUSE; printk("Cyclades-8Zo/PCI: FPGA id %lx, ver " "%lx\n", (ulong) (0xff & cy_readl(&((struct CUSTOM_REG *) @@ -5050,7 +5029,7 @@ static int __init cy_detect_pci(void) ensures that the driver will not attempt to talk to the board until it has been properly initialized. */ - PAUSE + PAUSE; if ((mailbox == ZO_V1) || (mailbox == ZO_V2)) cy_writel(cy_pci_addr2 + ID_ADDRESS, 0L); @@ -5064,7 +5043,7 @@ static int __init cy_detect_pci(void) "no channels are available.\nChange " "NR_PORTS in cyclades.c and recompile " "kernel.\n", (ulong)cy_pci_phys2); - return (i); + return i; } /* fill the next cy_card structure available */ @@ -5077,7 +5056,7 @@ static int __init cy_detect_pci(void) "no more cards can be used.\nChange " "NR_CARDS in cyclades.c and recompile " "kernel.\n", (ulong)cy_pci_phys2); - return (i); + return i; } #ifdef CONFIG_CYZ_INTR /* allocate IRQ only if board has an IRQ */ @@ -5089,7 +5068,7 @@ static int __init cy_detect_pci(void) "but could not allocate " "IRQ%d.\n", (ulong)cy_pci_phys2, cy_pci_irq); - return (i); + return i; } } #endif /* CONFIG_CYZ_INTR */ @@ -5149,7 +5128,7 @@ static int __init cy_detect_pci(void) printk("Cyclades-Z/PCI: New Cyclades-Z board. FPGA not " "loaded\n"); #endif - PAUSE + PAUSE; /* This must be the new Cyclades-Ze/PCI. */ cy_pci_nchan = ZE_V1_NPORTS; @@ -5158,7 +5137,7 @@ static int __init cy_detect_pci(void) "are available.\nChange NR_PORTS in cyclades.c " "and recompile kernel.\n", (ulong) cy_pci_phys2); - return (i); + return i; } /* fill the next cy_card structure available */ @@ -5171,7 +5150,7 @@ static int __init cy_detect_pci(void) "cards can be used.\nChange NR_CARDS in " "cyclades.c and recompile kernel.\n", (ulong) cy_pci_phys2); - return (i); + return i; } #ifdef CONFIG_CYZ_INTR /* allocate IRQ only if board has an IRQ */ @@ -5183,7 +5162,7 @@ static int __init cy_detect_pci(void) (ulong) cy_pci_phys2); printk("but could not allocate IRQ%d.\n", cy_pci_irq); - return (i); + return i; } } #endif /* CONFIG_CYZ_INTR */ @@ -5222,9 +5201,9 @@ static int __init cy_detect_pci(void) "used.\nChange NR_CARDS in cyclades.c and recompile " "kernel.\n", (unsigned int)Ze_phys2[0]); } - return (i); + return i; #else - return (0); + return 0; #endif /* ifdef CONFIG_PCI */ } /* cy_detect_pci */ @@ -5234,16 +5213,7 @@ static int __init cy_detect_pci(void) */ static inline void show_version(void) { - char *rcsvers, *rcsdate, *tmp; - rcsvers = strchr(rcsid, ' '); - rcsvers++; - tmp = strchr(rcsvers, ' '); - *tmp++ = '\0'; - rcsdate = strchr(tmp, ' '); - rcsdate++; - tmp = strrchr(rcsdate, ' '); - *tmp = '\0'; - printk("Cyclades driver %s %s\n", rcsvers, rcsdate); + printk("Cyclades driver " CY_VERSION "\n"); printk(" built %s %s\n", __DATE__, __TIME__); } /* show_version */ @@ -5272,14 +5242,11 @@ cyclades_get_proc_info(char *buf, char **start, off_t offset, int length, if (info->count) size = sprintf(buf + len, "%3d %8lu %10lu %8lu %10lu " "%8lu %9lu %6ld\n", info->line, - JIFFIES_DIFF(info->idle_stats.in_use, - cur_jifs) / HZ, + (cur_jifs - info->idle_stats.in_use) / HZ, info->idle_stats.xmit_bytes, - JIFFIES_DIFF(info->idle_stats.xmit_idle, - cur_jifs) / HZ, + (cur_jifs - info->idle_stats.xmit_idle) / HZ, info->idle_stats.recv_bytes, - JIFFIES_DIFF(info->idle_stats.recv_idle, - cur_jifs) / HZ, + (cur_jifs - info->idle_stats.recv_idle) / HZ, info->idle_stats.overruns, (long)info->tty->ldisc.num); else |