pa_log_debug("%s: %s", call, pa_alsa_strerror(err));
+#ifdef __TIZEN__
+ if (err == -EAGAIN) {
+ snd_pcm_sframes_t avail;
+ snd_pcm_sframes_t delay;
+
+ snd_pcm_avail_delay(u->pcm_handle, &avail, &delay);
+
+ pa_log_error("%s: ringbuffer is full or stuck. avail(%d), delay(%d), state(%d)",
+ call, avail, delay, snd_pcm_state(u->pcm_handle));
+
+ /* It will wait for not EAGAIN state and call pcm_resume and prepare */
+ if (snd_pcm_recover(u->pcm_handle, -ESTRPIPE, 1) < 0)
+ pa_assert(err != -EAGAIN);
+
+ reset_vars(u);
+
+ return 0;
+ }
+#else
pa_assert(err != -EAGAIN);
+#endif
if (err == -EPIPE)
pa_log_debug("%s: Buffer underrun!", call);