aboutsummaryrefslogtreecommitdiffstats
path: root/recipes/jack/files/jack_fix_TWL4030_alsa_capture.patch
diff options
context:
space:
mode:
Diffstat (limited to 'recipes/jack/files/jack_fix_TWL4030_alsa_capture.patch')
-rw-r--r--recipes/jack/files/jack_fix_TWL4030_alsa_capture.patch31
1 files changed, 31 insertions, 0 deletions
diff --git a/recipes/jack/files/jack_fix_TWL4030_alsa_capture.patch b/recipes/jack/files/jack_fix_TWL4030_alsa_capture.patch
new file mode 100644
index 0000000000..77337ff6c7
--- /dev/null
+++ b/recipes/jack/files/jack_fix_TWL4030_alsa_capture.patch
@@ -0,0 +1,31 @@
+--- a/drivers/alsa/alsa_driver.c 2009-05-06 06:36:08.000000000 +1000
++++ b/drivers/alsa/alsa_driver.c 2010-07-28 21:02:57.238101024 +1000
+@@ -2388,7 +2388,7 @@
+ strcpy (params[i].name, "period");
+ params[i].character = 'p';
+ params[i].type = JackDriverParamUInt;
+- params[i].value.ui = 1024U;
++ params[i].value.ui = 256U; /* TWL4030 capture. */
+ strcpy (params[i].short_desc, "Frames per period");
+ strcpy (params[i].long_desc, params[i].short_desc);
+
+@@ -2396,7 +2396,7 @@
+ strcpy (params[i].name, "nperiods");
+ params[i].character = 'n';
+ params[i].type = JackDriverParamUInt;
+- params[i].value.ui = 2U;
++ params[i].value.ui = 4U; /* TWL4030 capture. */
+ strcpy (params[i].short_desc, "Number of periods of playback latency");
+ strcpy (params[i].long_desc, params[i].short_desc);
+
+@@ -2518,8 +2518,8 @@
+ driver_initialize (jack_client_t *client, const JSList * params)
+ {
+ jack_nframes_t srate = 48000;
+- jack_nframes_t frames_per_interrupt = 1024;
+- unsigned long user_nperiods = 2;
++ jack_nframes_t frames_per_interrupt = 256; /* TWL4030 needs small number of frames here. */
++ unsigned long user_nperiods = 4; /* TWL4030 needs 4 periods to avoid XRuns. */
+ char *playback_pcm_name = "hw:0";
+ char *capture_pcm_name = "hw:0";
+ int hw_monitoring = FALSE;