[AGPGART] Fix modular agpgart ia64 allmodconfig
[safe/jmp/linux-2.6] / drivers / char / istallion.c
index a175518..68645d3 100644 (file)
@@ -2545,8 +2545,7 @@ static void stli_poll(unsigned long arg)
        struct stlibrd *brdp;
        unsigned int brdnr;
 
-       stli_timerlist.expires = STLI_TIMEOUT;
-       add_timer(&stli_timerlist);
+       mod_timer(&stli_timerlist, STLI_TIMEOUT);
 
 /*
  *     Check each board and do any servicing required.
@@ -3610,8 +3609,7 @@ stli_donestartup:
 
        if (! stli_timeron) {
                stli_timeron++;
-               stli_timerlist.expires = STLI_TIMEOUT;
-               add_timer(&stli_timerlist);
+               mod_timer(&stli_timerlist, STLI_TIMEOUT);
        }
 
        return rc;
@@ -3846,6 +3844,10 @@ static int stli_findeisabrds(void)
 
                stli_brds[brdp->brdnr] = brdp;
                found++;
+
+               for (i = 0; i < brdp->nrports; i++)
+                       tty_register_device(stli_serial,
+                                       brdp->brdnr * STL_MAXPORTS + i, NULL);
        }
 
        return found;
@@ -3872,6 +3874,7 @@ static int __devinit stli_pciprobe(struct pci_dev *pdev,
                const struct pci_device_id *ent)
 {
        struct stlibrd *brdp;
+       unsigned int i;
        int brdnr, retval = -EIO;
 
        retval = pci_enable_device(pdev);
@@ -3912,6 +3915,10 @@ static int __devinit stli_pciprobe(struct pci_dev *pdev,
        brdp->enable = NULL;
        brdp->disable = NULL;
 
+       for (i = 0; i < brdp->nrports; i++)
+               tty_register_device(stli_serial, brdp->brdnr * STL_MAXPORTS + i,
+                               &pdev->dev);
+
        return 0;
 err_null:
        stli_brds[brdp->brdnr] = NULL;
@@ -3992,6 +3999,10 @@ static int stli_initbrds(void)
                }
                stli_brds[brdp->brdnr] = brdp;
                found++;
+
+               for (i = 0; i < brdp->nrports; i++)
+                       tty_register_device(stli_serial,
+                                       brdp->brdnr * STL_MAXPORTS + i, NULL);
        }
 
        retval = stli_findeisabrds();
@@ -4596,7 +4607,7 @@ static int __init istallion_module_init(void)
        stli_serial->type = TTY_DRIVER_TYPE_SERIAL;
        stli_serial->subtype = SERIAL_TYPE_NORMAL;
        stli_serial->init_termios = stli_deftermios;
-       stli_serial->flags = TTY_DRIVER_REAL_RAW;
+       stli_serial->flags = TTY_DRIVER_REAL_RAW | TTY_DRIVER_DYNAMIC_DEV;
        tty_set_operations(stli_serial, &stli_ops);
 
        retval = tty_register_driver(stli_serial);