summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Sevakis <jethead71@rockbox.org>2010-05-14 08:44:07 +0000
committerMichael Sevakis <jethead71@rockbox.org>2010-05-14 08:44:07 +0000
commitd665c926528219cc01be33658e8897a1472db827 (patch)
treecffe979fed0a85e1ce59581dc4fb59fc2aad9619
parent8cce39bb9f3368ddb324f7b757a62c573d16cc55 (diff)
downloadrockbox-d665c926528219cc01be33658e8897a1472db827.zip
rockbox-d665c926528219cc01be33658e8897a1472db827.tar.gz
rockbox-d665c926528219cc01be33658e8897a1472db827.tar.bz2
rockbox-d665c926528219cc01be33658e8897a1472db827.tar.xz
Cache align the pitch detector audiobuffer where needed. Some other misc. changes to try to make sure everything builds.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26011 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--apps/plugins/pitch_detector.c2
-rw-r--r--firmware/export/imx31l.h1
-rw-r--r--firmware/export/system.h4
3 files changed, 6 insertions, 1 deletions
diff --git a/apps/plugins/pitch_detector.c b/apps/plugins/pitch_detector.c
index 5675cdc..01dfef2 100644
--- a/apps/plugins/pitch_detector.c
+++ b/apps/plugins/pitch_detector.c
@@ -251,7 +251,7 @@ static int audio_head = 0; /* which of the two buffers to use? */
static volatile int audio_tail = 0; /* which of the two buffers to record? */
/* It's stereo, so make the buffer twice as big */
#ifndef SIMULATOR
-static int16_t audio_data[2][BUFFER_SIZE];
+static int16_t audio_data[2][BUFFER_SIZE] __attribute__((aligned(CACHEALIGN_SIZE)));
static fixed yin_buffer[YIN_BUFFER_SIZE];
#endif
diff --git a/firmware/export/imx31l.h b/firmware/export/imx31l.h
index ea92d05..3f3a014 100644
--- a/firmware/export/imx31l.h
+++ b/firmware/export/imx31l.h
@@ -37,6 +37,7 @@
#define FRAME_PHYS_ADDR (TTB_BASE_ADDR - FRAME_SIZE)
#define FRAME ((void *)(FRAME_PHYS_ADDR+0x100000-CSD0_BASE_ADDR))
+#define CACHEALIGN_BITS 5
#define CACHEALIGN_SIZE 32
#define NOCACHE_BASE CSD0_BASE_ADDR
diff --git a/firmware/export/system.h b/firmware/export/system.h
index 3984ebe..bd31c03 100644
--- a/firmware/export/system.h
+++ b/firmware/export/system.h
@@ -295,10 +295,14 @@ static inline void cpucache_flush(void)
}
#endif
+#ifndef CACHEALIGN_SIZE /* could be elsewhere for a particular reason */
#ifdef CACHEALIGN_BITS
/* 2^CACHEALIGN_BITS = the byte size */
#define CACHEALIGN_SIZE (1u << CACHEALIGN_BITS)
+#else
+#define CACHEALIGN_SIZE sizeof(int)
#endif
+#endif /* CACHEALIGN_SIZE */
#ifdef PROC_NEEDS_CACHEALIGN
/* Cache alignment attributes and sizes are enabled */