--- a/branches/Gxsm-2x3-transition-sig/plug-ins/hard/MK3-A810_spmcontrol/dataprocess.c
+++ b/branches/Gxsm-2x3-transition-sig/plug-ins/hard/MK3-A810_spmcontrol/dataprocess.c
@@ -378,12 +378,13 @@
 // PROCESS MODULE: RMS -- average and rms computations via FIR
 // ============================================================
 	// Average and RMS computations
-	d_tmp = *analog.avg_input; // >> !!!
+	d_tmp = *analog.avg_input >> 16; // 32bit (QS15.16 input) -- scale to fit sum 
 	analog.avg_signal = _SADD32 (analog.avg_signal, d_tmp);
 	analog.avg_signal = _SSUB32 (analog.avg_signal, rms_I_pipe[rms_pipi]);
 	rms_I_pipe[rms_pipi] = d_tmp;
 						
 	tmpsum = _SSUB32 (d_tmp, _SSHL32 (analog.avg_signal, -RMS_N2));
+	// now tricky -- taking chances of mult OVR if RMS is too big, designed for read small noise with offset eliminated.
 	tmpsum = _SMPY32 (tmpsum, tmpsum);
 	analog.rms_signal = _SADD32 (analog.rms_signal, tmpsum);
 	analog.rms_signal = _SSUB32 (analog.rms_signal, rms_I2_pipe[rms_pipi]);
@@ -391,7 +392,7 @@
 				
 	if (++rms_pipi == RMS_N) 
 		rms_pipi = 0;
-
+	// RMS, AVG results normalizsation on host level!
 
 	if (sigma_delta_index & 1){