struct counter_signal *signal,
                             enum counter_signal_level *level)
 {
-       const struct quad8 *const priv = counter->priv;
+       const struct quad8 *const priv = counter_priv(counter);
        unsigned int state;
 
        /* Only Index signal levels can be read */
 static int quad8_count_read(struct counter_device *counter,
                            struct counter_count *count, u64 *val)
 {
-       struct quad8 *const priv = counter->priv;
+       struct quad8 *const priv = counter_priv(counter);
        const int base_offset = priv->base + 2 * count->id;
        unsigned int flags;
        unsigned int borrow;
 static int quad8_count_write(struct counter_device *counter,
                             struct counter_count *count, u64 val)
 {
-       struct quad8 *const priv = counter->priv;
+       struct quad8 *const priv = counter_priv(counter);
        const int base_offset = priv->base + 2 * count->id;
        unsigned long irqflags;
        int i;
                               struct counter_count *count,
                               enum counter_function *function)
 {
-       struct quad8 *const priv = counter->priv;
+       struct quad8 *const priv = counter_priv(counter);
        const int id = count->id;
        unsigned long irqflags;
 
                                struct counter_count *count,
                                enum counter_function function)
 {
-       struct quad8 *const priv = counter->priv;
+       struct quad8 *const priv = counter_priv(counter);
        const int id = count->id;
        unsigned int *const quadrature_mode = priv->quadrature_mode + id;
        unsigned int *const scale = priv->quadrature_scale + id;
                                struct counter_count *count,
                                enum counter_count_direction *direction)
 {
-       const struct quad8 *const priv = counter->priv;
+       const struct quad8 *const priv = counter_priv(counter);
        unsigned int ud_flag;
        const unsigned int flag_addr = priv->base + 2 * count->id + 1;
 
                             struct counter_synapse *synapse,
                             enum counter_synapse_action *action)
 {
-       struct quad8 *const priv = counter->priv;
+       struct quad8 *const priv = counter_priv(counter);
        int err;
        enum counter_function function;
        const size_t signal_a_id = count->synapses[0].signal->id;
 
 static int quad8_events_configure(struct counter_device *counter)
 {
-       struct quad8 *const priv = counter->priv;
+       struct quad8 *const priv = counter_priv(counter);
        unsigned long irq_enabled = 0;
        unsigned long irqflags;
        struct counter_event_node *event_node;
                                    struct counter_signal *signal,
                                    u32 *index_polarity)
 {
-       const struct quad8 *const priv = counter->priv;
+       const struct quad8 *const priv = counter_priv(counter);
        const size_t channel_id = signal->id - 16;
 
        *index_polarity = priv->index_polarity[channel_id];
                                    struct counter_signal *signal,
                                    u32 index_polarity)
 {
-       struct quad8 *const priv = counter->priv;
+       struct quad8 *const priv = counter_priv(counter);
        const size_t channel_id = signal->id - 16;
        const int base_offset = priv->base + 2 * channel_id + 1;
        unsigned long irqflags;
                                      struct counter_signal *signal,
                                      u32 *synchronous_mode)
 {
-       const struct quad8 *const priv = counter->priv;
+       const struct quad8 *const priv = counter_priv(counter);
        const size_t channel_id = signal->id - 16;
 
        *synchronous_mode = priv->synchronous_mode[channel_id];
                                      struct counter_signal *signal,
                                      u32 synchronous_mode)
 {
-       struct quad8 *const priv = counter->priv;
+       struct quad8 *const priv = counter_priv(counter);
        const size_t channel_id = signal->id - 16;
        const int base_offset = priv->base + 2 * channel_id + 1;
        unsigned long irqflags;
                                 struct counter_count *count,
                                 enum counter_count_mode *cnt_mode)
 {
-       const struct quad8 *const priv = counter->priv;
+       const struct quad8 *const priv = counter_priv(counter);
 
        /* Map 104-QUAD-8 count mode to Generic Counter count mode */
        switch (priv->count_mode[count->id]) {
                                  struct counter_count *count,
                                  enum counter_count_mode cnt_mode)
 {
-       struct quad8 *const priv = counter->priv;
+       struct quad8 *const priv = counter_priv(counter);
        unsigned int count_mode;
        unsigned int mode_cfg;
        const int base_offset = priv->base + 2 * count->id + 1;
 static int quad8_count_enable_read(struct counter_device *counter,
                                   struct counter_count *count, u8 *enable)
 {
-       const struct quad8 *const priv = counter->priv;
+       const struct quad8 *const priv = counter_priv(counter);
 
        *enable = priv->ab_enable[count->id];
 
 static int quad8_count_enable_write(struct counter_device *counter,
                                    struct counter_count *count, u8 enable)
 {
-       struct quad8 *const priv = counter->priv;
+       struct quad8 *const priv = counter_priv(counter);
        const int base_offset = priv->base + 2 * count->id;
        unsigned long irqflags;
        unsigned int ior_cfg;
 static int quad8_error_noise_get(struct counter_device *counter,
                                 struct counter_count *count, u32 *noise_error)
 {
-       const struct quad8 *const priv = counter->priv;
+       const struct quad8 *const priv = counter_priv(counter);
        const int base_offset = priv->base + 2 * count->id + 1;
 
        *noise_error = !!(inb(base_offset) & QUAD8_FLAG_E);
 static int quad8_count_preset_read(struct counter_device *counter,
                                   struct counter_count *count, u64 *preset)
 {
-       const struct quad8 *const priv = counter->priv;
+       const struct quad8 *const priv = counter_priv(counter);
 
        *preset = priv->preset[count->id];
 
 static int quad8_count_preset_write(struct counter_device *counter,
                                    struct counter_count *count, u64 preset)
 {
-       struct quad8 *const priv = counter->priv;
+       struct quad8 *const priv = counter_priv(counter);
        unsigned long irqflags;
 
        /* Only 24-bit values are supported */
 static int quad8_count_ceiling_read(struct counter_device *counter,
                                    struct counter_count *count, u64 *ceiling)
 {
-       struct quad8 *const priv = counter->priv;
+       struct quad8 *const priv = counter_priv(counter);
        unsigned long irqflags;
 
        spin_lock_irqsave(&priv->lock, irqflags);
 static int quad8_count_ceiling_write(struct counter_device *counter,
                                     struct counter_count *count, u64 ceiling)
 {
-       struct quad8 *const priv = counter->priv;
+       struct quad8 *const priv = counter_priv(counter);
        unsigned long irqflags;
 
        /* Only 24-bit values are supported */
                                          struct counter_count *count,
                                          u8 *preset_enable)
 {
-       const struct quad8 *const priv = counter->priv;
+       const struct quad8 *const priv = counter_priv(counter);
 
        *preset_enable = !priv->preset_enable[count->id];
 
                                           struct counter_count *count,
                                           u8 preset_enable)
 {
-       struct quad8 *const priv = counter->priv;
+       struct quad8 *const priv = counter_priv(counter);
        const int base_offset = priv->base + 2 * count->id + 1;
        unsigned long irqflags;
        unsigned int ior_cfg;
                                         struct counter_signal *signal,
                                         u8 *cable_fault)
 {
-       struct quad8 *const priv = counter->priv;
+       struct quad8 *const priv = counter_priv(counter);
        const size_t channel_id = signal->id / 2;
        unsigned long irqflags;
        bool disabled;
                                                struct counter_signal *signal,
                                                u8 *enable)
 {
-       const struct quad8 *const priv = counter->priv;
+       const struct quad8 *const priv = counter_priv(counter);
        const size_t channel_id = signal->id / 2;
 
        *enable = !!(priv->cable_fault_enable & BIT(channel_id));
                                                 struct counter_signal *signal,
                                                 u8 enable)
 {
-       struct quad8 *const priv = counter->priv;
+       struct quad8 *const priv = counter_priv(counter);
        const size_t channel_id = signal->id / 2;
        unsigned long irqflags;
        unsigned int cable_fault_enable;
                                           struct counter_signal *signal,
                                           u8 *prescaler)
 {
-       const struct quad8 *const priv = counter->priv;
+       const struct quad8 *const priv = counter_priv(counter);
 
        *prescaler = priv->fck_prescaler[signal->id / 2];
 
                                            struct counter_signal *signal,
                                            u8 prescaler)
 {
-       struct quad8 *const priv = counter->priv;
+       struct quad8 *const priv = counter_priv(counter);
        const size_t channel_id = signal->id / 2;
        const int base_offset = priv->base + 2 * channel_id;
        unsigned long irqflags;