fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git] / drivers / s390 / char / con3270.c
index 11c1b3b..7566be8 100644 (file)
@@ -8,13 +8,13 @@
  *     -- Copyright (C) 2003 IBM Deutschland Entwicklung GmbH, IBM Corporation
  */
 
-#include <linux/config.h>
 #include <linux/bootmem.h>
 #include <linux/console.h>
 #include <linux/init.h>
 #include <linux/interrupt.h>
 #include <linux/list.h>
 #include <linux/types.h>
+#include <linux/err.h>
 
 #include <asm/ccwdev.h>
 #include <asm/cio.h>
@@ -77,10 +77,9 @@ con3270_set_timer(struct con3270 *cp, int expires)
                        del_timer(&cp->timer);
                return;
        }
-       if (timer_pending(&cp->timer)) {
-               if (mod_timer(&cp->timer, jiffies + expires))
-                       return;
-       }
+       if (timer_pending(&cp->timer) &&
+           mod_timer(&cp->timer, jiffies + expires))
+               return;
        cp->timer.function = (void (*)(unsigned long)) con3270_update;
        cp->timer.data = (unsigned long) cp;
        cp->timer.expires = jiffies + expires;
@@ -214,6 +213,9 @@ con3270_update(struct con3270 *cp)
        struct string *s, *n;
        int rc;
 
+       if (cp->view.dev)
+               raw3270_activate_view(&cp->view);
+
        wrq = xchg(&cp->write, 0);
        if (!wrq) {
                con3270_set_timer(cp, 1);
@@ -490,8 +492,6 @@ con3270_write(struct console *co, const char *str, unsigned int count)
        unsigned char c;
 
        cp = condev;
-       if (cp->view.dev)
-               raw3270_activate_view(&cp->view);
        spin_lock_irqsave(&cp->view.lock, flags);
        while (count-- > 0) {
                c = *str++;
@@ -592,12 +592,12 @@ con3270_init(void)
 
        /* Set the console mode for VM */
        if (MACHINE_IS_VM) {
-               cpcmd("TERM CONMODE 3270", 0, 0);
-               cpcmd("TERM AUTOCR OFF", 0, 0);
+               cpcmd("TERM CONMODE 3270", NULL, 0, NULL);
+               cpcmd("TERM AUTOCR OFF", NULL, 0, NULL);
        }
 
        cdev = ccw_device_probe_console();
-       if (!cdev)
+       if (IS_ERR(cdev))
                return -ENODEV;
        rp = raw3270_setup_console(cdev);
        if (IS_ERR(rp))
@@ -621,7 +621,7 @@ con3270_init(void)
                     (void (*)(unsigned long)) con3270_read_tasklet,
                     (unsigned long) condev->read);
 
-       raw3270_add_view(&condev->view, &con3270_fn, 0);
+       raw3270_add_view(&condev->view, &con3270_fn, 1);
 
        INIT_LIST_HEAD(&condev->freemem);
        for (i = 0; i < CON3270_STRING_PAGES; i++) {