print driver name when we encounter driver bugs
authorLennart Poettering <lennart@poettering.net>
Mon, 23 Feb 2009 21:56:09 +0000 (22:56 +0100)
committerLennart Poettering <lennart@poettering.net>
Mon, 23 Feb 2009 21:56:09 +0000 (22:56 +0100)
src/modules/alsa/alsa-sink.c
src/modules/alsa/alsa-source.c
src/modules/alsa/alsa-util.c

index ef51f1db486737a9645f0fbe45d4cd3cc1e05f83..615754958d200444b8c8c79fad2757ab30d270f6 100644 (file)
@@ -306,9 +306,12 @@ static int mmap_write(struct userdata *u, pa_usec_t *sleep_usec, pa_bool_t polle
 
             if (polled)
                 PA_ONCE_BEGIN {
-                    pa_log(_("ALSA woke us up to write new data to the device, but there was actually nothing to write! "
-                             "Most likely this is an ALSA driver bug. Please report this issue to the ALSA developers. "
-                             "We were woken up with POLLOUT set -- however a subsequent snd_pcm_avail_update() returned 0."));
+                    char *dn = pa_alsa_get_driver_name_by_pcm(u->pcm_handle);
+                    pa_log(_("ALSA woke us up to write new data to the device, but there was actually nothing to write!\n"
+                             "Most likely this is a bug in the ALSA driver '%s'. Please report this issue to the ALSA developers.\n"
+                             "We were woken up with POLLOUT set -- however a subsequent snd_pcm_avail() returned 0 or another value < min_avail."),
+                           pa_strnull(dn));
+                    pa_xfree(dn);
                 } PA_ONCE_END;
 
 #ifdef DEBUG_TIMING
@@ -435,9 +438,12 @@ static int unix_write(struct userdata *u, pa_usec_t *sleep_usec, pa_bool_t polle
 
             if (polled)
                 PA_ONCE_BEGIN {
-                    pa_log(_("ALSA woke us up to write new data to the device, but there was actually nothing to write! "
-                             "Most likely this is an ALSA driver bug. Please report this issue to the ALSA developers. "
-                             "We were woken up with POLLOUT set -- however a subsequent snd_pcm_avail_update() returned 0."));
+                    char *dn = pa_alsa_get_driver_name_by_pcm(u->pcm_handle);
+                    pa_log(_("ALSA woke us up to write new data to the device, but there was actually nothing to write!\n"
+                             "Most likely this is a bug in the ALSA driver '%s'. Please report this issue to the ALSA developers.\n"
+                             "We were woken up with POLLOUT set -- however a subsequent snd_pcm_avail() returned 0 or another value < min_avail."),
+                           pa_strnull(dn));
+                    pa_xfree(dn);
                 } PA_ONCE_END;
 
             break;
index fbc21f741d6433872d936e7fea84e63099c409f4..b0b9d9f2cf4a7e09ebfbdb1a316d8013ad211208 100644 (file)
@@ -289,9 +289,12 @@ static int mmap_read(struct userdata *u, pa_usec_t *sleep_usec, pa_bool_t polled
 
             if (polled)
                 PA_ONCE_BEGIN {
-                    pa_log(_("ALSA woke us up to read new data from the device, but there was actually nothing to read! "
-                             "Most likely this is an ALSA driver bug. Please report this issue to the ALSA developers. "
-                             "We were woken up with POLLIN set -- however a subsequent snd_pcm_avail_update() returned 0."));
+                    char *dn = pa_alsa_get_driver_name_by_pcm(u->pcm_handle);
+                    pa_log(_("ALSA woke us up to read new data from the device, but there was actually nothing to read!\n"
+                             "Most likely this is a bug in the ALSA driver '%s'. Please report this issue to the ALSA developers.\n"
+                             "We were woken up with POLLIN set -- however a subsequent snd_pcm_avail() returned 0 or another value < min_avail."),
+                           pa_strnull(dn));
+                    pa_xfree(dn);
                 } PA_ONCE_END;
 
 #ifdef DEBUG_TIMING
@@ -410,9 +413,12 @@ static int unix_read(struct userdata *u, pa_usec_t *sleep_usec, pa_bool_t polled
 
             if (polled)
                 PA_ONCE_BEGIN {
-                    pa_log(_("ALSA woke us up to read new data from the device, but there was actually nothing to read! "
-                             "Most likely this is an ALSA driver bug. Please report this issue to the ALSA developers. "
-                             "We were woken up with POLLIN set -- however a subsequent snd_pcm_avail_update() returned 0."));
+                    char *dn = pa_alsa_get_driver_name_by_pcm(u->pcm_handle);
+                    pa_log(_("ALSA woke us up to read new data from the device, but there was actually nothing to read!\n"
+                             "Most likely this is a bug in the ALSA driver '%s'. Please report this issue to the ALSA developers.\n"
+                             "We were woken up with POLLIN set -- however a subsequent snd_pcm_avail() returned 0 or another value < min_avail."),
+                           pa_strnull(dn));
+                    pa_xfree(dn);
                 } PA_ONCE_END;
 
             break;
index 9be8153b89028c6c0091240d722c72d158e90ac0..8eedeeb56947e1eb1ac005bd04c8446131c0c6ac 100644 (file)
@@ -1578,9 +1578,13 @@ snd_pcm_sframes_t pa_alsa_safe_avail(snd_pcm_t *pcm, size_t hwbuf_size, const pa
         k >= pa_bytes_per_second(ss)*10)
 
         PA_ONCE_BEGIN {
-            pa_log(_("snd_pcm_avail_update() returned a value that is exceptionally large: %lu bytes (%lu ms). "
-                     "Most likely this is an ALSA driver bug. Please report this issue to the ALSA developers."),
-                   (unsigned long) k, (unsigned long) (pa_bytes_to_usec(k, ss) / PA_USEC_PER_MSEC));
+            char *dn = pa_alsa_get_driver_name_by_pcm(pcm);
+            pa_log(_("snd_pcm_avail() returned a value that is exceptionally large: %lu bytes (%lu ms).\n"
+                     "Most likely this is a bug in the ALSA driver '%s'. Please report this issue to the ALSA developers."),
+                   (unsigned long) k,
+                   (unsigned long) (pa_bytes_to_usec(k, ss) / PA_USEC_PER_MSEC),
+                   pa_strnull(dn));
+            pa_xfree(dn);
         } PA_ONCE_END;
 
     return n;
@@ -1649,9 +1653,13 @@ int pa_alsa_safe_mmap_begin(snd_pcm_t *pcm, const snd_pcm_channel_area_t **areas
         k >= pa_bytes_per_second(ss)*10)
 
         PA_ONCE_BEGIN {
-            pa_log(_("snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes (%lu ms). "
-                     "Most likely this is an ALSA driver bug. Please report this issue to the ALSA developers."),
-                   (unsigned long) k, (unsigned long) (pa_bytes_to_usec(k, ss) / PA_USEC_PER_MSEC));
+            char *dn = pa_alsa_get_driver_name_by_pcm(pcm);
+            pa_log(_("snd_pcm_mmap_begin() returned a value that is exceptionally large: %lu bytes (%lu ms).\n"
+                     "Most likely this is a bug in the ALSA driver '%s'. Please report this issue to the ALSA developers."),
+                   (unsigned long) k,
+                   (unsigned long) (pa_bytes_to_usec(k, ss) / PA_USEC_PER_MSEC),
+                   pa_strnull(dn));
+            pa_xfree(dn);
         } PA_ONCE_END;
 
     return r;