* accesses to a minimum, because after a variable amount of accesses, the AC97
  * controller doesn't raise the register access finished bit anymore ...
  *
- * - Capture support works - basically, but after ~30s (with rates > ~20kHz)
- * ALSA stops reading captured samples from the intermediate buffer and
- * therefore a overrun happens - ATM I don't know what's wrong.
- *
  * - Playback support seems to be pretty stable - no issues here.
+ * - Capture support "works" now, too. Overruns don't happen any longer so often.
+ *   But there might still be some ...
  */
 
 #include <sound/driver.h>
 
                                          rec->min_multiple);
                rec->mul_elapsed++;
 #endif
-               rec->min_periods = 0;
+               rec->min_periods = (rec->min_periods % rec->min_multiple);
                snd_pcm_period_elapsed(substream);
        }
 }
                rec->mul_elapsed_real += (rec->min_periods /
                                          rec->min_multiple);
                rec->mul_elapsed++;
-
-               if (!(rec->mul_elapsed % 4)) {
-                       struct snd_pcm_runtime *runtime = substream->runtime;
-                       unsigned int appl_ptr =
-                           frames_to_bytes(runtime,
-                                           (unsigned int)runtime->control->
-                                           appl_ptr) % rec->sw_buffer_size;
-                       int diff = rec->sw_data - appl_ptr;
-                       if (diff < 0)
-                               diff += rec->sw_buffer_size;
-                       snd_printk(KERN_DEBUG
-                                  "STAT: mul_elapsed: %d, sw_data: %u, "
-                                  "appl_ptr (bytes): %u, diff: %d\n",
-                                  rec->mul_elapsed, rec->sw_data, appl_ptr,
-                                  diff);
-               }
 #endif
-               rec->min_periods = 0;
+               rec->min_periods = (rec->min_periods % rec->min_multiple);
                snd_pcm_period_elapsed(substream);
        }
 }