Comment 7 for bug 47809

Revision history for this message
redfox7691 (claudio-bizzarri) wrote :

From ALSA bugtrack web site:

I'm not sure if this is a issue in alsa, it seems to be slmodemd's fault. slmodemd requests a period size of 48 using snd_pcm_hw_params_set_period_size_near() in setup_stream() and aborts if alsa returns anything different. Newer alsa versions return 64, and this should be gracefully handled by slmodemd. The following quick-and-dirty patch to slmodemd allows it to start and communicate, but proper error handling must be implemented:

diff -rud slmodem-2.9.11-20060727-orig/modem/modem_main.c slmodem-2.9.11-20060727/modem/modem_main.c
--- slmodem-2.9.11-20060727-orig/modem/modem_main.c 2005-09-22 10:05:27.000000000 -0300
+++ slmodem-2.9.11-20060727/modem/modem_main.c 2007-07-09 16:26:15.000000000 -0300
@@ -379,11 +379,13 @@
                ERR("cannot set periods for %s: %s\n", stream_name, snd_strerror(err));
                return err;
        }
+#if 0
        if ( rsize != size ) {
                ERR("period size %ld is not supported by %s (%ld).\n",
                    size, stream_name, rsize);
                return -1;
        }
+#endif
        rsize = size = use_short_buffer ? rsize * dev->buf_periods : rsize * 32;
        err = snd_pcm_hw_params_set_buffer_size_near(handle, hw_params, &rsize);
        if (err < 0) {