rk27xx: Fix commit_discard_idcache()

This version resembles how OF handle cache invalidates.
This seems to fix mysterious data aborts on plugin/codec loading
after introducing frequency scaling.

Credit goes to mortalis for pinpointing the reason of aborts.

Change-Id: I3477b3f65d593d7b43c36a0b06d863f71f000812
Initial opus codec support
Synchronised with opus repo on github (https://github.com/freqmod/rockbox-opus)

Status:
* Seeking ported from speex, but fails on some cases (e.g. seek to granule 0)
* ReplayGain parsing needs to be reworked, we do vorbis-style replaygain now.
  http://wiki.xiph.org/OggOpus#Comment_Header explicitly forbids these in
  favour of R128_TRACK_GAIN tag.
* No optimisation yet, source files still nearly identical to opus upstream
* Multi-stream opus files may not be parsed correctly

Change-Id: Ia66f1027dc1d288083e3c57b2816700078376f9a
Reviewed-on: http://gerrit.rockbox.org/300
Reviewed-by: Bertrik Sikken <bertrik@sikken.nl>
Tested-by: Bertrik Sikken <bertrik@sikken.nl>
Announce 3.10 as release version for nano2g.

Change-Id: Id35a137242a05cea488fc49630cbc11fb477e22b
Reviewed-on: http://gerrit.rockbox.org/315
Reviewed-by: Dominik Riebeling <Dominik.Riebeling@gmail.com>
Update german translation.

Based on FS#12735 by Kaspar Rothenfußer with some modifications by me to be in
line with terms already used in the translation.

Change-Id: Ia1ba59bd00d61f0fd27bd496a116143e4b83b420
Remove unused include path for opus

Change-Id: Ie5ab9d893a7d2c6ec1aca6c295e29ab34eacd656
checkwps: Do not error out on rwps for non-remote targets.

This breaks themes on the theme site (that ship an rwps for remote targets) for
non-remote targets. As rockbox just ignores the rwps checkwps now does the same.

Change-Id: Id8c7833f0bd88d239dce87711456b94c93480a51
opus: #if 0 out some unused code

Change-Id: I16fa9b439f8da5b9b8a4f17040487b9535078ec5
opus: #if 0 out some more unused code, delete unused file

Change-Id: I96033f42e0c3096ec9d779e9f8ca46570f981ab0
opus: asm MULT16_32_Q15 for arm and cf

Speeds up decoding of a 64kbps opus test file by 34MHz on h300 (cf),
24MHz on c200 (pp) and 13MHz on fuzev1 (amsv1)

Change-Id: I0dce6b3bfe6c81d0a722dfebb13891b9a428c6ba
opus: put some const tables and structs in iram

Speeds up decoding of a 64kbps test file by 20MHz on h300 (cf)
and 1MHz on c200 (pp)

Change-Id: Ia2adc0a3ad86abce8f948062eb53a8ac14c2cdf2
opus: improve cf MULT16_32_Q15 by giving the compiler more freedom
saves about 3MHz when decoding a 64kbps test file

Change-Id: I10f47173ccb78e60e364662220d1db2f78dd5fdd
opus: put frequently used mdct buffer on the real stack which is in iram

Saves about 30MHz on h300 (cf) and 1.5MHz on c200 (pp) decoding a
64kbps test file. Stack usage is still below 70%.

Change-Id: Ib13df9011adb4eef4bb91a52e5a32741c8bf8988
rk27xx lcd code rework

Use DMA engine for fullscreen updates and bypass mode for partial
updates. This gives major boost on rk27generic:
default ARM:AHB:APB 200:100:50
HEAD    1/1:  26.3fps 1/4: 105.0fps
patched 1/1: 116.5fps 1/4: 249.5fps

with freq scalling NORMAL mode ARM:AHB:APB 50:50:50
HEAD    1/1:  13.1fps 1/4: 52.5fps
patched 1/1:  54.5fps 1/4: 119.0fps

Tested on rk27generic noname DAP and on Hifimans.

Change-Id: Id9dd4d2d61542c7ea6b5c6336b170d6357cefde9
rk27generic: Enable frequency scaling

Change-Id: Ia806994fc77c93fbd4c4c5ec234bb0f34641303a
Fix type cast for LCD_BUFF.

We should cast to (volatile uint32_t*) here, because attempt to refer to volatile
object through use of an lvalue with non-volatile-qualified type will result in
undefined behavior.

Change-Id: I1b2e9688af11d3dcba518a5e31865d703b54b635
hm60x/hm801: Fix blinking white screen.

Change-Id: Ia435616872d5d4adb117d507bdb135bccf083b05
Fix typo in german translation.

Thanks to fml on irc for noticing.

Change-Id: I598903aa080580ce33fff4c8abdac26928c76233
opus: build with -fno-strict-aliasing for mips to fix warnings

Change-Id: I370f43f2e25e03650681c207908f79cdea744d99
opus: speed up deemphasis

Remove downsampling code from deemphasis loop as we don't use
it and remove multiplications that are not relevant when
not using custom modes. Saves 1.4MHz on h300 (cf), 4.3MHz on
c200 (pp) and 4.6 on fuzev1 (amsv1).

Change-Id: Iab3f1d737a656a563aaa351d50db987a9cff2287
kernel: Allow queue_wait_w_tmo() to be called with TIMEOUT_BLOCK.

Previously TIMEOUT_BLOCK would be handled the same as TIMEOUT_NOBLOCK, i.e.
poll only without thread switch, which is rather unexpected from *_w_tmo()
functions. No current code doesn't call it that way yet.

Change-Id: I370ce0f752681122d197eadeee9ab17112647c20