Merge ../linux-2.6-watchdog-mm
[linux-drm-fsl-dcu.git] / arch / um / drivers / line.c
index 6c2d4ccaf20f63cc59ed049e4f960bf546665af6..426633e5d6e387cc43604557751a6ca641dcbdc1 100644 (file)
@@ -8,7 +8,6 @@
 #include "linux/list.h"
 #include "linux/kd.h"
 #include "linux/interrupt.h"
-#include "linux/devfs_fs_kernel.h"
 #include "asm/uaccess.h"
 #include "chan_kern.h"
 #include "irq_user.h"
@@ -21,7 +20,7 @@
 
 #define LINE_BUFSIZE 4096
 
-static irqreturn_t line_interrupt(int irq, void *data, struct pt_regs *unused)
+static irqreturn_t line_interrupt(int irq, void *data)
 {
        struct chan *chan = data;
        struct line *line = chan->line;
@@ -252,7 +251,7 @@ void line_set_termios(struct tty_struct *tty, struct termios * old)
        /* nothing */
 }
 
-static struct {
+static const struct {
        int  cmd;
        char *level;
        char *name;
@@ -365,8 +364,7 @@ void line_unthrottle(struct tty_struct *tty)
                reactivate_chan(&line->chan_list, line->driver->read_irq);
 }
 
-static irqreturn_t line_write_interrupt(int irq, void *data,
-                                       struct pt_regs *unused)
+static irqreturn_t line_write_interrupt(int irq, void *data)
 {
        struct chan *chan = data;
        struct line *line = chan->line;
@@ -374,7 +372,7 @@ static irqreturn_t line_write_interrupt(int irq, void *data,
        int err;
 
        /* Interrupts are enabled here because we registered the interrupt with
-        * SA_INTERRUPT (see line_setup_irq).*/
+        * IRQF_DISABLED (see line_setup_irq).*/
 
        spin_lock_irq(&line->lock);
        err = flush_buffer(line);
@@ -406,8 +404,8 @@ static irqreturn_t line_write_interrupt(int irq, void *data,
 
 int line_setup_irq(int fd, int input, int output, struct line *line, void *data)
 {
-       struct line_driver *driver = line->driver;
-       int err = 0, flags = SA_INTERRUPT | SA_SHIRQ | SA_SAMPLE_RANDOM;
+       const struct line_driver *driver = line->driver;
+       int err = 0, flags = IRQF_DISABLED | IRQF_SHARED | IRQF_SAMPLE_RANDOM;
 
        if (input)
                err = um_request_irq(driver->read_irq, fd, IRQ_READ,
@@ -498,7 +496,7 @@ void close_lines(struct line *lines, int nlines)
 }
 
 /* Common setup code for both startup command line and mconsole initialization.
- * @lines contains the the array (of size @num) to modify;
+ * @lines contains the array (of size @num) to modify;
  * @init is the setup string;
  */
 
@@ -559,7 +557,7 @@ int line_setup(struct line *lines, unsigned int num, char *init)
 }
 
 int line_config(struct line *lines, unsigned int num, char *str,
-               struct chan_opts *opts)
+               const struct chan_opts *opts)
 {
        struct line *line;
        char *new;
@@ -643,9 +641,9 @@ int line_remove(struct line *lines, unsigned int num, int n)
 }
 
 struct tty_driver *line_register_devfs(struct lines *set,
-                        struct line_driver *line_driver,
-                        struct tty_operations *ops, struct line *lines,
-                        int nlines)
+                                      struct line_driver *line_driver,
+                                      const struct tty_operations *ops,
+                                      struct line *lines, int nlines)
 {
        int i;
        struct tty_driver *driver = alloc_tty_driver(nlines);
@@ -655,7 +653,6 @@ struct tty_driver *line_register_devfs(struct lines *set,
 
        driver->driver_name = line_driver->name;
        driver->name = line_driver->device_name;
-       driver->devfs_name = line_driver->devfs_name;
        driver->major = line_driver->major;
        driver->minor_start = line_driver->minor_start;
        driver->type = line_driver->type;
@@ -714,7 +711,7 @@ struct winch {
        struct tty_struct *tty;
 };
 
-static irqreturn_t winch_interrupt(int irq, void *data, struct pt_regs *unused)
+static irqreturn_t winch_interrupt(int irq, void *data)
 {
        struct winch *winch = data;
        struct tty_struct *tty;
@@ -769,7 +766,7 @@ void register_winch_irq(int fd, int tty_fd, int pid, struct tty_struct *tty)
        spin_unlock(&winch_handler_lock);
 
        if(um_request_irq(WINCH_IRQ, fd, IRQ_READ, winch_interrupt,
-                         SA_INTERRUPT | SA_SHIRQ | SA_SAMPLE_RANDOM,
+                         IRQF_DISABLED | IRQF_SHARED | IRQF_SAMPLE_RANDOM,
                          "winch", winch) < 0)
                printk("register_winch_irq - failed to register IRQ\n");
 }