aboutsummaryrefslogtreecommitdiffstats
path: root/meta-oe/recipes-multimedia/jack/jack/jack_fix_TWL4030_alsa_capture.patch
blob: 77337ff6c7fac2fb7c12783c6a12cd177c32c5ba (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
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;