summaryrefslogtreecommitdiff
path: root/lib/rbcodec/codecs/libwma
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/libwma
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/libwma')
-rw-r--r--lib/rbcodec/codecs/libwma/wmadec.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/lib/rbcodec/codecs/libwma/wmadec.h b/lib/rbcodec/codecs/libwma/wmadec.h
index 76429dede1..b3bca4f452 100644
--- a/lib/rbcodec/codecs/libwma/wmadec.h
+++ b/lib/rbcodec/codecs/libwma/wmadec.h
@@ -52,13 +52,14 @@
52#define LSP_POW_BITS 7 52#define LSP_POW_BITS 7
53 53
54 54
55#if (CONFIG_CPU == PP5022) || (CONFIG_CPU == PP5024) || (CONFIG_CPU == MCF5250) 55#if (CONFIG_CPU == PP5022) || (CONFIG_CPU == PP5024) || \
56 (CONFIG_CPU == MCF5250) || (CONFIG_CPU == S5L8702)
56/* PP5022/24 and MCF5250 have 128KB of IRAM. 80KB are allocated for codecs */ 57/* PP5022/24 and MCF5250 have 128KB of IRAM. 80KB are allocated for codecs */
57#define IBSS_ATTR_WMA_LARGE_IRAM IBSS_ATTR 58#define IBSS_ATTR_WMA_LARGE_IRAM IBSS_ATTR
58#define IBSS_ATTR_WMA_XL_IRAM 59#define IBSS_ATTR_WMA_XL_IRAM
59#define ICONST_ATTR_WMA_XL_IRAM 60#define ICONST_ATTR_WMA_XL_IRAM
60 61
61#elif defined(CPU_S5L870X) 62#elif (CONFIG_CPU == S5L8700) || (CONFIG_CPU == S5L8701)
62/* S5L870x has even more IRAM. Use it. */ 63/* S5L870x has even more IRAM. Use it. */
63#define IBSS_ATTR_WMA_LARGE_IRAM IBSS_ATTR 64#define IBSS_ATTR_WMA_LARGE_IRAM IBSS_ATTR
64#define IBSS_ATTR_WMA_XL_IRAM IBSS_ATTR 65#define IBSS_ATTR_WMA_XL_IRAM IBSS_ATTR