u32 channels = hweight16(config & INA3221_CONFIG_CHs_EN_MASK);
        u32 vbus_ct_idx = INA3221_CONFIG_VBUS_CT(config);
        u32 vsh_ct_idx = INA3221_CONFIG_VSH_CT(config);
-       u32 samples_idx = INA3221_CONFIG_AVG(config);
-       u32 samples = ina3221_avg_samples[samples_idx];
        u32 vbus_ct = ina3221_conv_time[vbus_ct_idx];
        u32 vsh_ct = ina3221_conv_time[vsh_ct_idx];
 
        /* Calculate total conversion time */
-       return channels * (vbus_ct + vsh_ct) * samples;
+       return channels * (vbus_ct + vsh_ct);
 }
 
 static inline int ina3221_wait_for_data(struct ina3221_data *ina)
                        return -ENODATA;
 
                /* Write CONFIG register to trigger a single-shot measurement */
-               if (ina->single_shot)
+               if (ina->single_shot) {
                        regmap_write(ina->regmap, INA3221_CONFIG,
                                     ina->reg_config);
 
-               ret = ina3221_wait_for_data(ina);
-               if (ret)
-                       return ret;
+                       ret = ina3221_wait_for_data(ina);
+                       if (ret)
+                               return ret;
+               }
 
                ret = ina3221_read_value(ina, reg, ®val);
                if (ret)
                        return -ENODATA;
 
                /* Write CONFIG register to trigger a single-shot measurement */
-               if (ina->single_shot)
+               if (ina->single_shot) {
                        regmap_write(ina->regmap, INA3221_CONFIG,
                                     ina->reg_config);
 
-               ret = ina3221_wait_for_data(ina);
-               if (ret)
-                       return ret;
+                       ret = ina3221_wait_for_data(ina);
+                       if (ret)
+                               return ret;
+               }
 
                fallthrough;
        case hwmon_curr_crit: