- if (COM_ISMULTIPORT(dev) && !COM_NOMASTER(dev)) {
- mdev = find_isadev(isa_devtab_tty, &siodriver,
- COM_MPMASTER(dev));
- if (mdev != NULL) {
- outb(mdev->id_iobase + com_scr, 0x80);
+ if (COM_ISMULTIPORT(dev)) {
+ if (!COM_NOMASTER(dev)) {
+ idev = find_isadev(isa_devtab_tty, &siodriver,
+ COM_MPMASTER(dev));
+ if (idev == NULL) {
+ printf("sio%d: master device %d not found\n",
+ dev->id_unit, COM_MPMASTER(dev));
+ return (0);
+ }
+ if (idev->id_irq == 0) {
+ printf("sio%d: master device %d irq not configured\n",
+ dev->id_unit, COM_MPMASTER(dev));
+ return (0);
+ }
+ outb(idev->id_iobase + com_scr, 0x80);