diff options
author | Cástor Muñoz <cmvidal@gmail.com> | 2017-01-13 20:51:07 +0100 |
---|---|---|
committer | Franklin Wei <git@fwei.tk> | 2018-07-30 18:50:27 -0400 |
commit | 744274220833e017f3cc3f1b61abd0fc7c3885ec (patch) | |
tree | 7b6fcdd7bc9e53bee6f62ed683ddf1db4c0c13ad /lib/rbcodec/codecs/libmusepack/mpcdec.h | |
parent | 8f38f85fbde2ae78ba50cf9b9f54fbf9d25b4a45 (diff) | |
download | rockbox-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/libmusepack/mpcdec.h')
-rw-r--r-- | lib/rbcodec/codecs/libmusepack/mpcdec.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/lib/rbcodec/codecs/libmusepack/mpcdec.h b/lib/rbcodec/codecs/libmusepack/mpcdec.h index 02003cb01b..24c06bc4a0 100644 --- a/lib/rbcodec/codecs/libmusepack/mpcdec.h +++ b/lib/rbcodec/codecs/libmusepack/mpcdec.h | |||
@@ -58,7 +58,7 @@ extern "C" { | |||
58 | /* Keep the data arrays of bitsreadr.c in IRAM. */ | 58 | /* Keep the data arrays of bitsreadr.c in IRAM. */ |
59 | #define ICONST_ATTR_MPC_BITSREADER ICONST_ATTR | 59 | #define ICONST_ATTR_MPC_BITSREADER ICONST_ATTR |
60 | 60 | ||
61 | #elif (CONFIG_CPU == PP5022) || (CONFIG_CPU == PP5024) | 61 | #elif (CONFIG_CPU == PP5022) || (CONFIG_CPU == PP5024) || (CONFIG_CPU == S5L8702) |
62 | /* Enough IRAM to move additional data and code to it. */ | 62 | /* Enough IRAM to move additional data and code to it. */ |
63 | #define IBSS_ATTR_MPC_LARGE_IRAM IBSS_ATTR | 63 | #define IBSS_ATTR_MPC_LARGE_IRAM IBSS_ATTR |
64 | #define ICODE_ATTR_MPC_LARGE_IRAM ICODE_ATTR | 64 | #define ICODE_ATTR_MPC_LARGE_IRAM ICODE_ATTR |
@@ -70,7 +70,7 @@ extern "C" { | |||
70 | * sv7/sv8 bitstream demuxing into IRAM. This config is faster. */ | 70 | * sv7/sv8 bitstream demuxing into IRAM. This config is faster. */ |
71 | #define ICONST_ATTR_MPC_BITSREADER | 71 | #define ICONST_ATTR_MPC_BITSREADER |
72 | 72 | ||
73 | #elif defined(CPU_S5L870X) | 73 | #elif (CONFIG_CPU == S5L8700) || (CONFIG_CPU == S5L8701) |
74 | /* Enough IRAM to move additional data and code to it. */ | 74 | /* Enough IRAM to move additional data and code to it. */ |
75 | #define IBSS_ATTR_MPC_LARGE_IRAM IBSS_ATTR | 75 | #define IBSS_ATTR_MPC_LARGE_IRAM IBSS_ATTR |
76 | #define ICODE_ATTR_MPC_LARGE_IRAM ICODE_ATTR | 76 | #define ICODE_ATTR_MPC_LARGE_IRAM ICODE_ATTR |