Skip to content

Commit

Permalink
[PATCH] Char: istallion, dynamic tty device
Browse files Browse the repository at this point in the history
register tty device dynamically according to the count of board ports.

Signed-off-by: Jiri Slaby <[email protected]>
Cc: Alan Cox <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
  • Loading branch information
jirislaby authored and Linus Torvalds committed Dec 8, 2006
1 parent f2362c9 commit ec3dde5
Showing 1 changed file with 14 additions and 1 deletion.
15 changes: 14 additions & 1 deletion drivers/char/istallion.c
Original file line number Diff line number Diff line change
Expand Up @@ -3846,6 +3846,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;
Expand All @@ -3872,6 +3876,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);
Expand Down Expand Up @@ -3912,6 +3917,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;
Expand Down Expand Up @@ -3992,6 +4001,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();
Expand Down Expand Up @@ -4596,7 +4609,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);
Expand Down

0 comments on commit ec3dde5

Please sign in to comment.