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;
                const struct pci_device_id *ent)
 {
        struct stlibrd *brdp;
+       unsigned int i;
        int brdnr, retval = -EIO;
 
        retval = pci_enable_device(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;
                }
                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();
        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);