Commit graph

950 commits

Author SHA1 Message Date
Michael Sevakis
307cb04948 AS3525v1/2: Enable nested handling of interrupts
Mostly for the sake of reducing latency for audio servicing where other service
routines can take a long time to complete, leading to occasional drops of a
few samples, especially in recording, where they are fairly frequent.

One mystery that remains is GPIOA IRQ being interrupted causes strange
undefined instruction exceptions, most easily produced on my Fuze V2 with a
scrollwheel. Making GPIOA the top ISR for now, thus not interruptible, cures it.

SVC mode is used during the actual calls. Hopefully the SVC stack size is
sufficient. Prologue and epilogue code only uses the IRQ stack and is large
enough.

Any routine code that should not be interrupted should disable IRQ itself from
here on in.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31642 a1c6a512-1295-4272-9138-f99709370657
2012-01-08 22:29:25 +00:00
Bertrik Sikken
3d9f3f47d9 Remove duplicate #include "button.h"
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31636 a1c6a512-1295-4272-9138-f99709370657
2012-01-08 12:57:02 +00:00
Rafaël Carré
8552824284 ascodec-target.h: remove
move prototypes to ascodec.h
move code to ascodec*.c

YPR0: use adc-as3514.c instead of duplicating it

TODO: merge as3514.h and ascodec.h ?

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31626 a1c6a512-1295-4272-9138-f99709370657
2012-01-08 01:43:16 +00:00
Rafaël Carré
2737a66471 lcd-target.h: remove some duplicate declarations
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31625 a1c6a512-1295-4272-9138-f99709370657
2012-01-08 00:52:55 +00:00
Rafaël Carré
7f2156661c adc-target.h: cleanup
move adc_close() prototype to adc.h
don't duplicate prototypes of adc.h
remove license header and guards for a single include of another file or for empty content

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31623 a1c6a512-1295-4272-9138-f99709370657
2012-01-08 00:39:29 +00:00
Rafaël Carré
7c547be19d fix previous commit
implement button_init_device for ondio
include button.h to get prototypes

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31621 a1c6a512-1295-4272-9138-f99709370657
2012-01-08 00:18:43 +00:00
Rafaël Carré
95cf63b294 button-target.h : move prototypes to button.h
no need to define BUTTON_REMOTE anymore

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31620 a1c6a512-1295-4272-9138-f99709370657
2012-01-08 00:07:19 +00:00
Rafaël Carré
19fba5fb30 powermgmt-target.h: move prototypes to powermgmt.h
Implement empty stubs if needed instead of empty static inline

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31617 a1c6a512-1295-4272-9138-f99709370657
2012-01-07 22:32:52 +00:00
Frank Gevaerts
4fcffcbdf3 Reorganise USB initialisation to not depend on a specific enumeration sequence, by Bartosz Fabianowski, with minor tweaks by Michael Sevakis (FS#12497)
FreeBSD apparently sends a SET_ADDRESS first, which confused our code.
This patch fixes that, and also simplifies the connection handling a bit.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31582 a1c6a512-1295-4272-9138-f99709370657
2012-01-04 21:55:09 +00:00
Rafaël Carré
606155cd20 as3525: move debug-target.h content to .c
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31572 a1c6a512-1295-4272-9138-f99709370657
2012-01-04 06:34:56 +00:00
Rafaël Carré
393f427a11 dbg_hw_info(): remove duplicate prototypes
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31560 a1c6a512-1295-4272-9138-f99709370657
2012-01-04 05:29:30 +00:00
Rafaël Carré
b959497670 dbg_ports(): remove duplicate prototype
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31558 a1c6a512-1295-4272-9138-f99709370657
2012-01-04 05:21:52 +00:00
Thomas Martitz
c1bd9b0361 Rework powermgmt to enable code re-use on appliation and sims.
* Introduce CONFIG_BATTERY_MEASURE define, to allow targets (application)
to break powermgmt.c's assumption about the ability to read battery voltage.
There's now additionally percentage (android) and remaining time measure
(maemo). No measure at all also works (sdl app). If voltage can't be measured,
then battery_level() is king and it'll be used for power_history and runtime
estimation.

* Implement target's API in the simulator, i.e. _battery_voltage(), so it
doesn't need to implement it's own powermgmt.c and other stubs. Now
the sim behaves much more like a native target, although it still
changes the simulated battery voltage quickly,

* Other changes include include renaming battery_adc_voltage() to
_battery_voltage(), for consistency with the new target functions and
making some of the apps code aware that voltage and runtime estimation
is not always available.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31548 a1c6a512-1295-4272-9138-f99709370657
2012-01-03 23:44:38 +00:00
Rafaël Carré
7b22ea0d37 usb-drv-as3525v2.c: merge in usb-s3c6400x.c
as3525v2 specific part is 400 LoC, ipod specific less than 300
(comments and whitespace included)

TODO: merge properly

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31509 a1c6a512-1295-4272-9138-f99709370657
2011-12-31 21:22:48 +00:00
Rafaël Carré
fd5cb720c4 usb-s3c6400: use more complete functions from usb-drv-as3525v2
update copyright

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31508 a1c6a512-1295-4272-9138-f99709370657
2011-12-31 21:18:10 +00:00
Rafaël Carré
18bee1bafb usb-drv-as3525v2.h: remove
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31507 a1c6a512-1295-4272-9138-f99709370657
2011-12-31 21:15:10 +00:00
Rafaël Carré
12b70597a6 usb-s3c6400x: start factorization
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31506 a1c6a512-1295-4272-9138-f99709370657
2011-12-31 20:38:44 +00:00
Rafaël Carré
c55672bcef usb-drv-as3525v2: cosmetics
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31501 a1c6a512-1295-4272-9138-f99709370657
2011-12-31 20:08:29 +00:00
Rafaël Carré
568c441fd8 usb-target.h: remove
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31498 a1c6a512-1295-4272-9138-f99709370657
2011-12-31 18:44:55 +00:00
Rafaël Carré
2de47e2bae firewire/usb_remove/insert_int: move to system-target.h
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31491 a1c6a512-1295-4272-9138-f99709370657
2011-12-31 18:44:12 +00:00
Rafaël Carré
df09274768 move usb_pin_init() declaration to PP's system-target.h
remove duplicate usb_detect() declaration
Remove all content from empty usb-target.h files

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31488 a1c6a512-1295-4272-9138-f99709370657
2011-12-31 18:43:53 +00:00
Rafaël Carré
bce42fdc31 usb_init_device(): move prototype to usb.h
Get rid of some usb-target.h files

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31487 a1c6a512-1295-4272-9138-f99709370657
2011-12-31 18:43:41 +00:00
Rafaël Carré
12a45549f6 usb-drv-as3525v2: move interrupt disable
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31486 a1c6a512-1295-4272-9138-f99709370657
2011-12-31 18:43:32 +00:00
Michael Sparmann
98b38c439e usb-srv-as3525v2: backport r31458
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31459 a1c6a512-1295-4272-9138-f99709370657
2011-12-28 21:37:04 +00:00
Rafaël Carré
b0e7869f00 usb-drv-as3525v2: use all endpoints
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31399 a1c6a512-1295-4272-9138-f99709370657
2011-12-22 04:20:05 +00:00
Boris Gjenero
6c97145e7d Add missing includes found using -Wmissing-declarations.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31396 a1c6a512-1295-4272-9138-f99709370657
2011-12-21 18:02:50 +00:00
Rafaël Carré
74516e06e7 usb-drv-as3525v2: revert part of r31243
assigning a partially initialized structure (through casting) will
initialize members unspecified in the initialization

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31372 a1c6a512-1295-4272-9138-f99709370657
2011-12-19 23:10:41 +00:00
Boris Gjenero
fdc29d0ea4 Add more INIT_ATTR and add config.h includes to header files with INIT_ATTR.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31370 a1c6a512-1295-4272-9138-f99709370657
2011-12-19 20:12:52 +00:00
Rafaël Carré
676708c43f AMSv2: enable storage write in bootloader
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31355 a1c6a512-1295-4272-9138-f99709370657
2011-12-18 21:35:51 +00:00
Bertrik Sikken
8c19dcd598 FS#12370: Initial RDS support for Si4701/Si4703 tuner (beast and clip zip)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31346 a1c6a512-1295-4272-9138-f99709370657
2011-12-17 20:24:19 +00:00
Michael Sevakis
6a67707b5e Commit to certain names for cache coherency APIs and discard the aliases.
Wouldn't surprise me a bit to get some non-green.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31339 a1c6a512-1295-4272-9138-f99709370657
2011-12-17 07:27:24 +00:00
Michael Sevakis
43d7a75369 Get the linker files that slipped through in r31337.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31338 a1c6a512-1295-4272-9138-f99709370657
2011-12-17 02:00:59 +00:00
Rafaël Carré
97fc699b12 typo
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31286 a1c6a512-1295-4272-9138-f99709370657
2011-12-15 19:42:21 +00:00
Rafaël Carré
521512f88a tuner-as3525v2.c: only build what's needed
add a comment about why we don't return 0 when no tuner was detected
build the file on all as3525v2 targets

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31284 a1c6a512-1295-4272-9138-f99709370657
2011-12-15 19:38:11 +00:00
Michael Sevakis
2026c9506c Commit the ascodec-as3525.c/ascodec-target.h changes from FS#12452 that keep ascodec_read/write_pmu from keeping interrupts disabled for the full duration of two I2C transfers, which can contribute to I2S PUSH/POP FIFO under/over-flows. 'Tis peppered with a couple interrupt safety mods as well.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31264 a1c6a512-1295-4272-9138-f99709370657
2011-12-15 03:30:03 +00:00
Michael Sevakis
47bade1437 Simplify and neaten-up usb.c a bit. USB_INSERTED and USB_EXTRACTED are always used as events to indicate cable state. USB_HOSTED is posted to indicated that a host was detected.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31263 a1c6a512-1295-4272-9138-f99709370657
2011-12-15 00:14:36 +00:00
Rafaël Carré
273fbadb55 Clipv2: fix buttons broken by me in r31235
output pins were not correct
xor pin readout with initial value (reversed between the 2 clips)

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31255 a1c6a512-1295-4272-9138-f99709370657
2011-12-14 21:04:04 +00:00
Rafaël Carré
b366d63f03 Sansa AMSv2: don't panic if microsd init failed
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31254 a1c6a512-1295-4272-9138-f99709370657
2011-12-14 18:37:51 +00:00
Rafaël Carré
d985d65907 usb-drv-as3525v2: make it look more like usb-s3c6400
use 0, 1, 3 as input endpoints instead of 0, 3, 5 (0, 1, 3, 5 doesn't work)
use a helper to know the number of endpoints (could be hardcoded since we have 3 input and 3 outputs)
    previous check was not correct (sizeof(if?a:b))

change endpoint reset/request
set packet size at enumdone interrupt
we don't have isochronous or interrupt endpoints, remove that table
reverse usb_drv_transfer direction argument (in -> out)

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31251 a1c6a512-1295-4272-9138-f99709370657
2011-12-14 17:12:52 +00:00
Rafaël Carré
02c5b3b256 Sansa AMSv2: enable usb storage in bootloader
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31249 a1c6a512-1295-4272-9138-f99709370657
2011-12-14 15:42:04 +00:00
Rafaël Carré
7af94b4427 usb-drv-as3525v2: cosmetics
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31244 a1c6a512-1295-4272-9138-f99709370657
2011-12-14 06:34:03 +00:00
Rafaël Carré
e062c7a6c3 usb-drv-as3525v2: simplify usb_reset isr
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31243 a1c6a512-1295-4272-9138-f99709370657
2011-12-14 06:30:36 +00:00
Rafaël Carré
dfff88562e Sansa Clip: simplify matrix key scan
Merge clipv1/clipv2 code since they use the same 3x3 matrix
clipzip keyscan buttons now work in bootloader
clipplus untouched (no matrix)

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31235 a1c6a512-1295-4272-9138-f99709370657
2011-12-13 23:12:21 +00:00
Rafaël Carré
a60463e636 usb-drv-as3525v2.c: simplify
don't interrupt on unhandled events

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31232 a1c6a512-1295-4272-9138-f99709370657
2011-12-13 20:38:57 +00:00
Rafaël Carré
9e8590ad23 usb-drv-as3525v2.c: simplify a lot
code, especially init sequence, is much more similar to usb-s3c6400x.c

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31231 a1c6a512-1295-4272-9138-f99709370657
2011-12-13 19:53:19 +00:00
Rafaël Carré
8afdad69c7 fix red
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31230 a1c6a512-1295-4272-9138-f99709370657
2011-12-13 08:16:46 +00:00
Rafaël Carré
e4bee2b109 usb-s3c6400 : simplify
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31229 a1c6a512-1295-4272-9138-f99709370657
2011-12-13 08:12:19 +00:00
Rafaël Carré
1afe28072a usb-drv-as3525v2: use correct input endpoint list size
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31228 a1c6a512-1295-4272-9138-f99709370657
2011-12-13 07:11:54 +00:00
Rafaël Carré
ff0ba04ff6 fix previous commit
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31227 a1c6a512-1295-4272-9138-f99709370657
2011-12-13 06:32:48 +00:00
Rafaël Carré
5c81130b48 usb-drv-as3525v2: don't include ep0 twice in the IN ep list
simplify

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31225 a1c6a512-1295-4272-9138-f99709370657
2011-12-13 06:29:56 +00:00