summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--audio/audio_hw.c9
-rw-r--r--kernelbin4145400 -> 4148084 bytes
2 files changed, 8 insertions, 1 deletions
diff --git a/audio/audio_hw.c b/audio/audio_hw.c
index 8ae519c..f2fda76 100644
--- a/audio/audio_hw.c
+++ b/audio/audio_hw.c
@@ -127,7 +127,7 @@
/* #define to use mmap no-irq mode for playback, #undef for non-mmap irq mode */
#undef PLAYBACK_MMAP // was #define
/* short period (aka low latency) in milliseconds */
-#define SHORT_PERIOD_MS 4 // was 22
+#define SHORT_PERIOD_MS 3 // was 22
/* deep buffer short period (screen on) in milliseconds */
#define DEEP_BUFFER_SHORT_PERIOD_MS 22
/* deep buffer long period (screen off) in milliseconds */
@@ -180,6 +180,11 @@
*/
#ifdef PLAYBACK_MMAP
#define PLAYBACK_SHORT_PERIOD_COUNT 4
+/* If sample rate converter is required, then use triple-buffering to
+ * help mask the variance in cycle times. Otherwise use double-buffering.
+ */
+#elif DEFAULT_OUT_SAMPLING_RATE != MM_FULL_POWER_SAMPLING_RATE
+#define PLAYBACK_SHORT_PERIOD_COUNT 3
#else
#define PLAYBACK_SHORT_PERIOD_COUNT 2
#endif
@@ -297,6 +302,7 @@ enum tty_modes {
TTY_MODE_FULL
};
+/* deep buffer */
struct pcm_config pcm_config_mm = {
.channels = 2,
.rate = MM_FULL_POWER_SAMPLING_RATE,
@@ -307,6 +313,7 @@ struct pcm_config pcm_config_mm = {
.avail_min = DEEP_BUFFER_LONG_PERIOD_SIZE,
};
+/* low latency */
struct pcm_config pcm_config_tones = {
.channels = 2,
.rate = MM_FULL_POWER_SAMPLING_RATE,
diff --git a/kernel b/kernel
index 76fe9fb..8c0057b 100644
--- a/kernel
+++ b/kernel
Binary files differ