  int opt_avalon2_freq_min = AVA2_DEFAULT_FREQUENCY;
  int opt_avalon2_freq_max = AVA2_DEFAULT_FREQUENCY_MAX;
  
-@@ -52,6 +54,11 @@ int opt_avalon2_voltage_min = AVA2_DEFAULT_VOLTAGE;
+@@ -52,6 +55,32 @@ int opt_avalon2_voltage_min = AVA2_DEFAULT_VOLTAGE;
  int opt_avalon2_voltage_max = AVA2_DEFAULT_VOLTAGE_MAX;
  
  int opt_avalon2_overheat = AVALON2_TEMP_OVERHEAT;

 			break;
 		case AVA2_P_STATUS:
 			memcpy(&tmp, ar->data, 4);
@@ -278,6 +340,8 @@ static int decode_pkg(struct thr_info *thr, struct avalon2_ret *ar, uint8_t *pkg
 			memcpy(&(info->power_good[modular_id]), ar->data + 24, 4);
 
 			info->get_frequency[modular_id] = be32toh(info->get_frequency[modular_id]);

 			continue;
 		a = info->hw_works[i];
 		b = info->local_works[i];
@@ -843,39 +1027,85 @@ static struct api_data *avalon2_api_stats(struct cgpu_info *cgpu)
 		root = api_add_percent(root, buf, &hwp, true);
 	}
 	for (i = 0; i < 2 * AVA2_DEFAULT_MODULARS; i++) {
