summaryrefslogtreecommitdiff
path: root/drivers/char/epca.c
diff options
context:
space:
mode:
authorDavid Howells <dhowells@redhat.com>2008-07-22 11:20:45 +0100
committerLinus Torvalds <torvalds@linux-foundation.org>2008-07-22 13:03:28 -0700
commit88e882497d154dfb7c341902c079c9daeca1626f (patch)
tree125cd28f48092073571bb38072dc28c7a70f81d5 /drivers/char/epca.c
parente129deff3d979df1ad3d0a6756c90932c0a0a102 (diff)
downloadlinux-3.10-88e882497d154dfb7c341902c079c9daeca1626f.tar.gz
linux-3.10-88e882497d154dfb7c341902c079c9daeca1626f.tar.bz2
linux-3.10-88e882497d154dfb7c341902c079c9daeca1626f.zip
Fix the epca driver to permit epca_setup() to be invoked from the kernel cmdline
Fix the epca driver to call epca_setup() if digiepca=xxx is included on the command line and the epca driver is built in. epca_setup() used to be called from init/main.c in 2.2 kernels, but somewhere along the way that call was removed but not replaced. Signed-off-by: David Howells <dhowells@redhat.com> Signed-off-by: Alan Cox <alan@redhat.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/char/epca.c')
-rw-r--r--drivers/char/epca.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/drivers/char/epca.c b/drivers/char/epca.c
index 9d9ae1ca292..456e4ede049 100644
--- a/drivers/char/epca.c
+++ b/drivers/char/epca.c
@@ -186,7 +186,6 @@ static void pc_throttle(struct tty_struct *tty);
static void pc_unthrottle(struct tty_struct *tty);
static int pc_send_break(struct tty_struct *tty, int msec);
static void setup_empty_event(struct tty_struct *tty, struct channel *ch);
-static void epca_setup(char *, int *);
static int pc_write(struct tty_struct *, const unsigned char *, int);
static int pc_init(void);
@@ -2513,7 +2512,8 @@ static void setup_empty_event(struct tty_struct *tty, struct channel *ch)
memoff(ch);
}
-static void epca_setup(char *str, int *ints)
+#ifndef MODULE
+static void __init epca_setup(char *str, int *ints)
{
struct board_info board;
int index, loop, last;
@@ -2767,6 +2767,17 @@ static void epca_setup(char *str, int *ints)
num_cards++;
}
+static int __init epca_real_setup(char *str)
+{
+ int ints[11];
+
+ epca_setup(get_options(str, 11, ints), ints);
+ return 1;
+}
+
+__setup("digiepca", epca_real_setup);
+#endif
+
enum epic_board_types {
brd_xr = 0,
brd_xem,