summaryrefslogtreecommitdiffstats
path: root/firmware/asm
AgeCommit message (Collapse)AuthorFilesLines
2012-03-03Revise the PCM callback system after adding multichannel audio.Michael Sevakis5-17/+17
Additional status callback is added to pcm_play/rec_data instead of using a special function to set it. Status includes DMA error reporting to the status callback. Playback and recording callback become more alike except playback uses "const void **addr" (because the data should not be altered) and recording uses "void **addr". "const" is put in place throughout where appropriate. Most changes are fairly trivial. One that should be checked in particular because it isn't so much is telechips, if anyone cares to bother. PP5002 is not so trivial either but that tested as working. Change-Id: I4928d69b3b3be7fb93e259f81635232df9bd1df2 Reviewed-on: http://gerrit.rockbox.org/166 Reviewed-by: Michael Sevakis <jethead71@rockbox.org> Tested-by: Michael Sevakis <jethead71@rockbox.org>
2012-02-19beep/mixer code: Code police a bit.Michael Sevakis1-0/+1
/firmware is in the #include path with makes #include "asm/beep.c" sufficient. Add a comment to generic beep code and make another express intent better. Change-Id: I587cd704478b894785927bdfe2e647e28614df62
2012-02-18Split CPU-optimized beep code into the firmware/asm tree.Michael Sevakis3-0/+132
For now due to current lack of an apps/asm, place the ASM/generic code in the firmware/asm directory. Additionally, make generic beep code more generic. Change-Id: I4a69b6ffcbb97d9e6dfde2209c5a118de19e5638
2012-02-05Urgh...actually change all the stuff I'm supposed to.Michael Sevakis1-2/+2
Goofed a couple fn params. Change-Id: I2474d10fe08d2629ada54c83e201ee91c596d854
2012-02-05Make generic pcm-mixer.c more generic in the way it writes output.Michael Sevakis2-112/+15
Also remove unused firmmware/asm/generic directory. Change-Id: If1961f96f4292f00227a9b0148181152ac405e51
2012-02-04Generic find_first_set_bit can use __builtin_ctz instead of __builtin_ffsbootloader_clipv2_v5Michael Sevakis1-3/+4
The former gives 0-based indexes, which is what our implementation returns, making the "- 1" unnecessary. Change-Id: I172ab5e06695be62e4a18d4fd0415b8314f5dc26
2012-01-27find_first_set_bit tweaksMichael Sevakis2-24/+9
Correct sizing in m68k asm. Make the gerneric version far more generic. Change-Id: I32945f7431771979b3fe0da5472bdb110fd054ae
2012-01-22Fix typo in comment.Thomas Martitz1-1/+1
Change-Id: I3a6813a5eb024aad799bc59c569db54337cb8d1f
2012-01-22Move optimized ffs to firmware/asm, using the new automatic-asm-picking ↵Thomas Martitz5-0/+269
infrastructure. Change-Id: I5e7bdc8be7de50ef604c16078857fff1b84650dc
2012-01-22ypr0: Use generic lcd memframe driver.Thomas Martitz1-1/+2
2012-01-22Implement a C version lcd-as-memframe.c and move it and the asm to firmware/asm.Thomas Martitz3-0/+880
Change-Id: I20c3af0368202493d54fb776530300a39d47873a
2012-01-22Move optimized memcpy and friends and strlen to firmware/asm,Thomas Martitz21-1/+3847
using the new automatic-asm-picking infrastructure.
2012-01-22Add framework to let make automatically pick optimized asm implementations ↵Thomas Martitz2-0/+28
over generic C ones to firmware. Example: for a file asm/foo.c, make will look for asm/arm/foo.[cS] and compile it if found. If not found it'll fall back to asm/foo.c. Also introduce new ARCH make variable. This is automatically detected by configure. It is distinct from CPU since CPU defines the dir used for the target tree (i.e. firmware/target/X, so it can be "hosted"). ARCH really has the target isa and can be x86 for sims/raaa too. Change-Id: I18e5d2b7b7bbc2ad2be551a74a0fcae5ffbcbf8b
2012-01-22Move pcm_mixer helper routines to firmware/asm.Thomas Martitz7-0/+755
2012-01-22Create fimrware/asm directory for assembly optimized stuff.Thomas Martitz13-0/+997
This dir is suitable for stuff that doesn't fit the target tree, e.g. because it also builds on hosted or otherwise. It also has a generic subfolder for fallback C implementations so that not all archs need to provide asm files. SOURCES should only contain "foo.c" where foo.c includes the specific <arch>/foo.c files from the subdirs using the preprocessor. This way automatic selection of asm versions or generic C verion is possible. For the start, the thread support files are moved, since ASM threads can be used on hosted platforms as well. Since core_sleep() remains platform specific it's moved to the corresponding system.h headers. Change-Id: Iebff272f3407a6eaafeb7656ceb0ae9eca3f7cb9