[PATCH] Char: stallion, remove many prototypes
Many prototypes are useless, since functions are declared before they are called. Also some code was easy to move to resolve this dependency and delete prototypes. Signed-off-by: Jiri Slaby <jirislaby@gmail.com> Cc: Alan Cox <alan@lxorguk.ukuu.org.uk> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
committed by
Linus Torvalds
parent
40e8265212
commit
96b066b85c
@@ -450,51 +450,11 @@ static unsigned int stl_baudrates[] = {
|
|||||||
* Declare all those functions in this driver!
|
* Declare all those functions in this driver!
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static void stl_argbrds(void);
|
|
||||||
static int stl_parsebrd(struct stlconf *confp, char **argp);
|
|
||||||
|
|
||||||
static unsigned long stl_atol(char *str);
|
|
||||||
|
|
||||||
static int stl_open(struct tty_struct *tty, struct file *filp);
|
|
||||||
static void stl_close(struct tty_struct *tty, struct file *filp);
|
|
||||||
static int stl_write(struct tty_struct *tty, const unsigned char *buf, int count);
|
|
||||||
static void stl_putchar(struct tty_struct *tty, unsigned char ch);
|
|
||||||
static void stl_flushchars(struct tty_struct *tty);
|
|
||||||
static int stl_writeroom(struct tty_struct *tty);
|
|
||||||
static int stl_charsinbuffer(struct tty_struct *tty);
|
|
||||||
static int stl_ioctl(struct tty_struct *tty, struct file *file, unsigned int cmd, unsigned long arg);
|
|
||||||
static void stl_settermios(struct tty_struct *tty, struct termios *old);
|
|
||||||
static void stl_throttle(struct tty_struct *tty);
|
|
||||||
static void stl_unthrottle(struct tty_struct *tty);
|
|
||||||
static void stl_stop(struct tty_struct *tty);
|
|
||||||
static void stl_start(struct tty_struct *tty);
|
|
||||||
static void stl_flushbuffer(struct tty_struct *tty);
|
|
||||||
static void stl_breakctl(struct tty_struct *tty, int state);
|
|
||||||
static void stl_waituntilsent(struct tty_struct *tty, int timeout);
|
|
||||||
static void stl_sendxchar(struct tty_struct *tty, char ch);
|
|
||||||
static void stl_hangup(struct tty_struct *tty);
|
|
||||||
static int stl_memioctl(struct inode *ip, struct file *fp, unsigned int cmd, unsigned long arg);
|
static int stl_memioctl(struct inode *ip, struct file *fp, unsigned int cmd, unsigned long arg);
|
||||||
static int stl_portinfo(struct stlport *portp, int portnr, char *pos);
|
|
||||||
static int stl_readproc(char *page, char **start, off_t off, int count, int *eof, void *data);
|
|
||||||
|
|
||||||
static int stl_brdinit(struct stlbrd *brdp);
|
static int stl_brdinit(struct stlbrd *brdp);
|
||||||
static int stl_initports(struct stlbrd *brdp, struct stlpanel *panelp);
|
|
||||||
static int stl_getserial(struct stlport *portp, struct serial_struct __user *sp);
|
|
||||||
static int stl_setserial(struct stlport *portp, struct serial_struct __user *sp);
|
|
||||||
static int stl_getbrdstats(combrd_t __user *bp);
|
|
||||||
static int stl_getportstats(struct stlport *portp, comstats_t __user *cp);
|
static int stl_getportstats(struct stlport *portp, comstats_t __user *cp);
|
||||||
static int stl_clrportstats(struct stlport *portp, comstats_t __user *cp);
|
static int stl_clrportstats(struct stlport *portp, comstats_t __user *cp);
|
||||||
static int stl_getportstruct(struct stlport __user *arg);
|
|
||||||
static int stl_getbrdstruct(struct stlbrd __user *arg);
|
|
||||||
static int stl_waitcarrier(struct stlport *portp, struct file *filp);
|
static int stl_waitcarrier(struct stlport *portp, struct file *filp);
|
||||||
static int stl_eiointr(struct stlbrd *brdp);
|
|
||||||
static int stl_echatintr(struct stlbrd *brdp);
|
|
||||||
static int stl_echmcaintr(struct stlbrd *brdp);
|
|
||||||
static int stl_echpciintr(struct stlbrd *brdp);
|
|
||||||
static int stl_echpci64intr(struct stlbrd *brdp);
|
|
||||||
static void stl_offintr(struct work_struct *);
|
|
||||||
static struct stlbrd *stl_allocbrd(void);
|
|
||||||
static struct stlport *stl_getport(int brdnr, int panelnr, int portnr);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* CD1400 uart specific handling functions.
|
* CD1400 uart specific handling functions.
|
||||||
@@ -700,31 +660,6 @@ static struct class *stallion_class;
|
|||||||
* Check for any arguments passed in on the module load command line.
|
* Check for any arguments passed in on the module load command line.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static void __init stl_argbrds(void)
|
|
||||||
{
|
|
||||||
struct stlconf conf;
|
|
||||||
struct stlbrd *brdp;
|
|
||||||
int i;
|
|
||||||
|
|
||||||
pr_debug("stl_argbrds()\n");
|
|
||||||
|
|
||||||
for (i = stl_nrbrds; (i < stl_nargs); i++) {
|
|
||||||
memset(&conf, 0, sizeof(conf));
|
|
||||||
if (stl_parsebrd(&conf, stl_brdsp[i]) == 0)
|
|
||||||
continue;
|
|
||||||
if ((brdp = stl_allocbrd()) == NULL)
|
|
||||||
continue;
|
|
||||||
stl_nrbrds = i + 1;
|
|
||||||
brdp->brdnr = i;
|
|
||||||
brdp->brdtype = conf.brdtype;
|
|
||||||
brdp->ioaddr1 = conf.ioaddr1;
|
|
||||||
brdp->ioaddr2 = conf.ioaddr2;
|
|
||||||
brdp->irq = conf.irq;
|
|
||||||
brdp->irqtype = conf.irqtype;
|
|
||||||
stl_brdinit(brdp);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -826,6 +761,31 @@ static struct stlbrd *stl_allocbrd(void)
|
|||||||
return brdp;
|
return brdp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void __init stl_argbrds(void)
|
||||||
|
{
|
||||||
|
struct stlconf conf;
|
||||||
|
struct stlbrd *brdp;
|
||||||
|
int i;
|
||||||
|
|
||||||
|
pr_debug("stl_argbrds()\n");
|
||||||
|
|
||||||
|
for (i = stl_nrbrds; (i < stl_nargs); i++) {
|
||||||
|
memset(&conf, 0, sizeof(conf));
|
||||||
|
if (stl_parsebrd(&conf, stl_brdsp[i]) == 0)
|
||||||
|
continue;
|
||||||
|
if ((brdp = stl_allocbrd()) == NULL)
|
||||||
|
continue;
|
||||||
|
stl_nrbrds = i + 1;
|
||||||
|
brdp->brdnr = i;
|
||||||
|
brdp->brdtype = conf.brdtype;
|
||||||
|
brdp->ioaddr1 = conf.ioaddr1;
|
||||||
|
brdp->ioaddr2 = conf.ioaddr2;
|
||||||
|
brdp->irq = conf.irq;
|
||||||
|
brdp->irqtype = conf.irqtype;
|
||||||
|
stl_brdinit(brdp);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
static int stl_open(struct tty_struct *tty, struct file *filp)
|
static int stl_open(struct tty_struct *tty, struct file *filp)
|
||||||
@@ -972,6 +932,52 @@ static int stl_waitcarrier(struct stlport *portp, struct file *filp)
|
|||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
|
static void stl_flushbuffer(struct tty_struct *tty)
|
||||||
|
{
|
||||||
|
struct stlport *portp;
|
||||||
|
|
||||||
|
pr_debug("stl_flushbuffer(tty=%p)\n", tty);
|
||||||
|
|
||||||
|
if (tty == NULL)
|
||||||
|
return;
|
||||||
|
portp = tty->driver_data;
|
||||||
|
if (portp == NULL)
|
||||||
|
return;
|
||||||
|
|
||||||
|
stl_flush(portp);
|
||||||
|
tty_wakeup(tty);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*****************************************************************************/
|
||||||
|
|
||||||
|
static void stl_waituntilsent(struct tty_struct *tty, int timeout)
|
||||||
|
{
|
||||||
|
struct stlport *portp;
|
||||||
|
unsigned long tend;
|
||||||
|
|
||||||
|
pr_debug("stl_waituntilsent(tty=%p,timeout=%d)\n", tty, timeout);
|
||||||
|
|
||||||
|
if (tty == NULL)
|
||||||
|
return;
|
||||||
|
portp = tty->driver_data;
|
||||||
|
if (portp == NULL)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (timeout == 0)
|
||||||
|
timeout = HZ;
|
||||||
|
tend = jiffies + timeout;
|
||||||
|
|
||||||
|
while (stl_datastate(portp)) {
|
||||||
|
if (signal_pending(current))
|
||||||
|
break;
|
||||||
|
msleep_interruptible(20);
|
||||||
|
if (time_after_eq(jiffies, tend))
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*****************************************************************************/
|
||||||
|
|
||||||
static void stl_close(struct tty_struct *tty, struct file *filp)
|
static void stl_close(struct tty_struct *tty, struct file *filp)
|
||||||
{
|
{
|
||||||
struct stlport *portp;
|
struct stlport *portp;
|
||||||
@@ -1401,6 +1407,26 @@ static int stl_ioctl(struct tty_struct *tty, struct file *file, unsigned int cmd
|
|||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Start the transmitter again. Just turn TX interrupts back on.
|
||||||
|
*/
|
||||||
|
|
||||||
|
static void stl_start(struct tty_struct *tty)
|
||||||
|
{
|
||||||
|
struct stlport *portp;
|
||||||
|
|
||||||
|
pr_debug("stl_start(tty=%p)\n", tty);
|
||||||
|
|
||||||
|
if (tty == NULL)
|
||||||
|
return;
|
||||||
|
portp = tty->driver_data;
|
||||||
|
if (portp == NULL)
|
||||||
|
return;
|
||||||
|
stl_startrxtx(portp, -1, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*****************************************************************************/
|
||||||
|
|
||||||
static void stl_settermios(struct tty_struct *tty, struct termios *old)
|
static void stl_settermios(struct tty_struct *tty, struct termios *old)
|
||||||
{
|
{
|
||||||
struct stlport *portp;
|
struct stlport *portp;
|
||||||
@@ -1494,26 +1520,6 @@ static void stl_stop(struct tty_struct *tty)
|
|||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
/*
|
|
||||||
* Start the transmitter again. Just turn TX interrupts back on.
|
|
||||||
*/
|
|
||||||
|
|
||||||
static void stl_start(struct tty_struct *tty)
|
|
||||||
{
|
|
||||||
struct stlport *portp;
|
|
||||||
|
|
||||||
pr_debug("stl_start(tty=%p)\n", tty);
|
|
||||||
|
|
||||||
if (tty == NULL)
|
|
||||||
return;
|
|
||||||
portp = tty->driver_data;
|
|
||||||
if (portp == NULL)
|
|
||||||
return;
|
|
||||||
stl_startrxtx(portp, -1, 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*****************************************************************************/
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Hangup this port. This is pretty much like closing the port, only
|
* Hangup this port. This is pretty much like closing the port, only
|
||||||
* a little more brutal. No waiting for data to drain. Shutdown the
|
* a little more brutal. No waiting for data to drain. Shutdown the
|
||||||
@@ -1554,24 +1560,6 @@ static void stl_hangup(struct tty_struct *tty)
|
|||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
static void stl_flushbuffer(struct tty_struct *tty)
|
|
||||||
{
|
|
||||||
struct stlport *portp;
|
|
||||||
|
|
||||||
pr_debug("stl_flushbuffer(tty=%p)\n", tty);
|
|
||||||
|
|
||||||
if (tty == NULL)
|
|
||||||
return;
|
|
||||||
portp = tty->driver_data;
|
|
||||||
if (portp == NULL)
|
|
||||||
return;
|
|
||||||
|
|
||||||
stl_flush(portp);
|
|
||||||
tty_wakeup(tty);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*****************************************************************************/
|
|
||||||
|
|
||||||
static void stl_breakctl(struct tty_struct *tty, int state)
|
static void stl_breakctl(struct tty_struct *tty, int state)
|
||||||
{
|
{
|
||||||
struct stlport *portp;
|
struct stlport *portp;
|
||||||
@@ -1589,34 +1577,6 @@ static void stl_breakctl(struct tty_struct *tty, int state)
|
|||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
static void stl_waituntilsent(struct tty_struct *tty, int timeout)
|
|
||||||
{
|
|
||||||
struct stlport *portp;
|
|
||||||
unsigned long tend;
|
|
||||||
|
|
||||||
pr_debug("stl_waituntilsent(tty=%p,timeout=%d)\n", tty, timeout);
|
|
||||||
|
|
||||||
if (tty == NULL)
|
|
||||||
return;
|
|
||||||
portp = tty->driver_data;
|
|
||||||
if (portp == NULL)
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (timeout == 0)
|
|
||||||
timeout = HZ;
|
|
||||||
tend = jiffies + timeout;
|
|
||||||
|
|
||||||
while (stl_datastate(portp)) {
|
|
||||||
if (signal_pending(current))
|
|
||||||
break;
|
|
||||||
msleep_interruptible(20);
|
|
||||||
if (time_after_eq(jiffies, tend))
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*****************************************************************************/
|
|
||||||
|
|
||||||
static void stl_sendxchar(struct tty_struct *tty, char ch)
|
static void stl_sendxchar(struct tty_struct *tty, char ch)
|
||||||
{
|
{
|
||||||
struct stlport *portp;
|
struct stlport *portp;
|
||||||
|
Reference in New Issue
Block a user