struct dio200_subdev_8254 {
        unsigned int ofs;               /* Counter base offset */
-       unsigned int gat_sce_ofs;       /* GAT_SCE base address */
        int which;                      /* Bit 5 of CLK_SCE or GAT_SCE */
        unsigned int clock_src[3];      /* Current clock sources */
        unsigned int gate_src[3];       /* Current gate sources */
 
        subpriv->gate_src[counter_number] = gate_src;
        byte = gat_sce(subpriv->which, counter_number, gate_src);
-       dio200_write8(dev, subpriv->gat_sce_ofs, byte);
+       dio200_write8(dev, DIO200_GAT_SCE(subpriv->ofs >> 3), byte);
 
        return 0;
 }
 
        spin_lock_init(&subpriv->spinlock);
        subpriv->ofs = offset;
-       if (board->has_clk_gat_sce) {
-               /* Derive CLK_SCE and GAT_SCE register offsets from
-                * 8254 offset. */
-               subpriv->gat_sce_ofs = DIO200_GAT_SCE(offset >> 3);
+       if (board->has_clk_gat_sce)
                subpriv->which = (offset >> 2) & 1;
-       }
 
        /* Initialize channels. */
        for (chan = 0; chan < 3; chan++) {