*/
 static const struct dio200_board dio200_isa_boards[] = {
        {
-               .name = "pc212e",
-               .layout = {
-                       .n_subdevs = 6,
-                       .sdtype = {sd_8255, sd_8254, sd_8254, sd_8254, sd_8254,
-                                  sd_intr},
-                       .sdinfo = {0x00, 0x08, 0x0C, 0x10, 0x14, 0x3F},
-                       .has_int_sce = true,
-                       .has_clk_gat_sce = true,
+               .name           = "pc212e",
+               .n_subdevs      = 6,
+               .sdtype         = {
+                       sd_8255, sd_8254, sd_8254, sd_8254, sd_8254, sd_intr
                },
-       },
-       {
-               .name = "pc214e",
-               .layout = {
-                       .n_subdevs = 4,
-                       .sdtype = {sd_8255, sd_8255, sd_8254, sd_intr},
-                       .sdinfo = {0x00, 0x08, 0x10, 0x01},
+               .sdinfo         = { 0x00, 0x08, 0x0c, 0x10, 0x14, 0x3f },
+               .has_int_sce    = true,
+               .has_clk_gat_sce = true,
+       }, {
+               .name           = "pc214e",
+               .n_subdevs      = 4,
+               .sdtype         = {
+                       sd_8255, sd_8255, sd_8254, sd_intr
                },
-       },
-       {
-               .name = "pc215e",
-               .layout = {
-                       .n_subdevs = 5,
-                       .sdtype = {sd_8255, sd_8255, sd_8254, sd_8254, sd_intr},
-                       .sdinfo = {0x00, 0x08, 0x10, 0x14, 0x3F},
-                       .has_int_sce = true,
-                       .has_clk_gat_sce = true,
+               .sdinfo         = { 0x00, 0x08, 0x10, 0x01 },
+       }, {
+               .name           = "pc215e",
+               .n_subdevs      = 5,
+               .sdtype         = {
+                       sd_8255, sd_8255, sd_8254, sd_8254, sd_intr
                },
-       },
-       {
-               .name = "pc218e",
-               .layout = {
-                       .n_subdevs = 7,
-                       .sdtype = {sd_8254, sd_8254, sd_8255, sd_8254, sd_8254,
-                                  sd_intr},
-                       .sdinfo = {0x00, 0x04, 0x08, 0x0C, 0x10, 0x14, 0x3F},
-                       .has_int_sce = true,
-                       .has_clk_gat_sce = true,
+               .sdinfo         = { 0x00, 0x08, 0x10, 0x14, 0x3f },
+               .has_int_sce    = true,
+               .has_clk_gat_sce = true,
+       }, {
+               .name           = "pc218e",
+               .n_subdevs      = 7,
+               .sdtype         = {
+                       sd_8254, sd_8254, sd_8255, sd_8254, sd_8254, sd_intr
                },
-       },
-       {
-               .name = "pc272e",
-               .layout = {
-                       .n_subdevs = 4,
-                       .sdtype = {sd_8255, sd_8255, sd_8255, sd_intr},
-                       .sdinfo = {0x00, 0x08, 0x10, 0x3F},
-                       .has_int_sce = true,
+               .sdinfo         = { 0x00, 0x04, 0x08, 0x0c, 0x10, 0x14, 0x3f },
+               .has_int_sce    = true,
+               .has_clk_gat_sce = true,
+       }, {
+               .name           = "pc272e",
+               .n_subdevs      = 4,
+               .sdtype         = {
+                       sd_8255, sd_8255, sd_8255, sd_intr
                },
+               .sdinfo         = { 0x00, 0x08, 0x10, 0x3f },
+               .has_int_sce = true,
        },
 };
 
 
        bool active:1;
 };
 
-static inline const struct dio200_layout *
-dio200_board_layout(const struct dio200_board *board)
-{
-       return &board->layout;
-}
-
-static inline const struct dio200_layout *
-dio200_dev_layout(struct comedi_device *dev)
-{
-       return dio200_board_layout(comedi_board(dev));
-}
-
 /*
  * Read 8-bit register.
  */
 static unsigned char dio200_read8(struct comedi_device *dev,
                                  unsigned int offset)
 {
-       const struct dio200_board *thisboard = comedi_board(dev);
+       const struct dio200_board *board = comedi_board(dev);
 
-       offset <<= thisboard->mainshift;
+       offset <<= board->mainshift;
 
        if (dev->mmio)
                return readb(dev->mmio + offset);
 static void dio200_write8(struct comedi_device *dev, unsigned int offset,
                          unsigned char val)
 {
-       const struct dio200_board *thisboard = comedi_board(dev);
+       const struct dio200_board *board = comedi_board(dev);
 
-       offset <<= thisboard->mainshift;
+       offset <<= board->mainshift;
 
        if (dev->mmio)
                writeb(val, dev->mmio + offset);
 static unsigned int dio200_read32(struct comedi_device *dev,
                                  unsigned int offset)
 {
-       const struct dio200_board *thisboard = comedi_board(dev);
+       const struct dio200_board *board = comedi_board(dev);
 
-       offset <<= thisboard->mainshift;
+       offset <<= board->mainshift;
 
        if (dev->mmio)
                return readl(dev->mmio + offset);
 static void dio200_write32(struct comedi_device *dev, unsigned int offset,
                           unsigned int val)
 {
-       const struct dio200_board *thisboard = comedi_board(dev);
+       const struct dio200_board *board = comedi_board(dev);
 
-       offset <<= thisboard->mainshift;
+       offset <<= board->mainshift;
 
        if (dev->mmio)
                writel(val, dev->mmio + offset);
                             struct comedi_subdevice *s,
                             struct comedi_insn *insn, unsigned int *data)
 {
-       const struct dio200_layout *layout = dio200_dev_layout(dev);
+       const struct dio200_board *board = comedi_board(dev);
        struct dio200_subdev_intr *subpriv = s->private;
 
-       if (layout->has_int_sce) {
+       if (board->has_int_sce) {
                /* Just read the interrupt status register.  */
                data[1] = dio200_read8(dev, subpriv->ofs) & subpriv->valid_isns;
        } else {
 static void dio200_stop_intr(struct comedi_device *dev,
                             struct comedi_subdevice *s)
 {
-       const struct dio200_layout *layout = dio200_dev_layout(dev);
+       const struct dio200_board *board = comedi_board(dev);
        struct dio200_subdev_intr *subpriv = s->private;
 
        subpriv->active = false;
        subpriv->enabled_isns = 0;
-       if (layout->has_int_sce)
+       if (board->has_int_sce)
                dio200_write8(dev, subpriv->ofs, 0);
 }
 
 static int dio200_start_intr(struct comedi_device *dev,
                             struct comedi_subdevice *s)
 {
-       unsigned int n;
-       unsigned isn_bits;
-       const struct dio200_layout *layout = dio200_dev_layout(dev);
+       const struct dio200_board *board = comedi_board(dev);
        struct dio200_subdev_intr *subpriv = s->private;
        struct comedi_cmd *cmd = &s->async->cmd;
+       unsigned int n;
+       unsigned isn_bits;
        int retval = 0;
 
        if (cmd->stop_src == TRIG_COUNT && subpriv->stopcount == 0) {
                isn_bits &= subpriv->valid_isns;
                /* Enable interrupt sources. */
                subpriv->enabled_isns = isn_bits;
-               if (layout->has_int_sce)
+               if (board->has_int_sce)
                        dio200_write8(dev, subpriv->ofs, isn_bits);
        }
 
 static int dio200_handle_read_intr(struct comedi_device *dev,
                                   struct comedi_subdevice *s)
 {
-       const struct dio200_layout *layout = dio200_dev_layout(dev);
+       const struct dio200_board *board = comedi_board(dev);
        struct dio200_subdev_intr *subpriv = s->private;
        unsigned triggered;
        unsigned intstat;
 
        spin_lock_irqsave(&subpriv->spinlock, flags);
        oldevents = s->async->events;
-       if (layout->has_int_sce) {
+       if (board->has_int_sce) {
                /*
                 * Collect interrupt sources that have triggered and disable
                 * them temporarily.  Loop around until no extra interrupt
                 * Reenable them NOW to minimize the time they are disabled.
                 */
                cur_enabled = subpriv->enabled_isns;
-               if (layout->has_int_sce)
+               if (board->has_int_sce)
                        dio200_write8(dev, subpriv->ofs, cur_enabled);
 
                if (subpriv->active) {
 dio200_subdev_intr_init(struct comedi_device *dev, struct comedi_subdevice *s,
                        unsigned int offset, unsigned valid_isns)
 {
-       const struct dio200_layout *layout = dio200_dev_layout(dev);
+       const struct dio200_board *board = comedi_board(dev);
        struct dio200_subdev_intr *subpriv;
 
        subpriv = comedi_alloc_spriv(s, sizeof(*subpriv));
        subpriv->valid_isns = valid_isns;
        spin_lock_init(&subpriv->spinlock);
 
-       if (layout->has_int_sce)
+       if (board->has_int_sce)
                /* Disable interrupt sources. */
                dio200_write8(dev, subpriv->ofs, 0);
 
        s->type = COMEDI_SUBD_DI;
        s->subdev_flags = SDF_READABLE | SDF_CMD_READ;
-       if (layout->has_int_sce) {
+       if (board->has_int_sce) {
                s->n_chan = DIO200_MAX_ISNS;
                s->len_chanlist = DIO200_MAX_ISNS;
        } else {
                                unsigned int counter_number,
                                unsigned int gate_src)
 {
-       const struct dio200_layout *layout = dio200_dev_layout(dev);
+       const struct dio200_board *board = comedi_board(dev);
        struct dio200_subdev_8254 *subpriv = s->private;
        unsigned char byte;
 
-       if (!layout->has_clk_gat_sce)
+       if (!board->has_clk_gat_sce)
                return -1;
        if (counter_number > 2)
                return -1;
-       if (gate_src > (layout->has_enhancements ? 31 : 7))
+       if (gate_src > (board->has_enhancements ? 31 : 7))
                return -1;
 
        subpriv->gate_src[counter_number] = gate_src;
                                struct comedi_subdevice *s,
                                unsigned int counter_number)
 {
-       const struct dio200_layout *layout = dio200_dev_layout(dev);
+       const struct dio200_board *board = comedi_board(dev);
        struct dio200_subdev_8254 *subpriv = s->private;
 
-       if (!layout->has_clk_gat_sce)
+       if (!board->has_clk_gat_sce)
                return -1;
        if (counter_number > 2)
                return -1;
                                 unsigned int counter_number,
                                 unsigned int clock_src)
 {
-       const struct dio200_layout *layout = dio200_dev_layout(dev);
+       const struct dio200_board *board = comedi_board(dev);
        struct dio200_subdev_8254 *subpriv = s->private;
        unsigned char byte;
 
-       if (!layout->has_clk_gat_sce)
+       if (!board->has_clk_gat_sce)
                return -1;
        if (counter_number > 2)
                return -1;
-       if (clock_src > (layout->has_enhancements ? 31 : 7))
+       if (clock_src > (board->has_enhancements ? 31 : 7))
                return -1;
 
        subpriv->clock_src[counter_number] = clock_src;
                                 unsigned int counter_number,
                                 unsigned int *period_ns)
 {
-       const struct dio200_layout *layout = dio200_dev_layout(dev);
+       const struct dio200_board *board = comedi_board(dev);
        struct dio200_subdev_8254 *subpriv = s->private;
        unsigned clock_src;
 
-       if (!layout->has_clk_gat_sce)
+       if (!board->has_clk_gat_sce)
                return -1;
        if (counter_number > 2)
                return -1;
 dio200_subdev_8254_init(struct comedi_device *dev, struct comedi_subdevice *s,
                        unsigned int offset)
 {
-       const struct dio200_layout *layout = dio200_dev_layout(dev);
+       const struct dio200_board *board = comedi_board(dev);
        struct dio200_subdev_8254 *subpriv;
        unsigned int chan;
 
 
        spin_lock_init(&subpriv->spinlock);
        subpriv->ofs = offset;
-       if (layout->has_clk_gat_sce) {
+       if (board->has_clk_gat_sce) {
                /* Derive CLK_SCE and GAT_SCE register offsets from
                 * 8254 offset. */
                subpriv->clk_sce_ofs = DIO200_XCLK_SCE + (offset >> 3);
        for (chan = 0; chan < 3; chan++) {
                dio200_subdev_8254_set_mode(dev, s, chan,
                                            I8254_MODE0 | I8254_BINARY);
-               if (layout->has_clk_gat_sce) {
+               if (board->has_clk_gat_sce) {
                        /* Gate source 0 is VCC (logic 1). */
                        dio200_subdev_8254_set_gate_src(dev, s, chan, 0);
                        /* Clock source 0 is the dedicated clock input. */
 int amplc_dio200_common_attach(struct comedi_device *dev, unsigned int irq,
                               unsigned long req_irq_flags)
 {
-       const struct dio200_board *thisboard = comedi_board(dev);
-       const struct dio200_layout *layout = dio200_board_layout(thisboard);
+       const struct dio200_board *board = comedi_board(dev);
        struct comedi_subdevice *s;
        unsigned int n;
        int ret;
 
-       ret = comedi_alloc_subdevices(dev, layout->n_subdevs);
+       ret = comedi_alloc_subdevices(dev, board->n_subdevs);
        if (ret)
                return ret;
 
        for (n = 0; n < dev->n_subdevices; n++) {
                s = &dev->subdevices[n];
-               switch (layout->sdtype[n]) {
+               switch (board->sdtype[n]) {
                case sd_8254:
                        /* counter subdevice (8254) */
                        ret = dio200_subdev_8254_init(dev, s,
-                                                     layout->sdinfo[n]);
+                                                     board->sdinfo[n]);
                        if (ret < 0)
                                return ret;
                        break;
                case sd_8255:
                        /* digital i/o subdevice (8255) */
                        ret = dio200_subdev_8255_init(dev, s,
-                                                     layout->sdinfo[n]);
+                                                     board->sdinfo[n]);
                        if (ret < 0)
                                return ret;
                        break;
                        if (irq && !dev->read_subdev) {
                                ret = dio200_subdev_intr_init(dev, s,
                                                              DIO200_INT_SCE,
-                                                             layout->sdinfo[n]
-                                                            );
+                                                             board->sdinfo[n]);
                                if (ret < 0)
                                        return ret;
                                dev->read_subdev = s;
 
 
 static const struct dio200_board dio200_pci_boards[] = {
        [pci215_model] = {
-               .name = "pci215",
-               .mainbar = 2,
-               .layout = {
-                       .n_subdevs = 5,
-                       .sdtype = {sd_8255, sd_8255, sd_8254, sd_8254, sd_intr},
-                       .sdinfo = {0x00, 0x08, 0x10, 0x14, 0x3F},
-                       .has_int_sce = true,
-                       .has_clk_gat_sce = true,
+               .name           = "pci215",
+               .mainbar        = 2,
+               .n_subdevs      = 5,
+               .sdtype         = {
+                       sd_8255, sd_8255, sd_8254, sd_8254, sd_intr
                },
+               .sdinfo         = { 0x00, 0x08, 0x10, 0x14, 0x3f },
+               .has_int_sce    = true,
+               .has_clk_gat_sce = true,
        },
        [pci272_model] = {
-               .name = "pci272",
-               .mainbar = 2,
-               .layout = {
-                       .n_subdevs = 4,
-                       .sdtype = {sd_8255, sd_8255, sd_8255, sd_intr},
-                       .sdinfo = {0x00, 0x08, 0x10, 0x3F},
-                       .has_int_sce = true,
+               .name           = "pci272",
+               .mainbar        = 2,
+               .n_subdevs      = 4,
+               .sdtype         = {
+                       sd_8255, sd_8255, sd_8255, sd_intr
                },
+               .sdinfo         = { 0x00, 0x08, 0x10, 0x3f },
+               .has_int_sce    = true,
        },
        [pcie215_model] = {
-               .name = "pcie215",
-               .mainbar = 1,
-               .mainshift = 3,
-               .layout = {
-                       .n_subdevs = 8,
-                       .sdtype = {sd_8255, sd_none, sd_8255, sd_none,
-                                  sd_8254, sd_8254, sd_timer, sd_intr},
-                       .sdinfo = {0x00, 0x00, 0x08, 0x00,
-                                  0x10, 0x14, 0x00, 0x3F},
-                       .has_int_sce = true,
-                       .has_clk_gat_sce = true,
-                       .has_enhancements = true,
+               .name           = "pcie215",
+               .mainbar        = 1,
+               .mainshift      = 3,
+               .n_subdevs      = 8,
+               .sdtype         = {
+                       sd_8255, sd_none, sd_8255, sd_none,
+                       sd_8254, sd_8254, sd_timer, sd_intr
                },
+               .sdinfo         = {
+                       0x00, 0x00, 0x08, 0x00, 0x10, 0x14, 0x00, 0x3f
+               },
+               .has_int_sce    = true,
+               .has_clk_gat_sce = true,
+               .has_enhancements = true,
        },
        [pcie236_model] = {
-               .name = "pcie236",
-               .mainbar = 1,
-               .mainshift = 3,
-               .layout = {
-                       .n_subdevs = 8,
-                       .sdtype = {sd_8255, sd_none, sd_none, sd_none,
-                                  sd_8254, sd_8254, sd_timer, sd_intr},
-                       .sdinfo = {0x00, 0x00, 0x00, 0x00,
-                                  0x10, 0x14, 0x00, 0x3F},
-                       .has_int_sce = true,
-                       .has_clk_gat_sce = true,
-                       .has_enhancements = true,
+               .name           = "pcie236",
+               .mainbar        = 1,
+               .mainshift      = 3,
+               .n_subdevs      = 8,
+               .sdtype         = {
+                       sd_8255, sd_none, sd_none, sd_none,
+                       sd_8254, sd_8254, sd_timer, sd_intr
+               },
+               .sdinfo         = {
+                       0x00, 0x00, 0x00, 0x00, 0x10, 0x14, 0x00, 0x3f
                },
+               .has_int_sce    = true,
+               .has_clk_gat_sce = true,
+               .has_enhancements = true,
        },
        [pcie296_model] = {
-               .name = "pcie296",
-               .mainbar = 1,
-               .mainshift = 3,
-               .layout = {
-                       .n_subdevs = 8,
-                       .sdtype = {sd_8255, sd_8255, sd_8255, sd_8255,
-                                  sd_8254, sd_8254, sd_timer, sd_intr},
-                       .sdinfo = {0x00, 0x04, 0x08, 0x0C,
-                                  0x10, 0x14, 0x00, 0x3F},
-                       .has_int_sce = true,
-                       .has_clk_gat_sce = true,
-                       .has_enhancements = true,
+               .name           = "pcie296",
+               .mainbar        = 1,
+               .mainshift      = 3,
+               .n_subdevs      = 8,
+               .sdtype         = {
+                       sd_8255, sd_8255, sd_8255, sd_8255,
+                       sd_8254, sd_8254, sd_timer, sd_intr
+               },
+               .sdinfo         = {
+                       0x00, 0x04, 0x08, 0x0c, 0x10, 0x14, 0x00, 0x3f
                },
+               .has_int_sce    = true,
+               .has_clk_gat_sce = true,
+               .has_enhancements = true,
        },
 };