Commit graph

27 commits

Author SHA1 Message Date
Thomas Martitz
281d1fadb3 Do not include kernel.h in system.h.
system.h doesn't need it on its own and this change makes it less
dependant on Rockbox internals.

Change-Id: I4e1e4108a52a7b599627a829204eb82b392fc6d6
2014-01-05 19:35:23 +01:00
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
8d1d2f8982 AMS: consistently use bitclr32/bitset32/bitmod32 for register CCU_IO (instead of using |= or &= )
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29748 a1c6a512-1295-4272-9138-f99709370657
2011-04-18 21:13:40 +00:00
Michael Sevakis
2da0f9bcfd Fuze v2: Do button reading more efficiently by mapping button codes directly to the GPIO pin states where possible (all but 'home' and hold). This makes plugins incompatible; up the min version and sort things.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29097 a1c6a512-1295-4272-9138-f99709370657
2011-01-20 17:11:23 +00:00
Michael Sevakis
5f52f6ee01 Fuze V2: Fix hold switch behavior. Add a GPIOx_PIN_MASK macro to AS3525.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29096 a1c6a512-1295-4272-9138-f99709370657
2011-01-20 14:26:58 +00:00
Bertrik Sikken
4d6c816721 Sansa Clip+: detect AMSv2 variant (just like was already done for fuze v2), this makes SD transfers work for newer clip+ players ("COMBO4E" type). Variable fuzev2_variant has been renamed to amsv2_variant.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27520 a1c6a512-1295-4272-9138-f99709370657
2010-07-22 13:47:09 +00:00
Rafaël Carré
e44b65c806 Support new Fuzev2 revisions (fuzev2_variant == 1)
- Revert BUTTON_HOME
- Modifications to SD driver (µSD not working yet)

TODO: µSD and FM radio

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27492 a1c6a512-1295-4272-9138-f99709370657
2010-07-19 15:29:28 +00:00
Thomas Martitz
0b28594036 Revert r26060. A better fix was found. The acceleration should be fixed once for all now.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26175 a1c6a512-1295-4272-9138-f99709370657
2010-05-19 17:34:12 +00:00
Rafaël Carré
d10bf7ab46 fuzev2: leave at least 3ms between scrollwheel events
fix insane acceleration

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26060 a1c6a512-1295-4272-9138-f99709370657
2010-05-15 16:34:14 +00:00
Rafaël Carré
145135f99f Fuzev2: don't disable interrupts in fm code, allow button tick to run
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25819 a1c6a512-1295-4272-9138-f99709370657
2010-05-05 04:13:15 +00:00
Rafaël Carré
a69e1c4a44 Fuzev2: FM - tested on 2 different models
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25818 a1c6a512-1295-4272-9138-f99709370657
2010-05-05 04:06:44 +00:00
Thomas Martitz
3adac47c61 Fix wrong udelay logic that made it be way off.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25770 a1c6a512-1295-4272-9138-f99709370657
2010-05-02 02:30:06 +00:00
Rafaël Carré
d7cdc65854 Fuzev2: revert r25741 and r25746
Use longer delays instead

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25747 a1c6a512-1295-4272-9138-f99709370657
2010-04-28 00:23:25 +00:00
Rafaël Carré
bd7e71df3e fix r25741: the 2nd delay needs to be present when the CPU is boosted
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25746 a1c6a512-1295-4272-9138-f99709370657
2010-04-27 23:52:20 +00:00
Rafaël Carré
3e37460357 Fuzev2 button fixes
- remove udelay(1) and use the previous busy loop : the delay was too
  long for proper hold detection
- remove the 2nd delay (unneeded)

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25741 a1c6a512-1295-4272-9138-f99709370657
2010-04-27 21:01:31 +00:00
Thomas Martitz
f96406c5f3 Two corrections to the previous commit (wrong timer was used, KERNEL_TIMER_FREQ is a more trustworthy).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25737 a1c6a512-1295-4272-9138-f99709370657
2010-04-27 10:56:44 +00:00
Thomas Martitz
249aae587a FS#11172 - Fuzev2: Read the scrollwheel scrollwheel via IRQ
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25736 a1c6a512-1295-4272-9138-f99709370657
2010-04-27 10:11:52 +00:00
Thomas Martitz
845af676f8 as3525(v2): Add a somewhat inaccurate udelay (-0.5/+1.0µs). It should work good for some huge delays.
Use it in fuzev2 to improve some big delays (correct the biggest one to actually wait for the fifo to empty), and use it in the sd drivers.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25734 a1c6a512-1295-4272-9138-f99709370657
2010-04-27 09:34:29 +00:00
Rafaël Carré
7e7b3c5ab3 Fuzev2: fix screen corruption
Revive the delay removed by r25636 (and make it longer so it works when
boosted)
Also read GPIOA pins 7 & 6 in one load

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25722 a1c6a512-1295-4272-9138-f99709370657
2010-04-26 14:49:51 +00:00
Rafaël Carré
5521717958 fuzev2: remove some delays from button driver
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25638 a1c6a512-1295-4272-9138-f99709370657
2010-04-13 19:34:47 +00:00
Rafaël Carré
e6934b86fd Fuzev2: removed a useless GPIO op, add some whitespace
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25637 a1c6a512-1295-4272-9138-f99709370657
2010-04-13 19:26:06 +00:00
Rafaël Carré
482fefd928 Fuzev2: simplify button_read_device()
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25636 a1c6a512-1295-4272-9138-f99709370657
2010-04-13 19:06:21 +00:00
Thomas Martitz
f376fd2f4a Fuzev2: Scrollwheel works like a charm :)
Move scrollwheel parsing function into separate file as it's reused.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25425 a1c6a512-1295-4272-9138-f99709370657
2010-04-01 16:07:56 +00:00
Thomas Martitz
33e7e1d1c3 Fix bootloader red, it doesn't have backlight handling.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25394 a1c6a512-1295-4272-9138-f99709370657
2010-03-29 23:14:44 +00:00
Thomas Martitz
71393c701c Fuzev2: Preliminary button support. Scrollwheel does not work yet.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25392 a1c6a512-1295-4272-9138-f99709370657
2010-03-29 23:03:06 +00:00
Rafaël Carré
d3312b7f16 Fuzev2: fix build, use suited bitmap tool
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25342 a1c6a512-1295-4272-9138-f99709370657
2010-03-26 11:41:15 +00:00
Thomas Martitz
b5b2a03ee2 A tiny bit more Sansa Fuze v2 work.
- buttonlight works
 - backlight turns on (quite weak though and no brightness adjustment/backlight off functional)
 - don't share drivers with e200v2/fuzev1 for now as it's not entirely clear how dbop plays into this
 - deactivte scrollwheel as it's messing up the timer setup in kernel-as3525.c indicating the dbop input reading doesn't work well
 - still no working bootloader/no lcd or buttons

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25225 a1c6a512-1295-4272-9138-f99709370657
2010-03-16 22:38:57 +00:00