summaryrefslogtreecommitdiff
path: root/lib/rbcodec/codecs/libcook/cook.h
diff options
context:
space:
mode:
authorCástor Muñoz <cmvidal@gmail.com>2017-01-13 20:51:07 +0100
committerFranklin Wei <git@fwei.tk>2018-07-30 18:50:27 -0400
commit744274220833e017f3cc3f1b61abd0fc7c3885ec (patch)
tree7b6fcdd7bc9e53bee6f62ed683ddf1db4c0c13ad /lib/rbcodec/codecs/libcook/cook.h
parent8f38f85fbde2ae78ba50cf9b9f54fbf9d25b4a45 (diff)
downloadrockbox-744274220833e017f3cc3f1b61abd0fc7c3885ec.tar.gz
rockbox-744274220833e017f3cc3f1b61abd0fc7c3885ec.zip
iPod Classic: disable IRAM1
On Classic, IRAM1 (second 128Kb of a total of 256KB available IRAM) is slower than DRAM. Codecs that actually are using regions of IRAM1 runs faster when DRAM is used, so IRAM1 is disabled and only IRAM0 remains enabled: 48KB for core and 80KB for codecs/plugins. The next test_codec results shows how decode time is decreased: file boosted unboosted *.ra ~1.5% ~0.5% *.mpc ~21% ~4.5% *.ogg ~0.5% ~0% nero_he*.m4a ~8% ~1% nero*.m4a ~25% ~7% wmapro*.wma ~4.5% ~0% wma*.wma ~25% ~7% In addition there is a small power save when IRAM1 HW is disabled. Change-Id: I102adee11458e82037f23076d5d5956e23235de8
Diffstat (limited to 'lib/rbcodec/codecs/libcook/cook.h')
-rw-r--r--lib/rbcodec/codecs/libcook/cook.h7
1 files changed, 4 insertions, 3 deletions
diff --git a/lib/rbcodec/codecs/libcook/cook.h b/lib/rbcodec/codecs/libcook/cook.h
index fcb437a0e1..c2a5357c98 100644
--- a/lib/rbcodec/codecs/libcook/cook.h
+++ b/lib/rbcodec/codecs/libcook/cook.h
@@ -29,15 +29,16 @@
29 29
30#include "codeclib.h" 30#include "codeclib.h"
31 31
32#if (CONFIG_CPU == PP5022) || (CONFIG_CPU == PP5024) || (CONFIG_CPU == MCF5250) 32#if (CONFIG_CPU == PP5022) || (CONFIG_CPU == PP5024) || \
33/* PP5022/24, MCF5250 have large IRAM */ 33 (CONFIG_CPU == MCF5250) || (CONFIG_CPU == S5L8702)
34/* PP5022/24, S5L8702, MCF5250 have large IRAM */
34#define IBSS_ATTR_COOK_LARGE_IRAM IBSS_ATTR 35#define IBSS_ATTR_COOK_LARGE_IRAM IBSS_ATTR
35#define ICODE_ATTR_COOK_LARGE_IRAM ICODE_ATTR 36#define ICODE_ATTR_COOK_LARGE_IRAM ICODE_ATTR
36#define ICONST_ATTR_COOK_LARGE_IRAM ICONST_ATTR 37#define ICONST_ATTR_COOK_LARGE_IRAM ICONST_ATTR
37#define IBSS_ATTR_COOK_VLCBUF 38#define IBSS_ATTR_COOK_VLCBUF
38#define ICODE_ATTR_COOK_DECODE 39#define ICODE_ATTR_COOK_DECODE
39 40
40#elif defined(CPU_S5L870X) 41#elif (CONFIG_CPU == S5L8700) || (CONFIG_CPU == S5L8701)
41/* S5L870X have even larger IRAM and it is faster to use ICODE_ATTR. */ 42/* S5L870X have even larger IRAM and it is faster to use ICODE_ATTR. */
42#define IBSS_ATTR_COOK_LARGE_IRAM IBSS_ATTR 43#define IBSS_ATTR_COOK_LARGE_IRAM IBSS_ATTR
43#define ICODE_ATTR_COOK_LARGE_IRAM ICODE_ATTR 44#define ICODE_ATTR_COOK_LARGE_IRAM ICODE_ATTR