AgeCommit message (Collapse)AuthorFilesLines
2013-05-18Fix opus craches with large embedded album artNils Wallménius4-44/+42
Use the tlsf malloc and friends instead of the silly codec_malloc to get actually working free and saner realloc that doesn't leak memory. Makes files with moderately sized embedded AA play on targets with large enough codec buffers and files with too large AA are now skipped rather than crashing. Fixes crash when playing example file in FS#12842. Change-Id: I06562955c4d9a95bd90f55738214fba462092b71 Add HiFi E.T MA9.bootloader_hifietma9_v1Andrew Ryabinin1-0/+4
Change-Id: Ic8d31244c4ddc3924d889d0cb0d444844a1bb345
2013-05-17FS#12854 - ipod-time-sync sets wrong dayrbutil/mkamsboot/mkamsboot.cBoris Gjenero1-1/+1
Change-Id: I8ac7561119e51774b9aee377e7373a7e830a5780
2013-05-16Introduce new hermite polynomial resampler.Michael Sevakis3-260/+543
Uses the Catmull-Rom case of Hermite cubic splines. Vastly improves the quality and accuracy of audio resampling with a rather minor additional overhead compared to the previous linear implementation. ARM and Coldfire assembly implementations included. Change-Id: Ic45d84bc66c5b312ef373198297a952167a4be26 Reviewed-on: Reviewed-by: Michael Sevakis <> Tested-by: Michael Sevakis <>
2013-05-14Get rid of usb_drv_attach() from USB code.Michael Sevakis5-17/+6
'Twas an idiosyncrasy of detecting a host upon bus reset, which is obsolete. Change-Id: I0adb25e1805022544f52cd0cb766819a367dbde4
2013-05-14usb-drv-arc: Kill trailing whitespaceMichael Sevakis1-7/+7
Change-Id: I682a8b68fa8148e5db2e06e4f261b1ea01d140ad
2013-05-11Set the right variable type for ucallback :)Michael Sevakis1-1/+1
Change-Id: I19eace9452d9d0b2a6c7770549930c83ece05c80
2013-05-11i.MX31: Remove long udelay from DVFS interrupt handlerMichael Sevakis6-88/+140
Split the ISR into two parts and alllow quick return from first half. Introduces a uevent() API to have a callback happen in a specified number of microseconds. Right now only one event is supported. Change-Id: Ib1666165be2f6082e5275d64961f083cab104f9f
2013-05-11Rework rbspeex dependency generation to use single dependency files.Dominik Riebeling1-21/+11
Similar as done in d2b8f91 change dependency generation to use one file per source file. This removes the need to have external tools installed on Windows. Previously Cygwin or msys tools needed to be in the system PATH which was problematic at times. This means that now building on Windows (using MinGW) doesn't require additional tools anymore. Change-Id: I4c0675e99c3cc3a729b91beefd58320db498ae0a
2013-05-11Update mkrk27boot Makefile for libtools.make changes.Dominik Riebeling1-44/+6
Change-Id: Iebcb3be6024c2fa6ec94a38b8bb1cb0c7274eb85
2013-05-11Implement dependency generation in libtools.make.Dominik Riebeling1-1/+11
Automatically generate dependency files for all sources so changes in headers are picked up automatically. Use one dependency file for each source file, since that allows to create them without using external tools (except the compiler of course). Change-Id: I246c1ceb525692547af22a2e32c4bab0c11507e1
2013-05-11ucl: Replace use of uname by checking the compiler output.Dominik Riebeling1-5/+16
Similar as done for libtools.make ask the compiler for the binary it creates instead of using uname to figure the target to avoid special handling when cross compiling. Change-Id: Icb4654616e4339bf9e6e3be5177b35e0bb313bcd
2013-05-11Change mkdir -p to work on Windows.Dominik Riebeling3-7/+24
Windows mkdir doesn't know about the -p option and requires paths to use \ as path separator. Try to detect when building on Windows and use the Windows internal function instead of relying on a compatible mkdir in the path. Change-Id: I47d47d45edeb38c672321f77d6e91268bf744dba
2013-05-11Make libtools compile rule more generic.Dominik Riebeling3-10/+3
Create the object - source dependency internally and use a more generic rule for compiling. Removes the need for explicit rules for source files located in a different folder. This adds the limitation for SOURCES and LIBSOURCES to only hold C files. Change-Id: I56f6a4b1e7df36347cd2f54051e072251f456092
2013-05-11rk27xx: Use DMA for lcd_update_rect()Marcin Bukat4-101/+58
This speeds up partial updates quite a bit but what is more important it opens up a way to efficiently implement lcd_blit_yuv() using hw colorspace conversion. Tested on rk27generic, hm60x v1 and v2 and on ma9. Benchmark for hm60x v1 (by mortalis): HEAD patched 1/1 141fps 138fps 1/4 315fps 395fps Change-Id: I4cc115786c3139000fc14c49a7290e289cfd6c42
2013-05-11rk27xx: Slightly refactor lcd_set_gram_area()Marcin Bukat5-39/+46
Change-Id: I1040164220dd87b19b58be560eb5b628857bc284
2013-05-11rk27xx: Decide lcd databus width at compile timeMarcin Bukat2-18/+13
Change-Id: I013da0f3f862e733c5245a48dceb08219f43bf2d
2013-05-10Set APPVERSION globally for extralibs Makefile.Dominik Riebeling2-9/+10
Make sure its value quotes are properly escaped. Otherwise make on Windows causes problems. Also, expand CPPDEFINES only once. Change-Id: I52e91f17626b2596f389811b22abc12d94f721d1
2013-05-10Restructure options passed to libs Makefile.Dominik Riebeling1-16/+16
Setup AR before checking for ccache to avoid adding ccache to ar. Setup CC and CFLAGS in the beginning as well. Quote ar and system speex options to fix building with ccache enabled. Change-Id: I21714f0849e990abeac72dcda52c81474e090934
2013-05-09Fix FS#12860 - iPod 5g line out silentMichael Sevakis1-0/+4
Conversion from centibels to register values was left out of audiohw_set_lineout_volume(). Credit goes to Dave Marsh for providing the fix. Just another little oversight from sound/audiohw rework. Change-Id: I7f8b1c5fb575ac95b5d595c2f4824fbb5ebbd3c8
2013-05-09Only pass AR to extralibs Makefile if the compiler is gcc.Dominik Riebeling1-2/+4
We need this only for cross compiling. Trying to figure the compiler prefix fails if the compiler isn't gcc (i.e. clang), and we only support gcc when cross compiling. Change-Id: I822e1b47ec7e9d7e9fdeae8ccf3b8d417a472ef9
2013-05-09Fix Rockbox Utility building on OS X.Dominik Riebeling1-1/+9
Fix a typo that broke building. Also extend the extralibs Makefile to allow calling it directly. Change-Id: I2d4dd1689a8654a6b092dfcc58d2753423831816
2013-05-09hm60x: Implement lcd_enable() for v2 display.Andrew Ryabinin1-0/+25
Change-Id: I5ed0cba03711b3ba6db58405fe805d92aece974e
2013-05-08hm60x: Implement lcd_update_rect for v2 display.Andrew Ryabinin1-12/+19
Change-Id: I9d6b14bcbd26cfd760516f1ef3bf421698507806
2013-05-07Rename all the "lin_resample..." stuff to simply "resample_...".Michael Sevakis4-45/+42
Change-Id: I79f44f0dcc1b23b33a5040795220713660a1d18a
2013-05-06Remove leftover debugging warning.Dominik Riebeling1-1/+0
Change-Id: Icb7d2de4284c1db5766f0039e5546b8956ef5afa
2013-05-06Introduce HiFi E.T MA9 port.Andrew Ryabinin25-5/+1441
Change-Id: I79aadc958fd5222f26f91ed127f8c6fb2c465dc2
2013-05-05Purge the usage of DSP_SWITCH_FREQUENCY.Michael Sevakis27-28/+27
DSP_SWITCH_FREQUENCY has been deprecated and the same enumerated value as DSP_SET_FREQUENCY since major DSP revisions were committed. This task should have been performed much earlier but, oh well, do it now. Change-Id: I3f30d651b894136a07c7e17f78fc16a7d98631ff
2013-05-04Fix FS#12859 - Bass/Treble not doing anything in new buildsMichael Sevakis1-2/+2
Just one more SNAFU after redoing sound.c. Software bass/treble controls in the DSP expect .1 dB gain increments but the gains were being set as 1 dB increments because that's what the AUDIOHW_SETTING specifies. Just x10 the gains given to audiohw_set_bass/treble. Change-Id: Id5296f93908ec0036a5605d3a60a2cb5eec91bb5
2013-05-04Change the order of global linker options and -T.Dominik Riebeling1-4/+6
95e23de made -Wl,--gc-sections appear after -T by combining it with the global linker options. Moving the global linker options in front of -T seems to fix the crash observed on mini2g after that change -- as it seems the linker behaves differently if --gc-sections is passed after -T. Fixes FS#12857. Change-Id: Id64dc6b91726760d75a1a0cd85bb7c06208d2f45
2013-05-04Move building libraries to separate Makefile.Dominik Riebeling2-56/+68
Previously several additional rules were added by qmake to build the required libraries. This has a couple of problems on Windows, requiring the use of a msys shell. Additional variables are passed as environment variables. Windows doesn't understand this. Passing the variables via make command line argument works but make won't be able to change those variables anymore, breaking things. Use intermediate variables passed via make command line that are then exported by the called Makefile. This doesn't work in the generated Makefile since the export lines must not be part of a rule. Also cleans up the project file a bit. Change-Id: Iaffb059ce8bafe17a35bd1e0a74ae7acd966c138
2013-05-04Replace use of uname by checking the compiler output.Dominik Riebeling1-6/+16
Similar as done in ea0bfe7 ask the compiler for the binary it creates instead of using uname to figure the target. Simplify source file preprocessing to avoid using grep to improve compatibility with Windows. Change-Id: I39ecfe690c9bb70b07b0af5a7804d7e5ab512d71
2013-05-04Allow overriding make variables via environment variables.Dominik Riebeling1-2/+2
Fixes cross compiling for Rockbox Utility. Change-Id: I3419cb4c89836ec3bee10072495042b3732fd66b
2013-05-04Revert "Don't set CORE_GCSECTIONS in fixedpoint.make."Dominik Riebeling1-0/+1
While it made the mini2g not crash during startup anymore further tests showed that other mini2g devices still exhibit the crash, or end up with a "No partition found" error; furthermore the device tested first still crashes on USB disconnect. Therefore the change doesn't really help with the problem, and at the expense of increasing binary size for all other targets there is no point in keeping it for now. This reverts commit 850491a043a9341ef31ffb8c02eedd2ae7b2c53e.
2013-05-04Fix missed optimization opportunity in dsp_process.Michael Sevakis1-3/+3
Input type can only change once per call because the DSP parameters are only copied at the start and input is always taken from the src buffer which means sample input format switching can be once per call instead of once per loop. Change-Id: Ifa3521753428fb0e6997e4934f24a3b915628cc7
2013-05-04Cleanup and simplify latest DSP code incarnation.Michael Sevakis15-540/+513
Some things can just be a bit simpler in handling the list of stages and some things, especially format change handling, can be simplified for each stage implementation. Format changes are sent through the configure() callback. Hide some internal details and variables from processing stages and let the core deal with it. Do some miscellaneous cleanup and keep things a bit better factored. Change-Id: I19dd8ce1d0b792ba914d426013088a49a52ecb7e
2013-04-30Fix red.Andrew Ryabinin1-1/+1
Change-Id: I64cf91a2ddc4fbf89d83bb5a401e9e4021f8c160
2013-04-30rk27xx: initialize i2c driver in bootloader.Andrew Ryabinin1-0/+2
Change-Id: I0b343425d0cfef4d4609cabca79c1f31d8327d3b Reviewed-on: Reviewed-by: Andrew Ryabinin <>
2013-04-29European Portuguese update by Tiago Roque MedeirosFrank Gevaerts1-4/+125
Change-Id: Ifab5276fa746d7c989913428a30d408987ee23f4
2013-04-28Don't set CORE_GCSECTIONS in fixedpoint.make.Dominik Riebeling1-1/+0
fixedpoint.make is not a subdir Makefile but a lib Makefile. Setting CORE_GCSECTIONS in it will affect the final link and make it always use --gc-sections (for SWCODEC Rockbox), since libfixedpoint is always needed (bootloader and HWCODEC don't use libfixedpoint). Fixes FS#12857. Change-Id: Ib30bd03cbcea9c339a73daf7b673868aa3cc7a88
2013-04-27Provide high resolution volume and prescaler to hosted targets.Michael Sevakis9-94/+177
HAVE_SW_VOLUME_CONTROL is required and at this time only affects the SDL targets using pcm-sdl.c. Enables balance control in SDL targets, unless mono volume is in use. Compiles software volume control as unbuffered when PCM_SW_VOLUME_UNBUFFERED is defined. This avoids the overhead and extra latency introduced by the double buffer when it is not needed. Use this config when the target's PCM driver is buffered and sufficient latency exists to perform safely the volume scaling. Simulated targets that are double-buffered when made as native targets remain so in the sim in order to run the same code. Change-Id: Ifa77d2d3ae7376c65afecdfc785a084478cb5ffb Reviewed-on: Reviewed-by: Michael Sevakis <> Tested-by: Michael Sevakis <>
2013-04-26Properly seek to next id3v2 frame for unsynced tags.Dominik Riebeling1-3/+10
When seeking to the next id3v2 frame we need to consider if the tag has the unsync flag set. Not doing so will likely make parsing end up in the middle of the current frame if the frame size exceeds the upper limit set during read. The latter usually happens for album art frames. Fixes FS#12849. Change-Id: Ic92853eef4374508d84df347bcc66b6661d5037d
2013-04-26Adapt logic in configure script to cope with both x86 and x86_64 ↵Bryan Childs1-1/+5
architecture Android NDKs Change-Id: I520443a17f1d9ced43222e14182ca4726717bc32 Reviewed-on: Reviewed-by: Frank Gevaerts <> Tested-by: Frank Gevaerts <>
2013-04-25Properly implement volume in warble. dB cut only.Michael Sevakis2-9/+36
Change-Id: I34b77287ba0b1a0002db3d52e893a52c50593362
2013-04-25Add $(SHARED_CFLAGS) to fixedpoint.make to quash amd64 errors in 95e23de.Michael Sevakis1-1/+1
Thanks to Frank Gevaerts. Change-Id: I6ca1d0258bfc70950d0ad5c2975d2bd88060b8a3
2013-04-26Make fixepoint.c as a shared library (libfixedpoint.a).Michael Sevakis28-101/+91
Change-Id: Icc10d6e85f890c432f191233a4d64e09f00be43d Reviewed-on: Reviewed-by: Michael Sevakis <> Tested-by: Michael Sevakis <>
2013-04-25Bass/Treble caps should exist implicitly with HAVE_SW_TONE_CONTROLS.Michael Sevakis1-14/+14
If AUDIOHW_CAPS is defined without explicit BASS_CAP/TREBLE_CAP while HAVE_SW_TONE_CONTROLS is defined, AUDIOHW_HAVE_BASS/TREBLE should be defined or otherwise the tone controls won't show up. TREBLE/BASS were being defined if AUDIOHW_CAPS was NOT defined, but the same rule should apply if the codec needs to specify other caps but doesn't use hardware tone controls. (I'm surprised noone noticed some settings gone missing :-) Change-Id: I85b5c467bab07bb62362a0dc2d582267ac2d8ec9
2013-04-25Add Serial Port 1 support for iPod Photo/Color/4G/Mini2Gandypotter5-186/+292
Based on FS#9920 by Ryan Press with changes to selection logic so that it works on my iPod Photo. Should also work on iPod Color/4G and Mini2G. Moved all target specific code from firmware/drivers/serial.c into new file firmware/target/arm/pp/uart-pp.c in the same manner as other target specific uart code. Update to fix build error on ipodmini2g by adding defines in config file. Removed unwanted whitespace Tested on iPod Photo. Change-Id: Ia5539563966198e06372d70b5adf2ef78882f863 Reviewed-on: Reviewed-by: andypotter <> Tested-by: andypotter <> Reviewed-by: Marcin Bukat <>
2013-04-24Update instructions in docs/README to change 'Check out from SVN' to 'Clone ↵Bryan Childs1-2/+2
from git' Change-Id: Ic462909f66edf66894a17e91f34f92261df47f11
2013-04-23Make pcm_sw_volume.c a bit less verbose by merging volume code.Michael Sevakis1-17/+10
pcm_set_master_volume had two implementations, one for a prescaler and one without one but the differences can be made minimal enough to combine them. Change-Id: I889e60b50b9f046c093853cb1685058796fe9067