1
0
Fork 0
forked from len0rd/rockbox
foxbox/apps
Michael Sevakis 783c77531c AMS: Return ascodec to interrupt-based I2C2 driver
1. Slightly revised and regularized internal interface. Callback is used
for read and write to provide completion signal instead of having two
mechanisms.

2. Lower overhead for asynchronous or alterate completion callbacks. We
now only init what is required by the transfer. A couple unneeded
structure members were also nixed.

3. Fixes a bug that would neglect a semaphore wait if pumping the I2C
interrupts in a loop when not in thread state or interrupts are masked.

4. Corrects broken initialization order by defining KDEV_INIT, which
makes kernel_init() call kernel_device_init() to initialize additional
devices _after_ the kernel, threading and synchronization objects are
safe to use.

5. Locking set_cpu_frequency has to be done at the highest level in
system.c to ensure the boost counter and the frequency are both set in
agreement. Reconcile the locking inteface between PP and AMS (the only
two currently using locking there) to keep it clean.

Now works fine with voltages in GIT HEAD on my Fuze v2, type 0.
Previously, everything crashed and died instantly. action.c calling
set_cpu_frequency from a tick was part of it. The rest may have been
related to 3. and 4. Honestly, I'm not certain!

Testing by Mihail Zenkov indicates it solves our problems. This will
get the developer builds running again after the kernel assert code
push.

Change-Id: Ie245994fb3e318dd5ef48e383ce61fdd977224d4
2017-01-25 00:05:13 +01:00
..
bitmaps bitmaps: Use *x16.bmp also for upcoming 24bit targets (they are actually 24bit BMPs). 2014-06-21 00:13:58 +02:00
gui Selective Backlight/Advanced Softlock - Selective actions based on context 2017-01-17 23:06:17 +01:00
hosted/android Fix reds. 2014-03-14 23:43:45 +01:00
iap iAP: fix USB storage mount after using an iAP accessory 2016-08-26 00:16:16 +02:00
keymaps zenxfi3: fix recording keymap and simulator keymap 2016-09-21 00:29:42 +01:00
lang Selective Backlight/Advanced Softlock - Selective actions based on context 2017-01-17 23:06:17 +01:00
menus Selective Backlight/Advanced Softlock - Selective actions based on context 2017-01-17 23:06:17 +01:00
player
plugins puzzles: more accurate sin() and cos() 2017-01-16 20:54:56 +01:00
radio Replace SAMSUNG_YH920_PAD with YH92X 2016-01-25 09:23:09 +01:00
recorder Fix FS#12981 JPEG decoding problem when entropy data starts with FF 2016-04-01 19:29:41 +02:00
abrepeat.c ab_repeat: Move GUI bits to the skin engine. This allows ab_repeat to be compiled headless. 2014-03-10 22:55:26 +01:00
abrepeat.h ab_repeat: Move GUI bits to the skin engine. This allows ab_repeat to be compiled headless. 2014-03-10 22:55:26 +01:00
action.c action.c must desist in calling set_cpu_frequency from a tick 2017-01-21 12:03:23 -05:00
action.h Selective Backlight/Advanced Softlock - Selective actions based on context 2017-01-17 23:06:17 +01:00
alarm_menu.c Changed the FOR_NB_SCREENS macro to always be a for loop that declares its own loop variable. This removes the need to declare this variable in the outer scope. 2011-10-15 19:35:02 +00:00
alarm_menu.h
appevents.h Get rid of some superfluous single-purpose functions in playback. 2013-07-13 00:08:51 -04:00
applimits.h
apps.make Android: use APPEXTRA instead of makefile hack 2011-03-11 16:08:36 +00:00
audio_path.c iAP: lingo 1 (microphone) 2015-10-07 06:15:04 +02:00
audio_thread.c talk: Remove superflous call to talk_init(). 2014-02-02 19:40:38 +01:00
audio_thread.h Update software recording engine to latest codec interface. 2013-06-30 00:40:27 +02:00
beep.c Enable setting of global output samplerate on certain targets. 2013-07-06 04:22:04 +02:00
bookmark.c Rewrite filesystem code (WIP) 2014-08-30 03:48:23 +02:00
bookmark.h Fix minor bookmark problems/Enhance bookmark functions 2012-03-12 08:54:02 +01:00
buffering.c Cleanup unused function 2016-04-04 11:06:29 +02:00
buffering.h Remove I/O priority. It is harmful when used with the new file code. 2014-08-30 14:01:21 -04:00
codec_thread.c Remove I/O priority. It is harmful when used with the new file code. 2014-08-30 14:01:21 -04:00
codec_thread.h Update software recording engine to latest codec interface. 2013-06-30 00:40:27 +02:00
codecs.c Rewrite filesystem code (WIP) 2014-08-30 03:48:23 +02:00
core_asmdefs.c
cuesheet.c Implements starting playback from a cuesheet. 2014-03-10 04:13:53 +01:00
cuesheet.h Implements starting playback from a cuesheet. 2014-03-10 04:13:53 +01:00
debug_menu.c AMS: Return ascodec to interrupt-based I2C2 driver 2017-01-25 00:05:13 +01:00
debug_menu.h dbg_ports() : move proto to system.h 2012-01-04 05:21:44 +00:00
enc_config.c Fix different enum comparison warning when building with gcc 4.5 2010-12-20 20:56:22 +00:00
enc_config.h
features.txt Get rid of USE_ROCKBOX_USB 2015-01-08 16:07:12 +01:00
filetree.c Rewrite filesystem code (WIP) 2014-08-30 03:48:23 +02:00
filetree.h
filetypes.c Fix color of files with no extension. 2013-06-05 18:35:09 -04:00
filetypes.h Add more INIT_ATTR and add config.h includes to header files with INIT_ATTR. 2011-12-19 20:12:52 +00:00
fracmul.h Build librbcodec with DSP and metadata. 2012-03-18 12:00:39 +01:00
keyboard.h
language.c Add stdio.h include for SEEK_SET define to various files. 2010-12-25 18:43:34 +00:00
language.h
logfdisp.c Don't add new message to logf when we dump it to file 2016-04-04 11:07:44 +02:00
logfdisp.h
main.c iBasso DX50/DX90: Major code cleanup and reorganization. 2015-02-02 21:57:55 +01:00
menu.c menus: Stop scrolling before entering the USB screen or remnants of the previous list could appear on it. 2014-01-16 00:25:40 +01:00
menu.h FS#12251 - User shortcuts in the main menu. 2011-11-15 13:22:02 +00:00
misc.c Save bookmark and settings on shutdown at low battery level on players without HD 2016-04-04 11:07:04 +02:00
misc.h usb screen: Push the usb screen onto the activity stack. This enables %cs tag support for it. 2014-01-16 00:26:45 +01:00
mpeg.c Implement time-based resume and playback start. 2014-03-10 04:12:30 +01:00
mpeg.h
onplay.c Rewrite filesystem code (WIP) 2014-08-30 03:48:23 +02:00
onplay.h FS#12251 - User shortcuts in the main menu. 2011-11-15 13:22:02 +00:00
pcmbuf.c Fix previous errors for targets with no crossfade. 2017-01-05 03:22:47 -05:00
pcmbuf.h Playback: Fix problems with crossfade on short tracks. 2017-01-05 02:37:14 -05:00
playback.c Fix broken logf 2016-03-30 20:48:17 +00:00
playback.h playback,talk: Share audiobuffer via core_alloc_maximum(). 2013-12-23 12:17:38 +01:00
playlist.c Reenable database ramcache and playlist dircache 2017-01-17 15:27:47 -05:00
playlist.h Reenable database ramcache and playlist dircache 2017-01-17 15:27:47 -05:00
playlist_catalog.c Rewrite filesystem code (WIP) 2014-08-30 03:48:23 +02:00
playlist_catalog.h FS#11808 - Major playlist handling changes (on disk playlists) 2011-07-20 14:11:15 +00:00
playlist_menu.h
playlist_viewer.c Don't shorten the playlist on shuffle. Fixes FS#13040 2015-04-19 12:31:45 +02:00
playlist_viewer.h FS#11808 - Major playlist handling changes (on disk playlists) 2011-07-20 14:11:15 +00:00
plugin.c Fix broken logf 2016-03-30 20:48:17 +00:00
plugin.h Clarify usb_powered() and fix some code. 2015-01-08 16:45:32 +01:00
rbcodec_helpers.c Rename HAVE_PITCHSCREEN to HAVE_PITCHCONTROL 2012-05-09 14:32:38 +02:00
rbcodecconfig.h kernel: Break out kernel primitives into separate files and move to separate dir. 2014-03-03 18:11:57 +01:00
rbcodecplatform.h rbcodec: abstract tdspeed buffer allocation 2012-05-07 10:29:07 +02:00
README
root_menu.c iBasso DX50/DX90: Major code cleanup and reorganization. 2015-02-02 21:57:55 +01:00
root_menu.h root_menu: Remove previous_music_is_wps() and change previous_music via event callback. 2014-04-15 23:54:28 +02:00
screen_access.c Fix put_line via multiscreen API on remotes. Stupid me. 2014-01-08 10:45:00 +01:00
screen_access.h put_line/scrolling: Make the scroll engine inform custom scrollers about start/stop of scrolling. 2014-01-12 01:34:06 +01:00
screens.c Fix more reds. 2013-12-15 00:47:21 +01:00
screens.h
scrobbler.c iBasso DX50/DX90: Major code cleanup and reorganization. 2015-02-02 21:57:55 +01:00
scrobbler.h Get rid of some superfluous single-purpose functions in playback. 2013-07-13 00:08:51 -04:00
settings.c Selective Backlight/Advanced Softlock - Selective actions based on context 2017-01-17 23:06:17 +01:00
settings.h Selective Backlight/Advanced Softlock - Selective actions based on context 2017-01-17 23:06:17 +01:00
settings_list.c Selective Backlight/Advanced Softlock - Selective actions based on context 2017-01-17 23:06:17 +01:00
settings_list.h Selective Backlight/Advanced Softlock - Selective actions based on context 2017-01-17 23:06:17 +01:00
shortcuts.c Shortcuts: Add move callback for buflib allocations 2015-01-02 01:11:54 +01:00
shortcuts.h shortcuts: talk the time and configure the sleep timeout 2011-12-08 10:23:46 +00:00
sound_menu.h
SOURCES Selective Backlight/Advanced Softlock - Selective actions based on context 2017-01-17 23:06:17 +01:00
status.c
status.h
tagcache.c Reenable database ramcache and playlist dircache 2017-01-17 15:27:47 -05:00
tagcache.h Implement time-based resume and playback start. 2014-03-10 04:12:30 +01:00
tagnavi.config FS#12132 patch 7: Add a new default format for untagged tracks: 2011-07-31 16:26:39 +00:00
tagtree.c events: Rework event subsystem (add_event, send_event) to be more versatile. 2014-03-14 23:36:30 +01:00
tagtree.h Add more INIT_ATTR and add config.h includes to header files with INIT_ATTR. 2011-12-19 20:12:52 +00:00
talk.c talk: On hwcodec disabling DMA interrupt is required during buflib move 2014-02-03 12:43:05 +01:00
talk.h talk: Add debug menu entry to view statistics about talk engine. 2014-02-02 19:40:39 +01:00
tree.c Rewrite filesystem code (WIP) 2014-08-30 03:48:23 +02:00
tree.h Implement time-based resume and playback start. 2014-03-10 04:12:30 +01:00
usb_keymaps.c remove superfluous ifdef 2011-12-28 19:23:38 +00:00
usb_keymaps.h
voice_thread.c Fix warnings. 2014-02-03 12:33:33 +01:00
voice_thread.h voice_thread_init was left INIT_ATTR but is being called too late. 2012-05-21 15:21:36 -04:00

For general information see: docs/README
For API information see: docs/API