ALSA: asihpi - Relax drained check for more reliable playback startup.
authorEliot Blennerhassett <eblennerhassett@audioscience.com>
Thu, 22 Dec 2011 00:38:37 +0000 (13:38 +1300)
committerTakashi Iwai <tiwai@suse.de>
Thu, 22 Dec 2011 07:13:01 +0000 (08:13 +0100)
Signed-off-by: Eliot Blennerhassett <eblennerhassett@audioscience.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/pci/asihpi/asihpi.c

index 96a6eb0df4a65c821d6f368bc10cf564a8bd26a4..d3cab351718069848f401da7dac5c11348dd0a00 100644 (file)
@@ -759,8 +759,7 @@ static void snd_card_asihpi_timer_function(unsigned long data)
                if (s->stream == SNDRV_PCM_STREAM_PLAYBACK) {
                        pcm_buf_dma_ofs = ds->pcm_buf_host_rw_ofs - bytes_avail;
                        if (state == HPI_STATE_STOPPED) {
-                               if ((bytes_avail == 0) &&
-                                   (on_card_bytes < ds->pcm_buf_host_rw_ofs)) {
+                               if (bytes_avail == 0) {
                                        hpi_handle_error(hpi_stream_start(ds->h_stream));
                                        snd_printdd("P%d start\n", s->number);
                                        ds->drained_count = 0;
@@ -769,7 +768,7 @@ static void snd_card_asihpi_timer_function(unsigned long data)
                                snd_printd(KERN_WARNING "P%d drained\n",
                                                s->number);
                                ds->drained_count++;
-                               if (ds->drained_count > 2) {
+                               if (ds->drained_count > 20) {
                                        snd_pcm_stop(s, SNDRV_PCM_STATE_XRUN);
                                        continue;
                                }