Commit graph

41 commits

Author SHA1 Message Date
William Wilgus
1da2708a7c Fix timer Agptek Rocker (other hosted players)
on timer_unregister callbacks are not removed

It seems (at least on the Rocker) timers continue to fire (for a bit??)

Now we store the registered callback in the sigev structure and check
that the callback matches the one registered when the timer is created.

This should stop the possible case of a new timer getting spurious callbacks
We also now NULL the callbacks on un-register which should stop the segfaults

Added some notes to timer.c and timer.h

Change-Id: Ia155c3a4e4af89f474d55ed845560ccc1fab85aa
2019-10-17 21:19:00 +02:00
Rafaël Carré
c5dedd7d76 Remove the TIMER_* macros and declare target-specific functions in timer.h
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21559 a1c6a512-1295-4272-9138-f99709370657
2009-06-29 14:29:57 +00:00
Rafaël Carré
89ccd5c145 Remove int_prio argument from timer_register, and move the only use for it into alpine_cdc plugin, since this plugin is only built on SH7034
Also remove it from TIMER_START()

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21558 a1c6a512-1295-4272-9138-f99709370657
2009-06-29 14:29:46 +00:00
Rafaël Carré
b955dff268 Move PP (last target) timer code in target tree
Put warnings in timer.h for incomplete targets (TIMER_FREQ not defined and/or timer-target.h inexistant)

Correct TIMER_STOP & TIMER_START macros arguments for target without timers
TIMER_START takes an extra argument in multicore builds (macro in macro doesn't work fine..)

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21557 a1c6a512-1295-4272-9138-f99709370657
2009-06-29 14:29:35 +00:00
Rafaël Carré
b3ed33d04a Move SH7034 timer code in the target tree
Add an argument int_prio to TIMER_START() macro because SH7034 needs it
Leaves a target specific code in timer_register (could be given to target code through timer_set and __timer_set() )

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21556 a1c6a512-1295-4272-9138-f99709370657
2009-06-29 14:29:14 +00:00
Rafaël Carré
c34ca87b64 Move coldfire timer code in the target tree
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21555 a1c6a512-1295-4272-9138-f99709370657
2009-06-29 14:29:06 +00:00
Rafaël Carré
15a7f5e5e9 Move PNX0101 timer code in the target tree
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21554 a1c6a512-1295-4272-9138-f99709370657
2009-06-29 14:29:02 +00:00
Rafaël Carré
e0640c3c4b Rename TIMER_REGISTER macro to TIMER_START and TIMER_UNREGISTER to TIMER_STOP to reflect what they does exactly.
registering and unregistering are handled by the non target-specific functions of timer.c
Remove arguments from the new TIMER_START since they are unused by targets

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21553 a1c6a512-1295-4272-9138-f99709370657
2009-06-29 14:28:56 +00:00
Rafaël Carré
15e40dd3a6 Move Sansa AMS timer code in the target tree
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21552 a1c6a512-1295-4272-9138-f99709370657
2009-06-29 14:28:49 +00:00
Bertrik Sikken
52c46f2ec6 Fix bug in earlier commit of FS#10317: don't mix TIMER1 and TIMER2 settings
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21273 a1c6a512-1295-4272-9138-f99709370657
2009-06-13 15:01:25 +00:00
Bertrik Sikken
d1faf8b39c FS#10317 - Sansa AMS 32-bit timers. Configure the timers for 32-bit mode instead of the default 16-bit mode.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21266 a1c6a512-1295-4272-9138-f99709370657
2009-06-12 21:11:45 +00:00
Michael Sevakis
e2876ee4e2 Gigabeat S: Get timer API working. metronome will work now.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19676 a1c6a512-1295-4272-9138-f99709370657
2009-01-05 00:00:29 +00:00
Rafaël Carré
f07aa65117 Sansa AMS: correct VIC registers usage
* Do not use |= on write only registers
* Do use it in when setting kernel tick timer

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19350 a1c6a512-1295-4272-9138-f99709370657
2008-12-05 14:37:28 +00:00
Rafaël Carré
c3e667c198 AS3525: timer support
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19025 a1c6a512-1295-4272-9138-f99709370657
2008-11-06 02:31:32 +00:00
Daniel Stenberg
2acc0ac542 Updated our source code header to explicitly mention that we are GPL v2 or
later. We still need to hunt down snippets used that are not. 1324 modified
files...
http://www.rockbox.org/mail/archive/rockbox-dev-archive-2008-06/0060.shtml


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17847 a1c6a512-1295-4272-9138-f99709370657
2008-06-28 18:10:04 +00:00
Michael Sevakis
191320cd0f Rename CPU/COP_INT_CLR to CPU/COP_INT_DIS since it's really a 'write one to disable' register and hasn't anything to do with acknowledging interrupts-- that's handled at the module level.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17683 a1c6a512-1295-4272-9138-f99709370657
2008-06-03 05:08:24 +00:00
Maurus Cuelenaere
95167e0177 Commit whole Creative Zen Vision:M target tree + all related firmware/
changes.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17241 a1c6a512-1295-4272-9138-f99709370657
2008-04-24 20:08:28 +00:00
Michael Sevakis
040b6cc654 Kill warnings that annoy me when building for Gigabeat S.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17120 a1c6a512-1295-4272-9138-f99709370657
2008-04-15 14:44:32 +00:00
Michael Sevakis
05099149f1 Enable nocache sections using the linker. PP5022/4 must use SW_CORELOCK now with shared variables in DRAM (it seems swp(b) is at least partially broken on all PP or I'm doing something very wrong here :\). For core-shared data use SHAREDBSS/DATA_ATTR. NOCACHEBSS/DATA_ATTR is available whether or not single core is forced for static peripheral-DMA buffer allocation without use of the UNCACHED_ADDR macro in code and is likely useful on a non-PP target with a data cache (although not actually enabled in config.h and the .lds's in this commit).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16981 a1c6a512-1295-4272-9138-f99709370657
2008-04-06 04:34:57 +00:00
Jens Arnold
ac9b92716a Allow to select the core for running the user timer on portalplayer targets. * Incompatible plugin API change -> sorted API.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16965 a1c6a512-1295-4272-9138-f99709370657
2008-04-04 19:38:46 +00:00
Tomasz Malesinski
4fc77ac3ff Fix empty commit: Add grayscale support for ARM in vertical packing format.
Enable grayscale for Iriver ifp. Fix timer_unregister for PNX0101.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14825 a1c6a512-1295-4272-9138-f99709370657
2007-09-22 23:37:58 +00:00
Will Robertson
26a05afe10 A few minor cleanups for the Gigabeat S
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14812 a1c6a512-1295-4272-9138-f99709370657
2007-09-22 02:17:08 +00:00
Karl Kurbjun
7b97fe21c0 Beginning of an M:Robe 500i port. Currently only in the bootloader stage. Needs another piece of code to start the boot process - will be in the wiki.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14763 a1c6a512-1295-4272-9138-f99709370657
2007-09-20 04:46:41 +00:00
Michael Sevakis
4ae87c8b8a Gigabeat: Add timer functionality. Rework tick timer setup to be exactly 100Hz. Metronome should work now but some pcm changes are needed to have faster tocks work correctly (in the works).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13806 a1c6a512-1295-4272-9138-f99709370657
2007-07-06 21:36:32 +00:00
Tomasz Malesinski
cd630c9e0a PNX0101 changes:
Make PNX0101-specific system.c and crt0.S.
Add new register names from LPC2880 user manual.
Add support for timer.
Enable CPU frequency changing. 


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12904 a1c6a512-1295-4272-9138-f99709370657
2007-03-24 19:26:13 +00:00
Daniel Ankers
242cbd5cd7 Change if CONFIG_CPU==PP50XX to ifdef CPU_PP where appropriate
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11569 a1c6a512-1295-4272-9138-f99709370657
2006-11-22 00:41:30 +00:00
Marcoen Hirschberg
37f7f0b23b reduce the number of gigabeat warnings
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11316 a1c6a512-1295-4272-9138-f99709370657
2006-10-23 13:11:57 +00:00
Jens Arnold
7d8c5aaf6a Make backlight fading work again on PP targets. The PP timer cannot handle a (real) cycle count of 1, the minimum is 2. This is now checked in timer_register() and timer_set_period().
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10849 a1c6a512-1295-4272-9138-f99709370657
2006-09-01 22:03:14 +00:00
Jens Arnold
1bb8657a8f Fixed an off-by-one error in the portalplayer timer handling.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10837 a1c6a512-1295-4272-9138-f99709370657
2006-09-01 06:13:33 +00:00
Jens Arnold
bb5fbf7c30 Fix broken backlight fading on ipod. The timer period setting must not be delayed if timer_set_period() is called from within the isr.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10779 a1c6a512-1295-4272-9138-f99709370657
2006-08-28 06:47:26 +00:00
Jens Arnold
e9086e05ee PP: Make on-the-fly timer period changes glitch-free. Stop timer when not in use. * #ifdef cleanup
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10776 a1c6a512-1295-4272-9138-f99709370657
2006-08-27 23:43:04 +00:00
Linus Nielsen Feltzing
07eea49347 Ooops. The TMR reset must only be done when starting the timer.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10744 a1c6a512-1295-4272-9138-f99709370657
2006-08-25 11:46:04 +00:00
Linus Nielsen Feltzing
798a8c1b76 Fix the problem with the user timer on X5 by explicitly resetting the timer before setting it
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10743 a1c6a512-1295-4272-9138-f99709370657
2006-08-25 10:18:16 +00:00
Jens Arnold
295ec69717 Simplification for user timer on coldfire. We define TIMER_FREQ separately anyway.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9479 a1c6a512-1295-4272-9138-f99709370657
2006-04-04 01:16:11 +00:00
Thom Johansen
46de4c21fe Add timer.c module support for ipods. Remove uneeded SIMULATOR check.
Introduce TIMER_FREQ define.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9067 a1c6a512-1295-4272-9138-f99709370657
2006-03-17 00:08:39 +00:00
Dave Chapman
987879b958 Further iPod 3G work from Seven Le Mesle
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8583 a1c6a512-1295-4272-9138-f99709370657
2006-02-05 17:34:49 +00:00
Tomasz Malesinski
c31d2f84b7 Fixed warnings on iFP.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8550 a1c6a512-1295-4272-9138-f99709370657
2006-02-03 23:14:42 +00:00
Dave Chapman
d31a32c501 iPod: Code cleanup - the bootloader now compiles with zero warnings
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@7812 a1c6a512-1295-4272-9138-f99709370657
2005-11-11 17:51:35 +00:00
Jens Arnold
72f98786a0 Fixup of the MCF5249 memory mapped register definitions.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@7755 a1c6a512-1295-4272-9138-f99709370657
2005-11-05 03:28:20 +00:00
Jens Arnold
cfb073c452 Coldfire: New timer handling on CPU frequency change, adjusting the prescaler on the fly, for both tick and user timer. Precondition is that the higher frequencies are integer multiples of the base: now NORMAL is 45 MHz and MAX is 124 MHz. Removes the need for applications with longer timer periods (>= 10 ms) to boost the CPU all the time, e.g. the grayscale lib. Timer counts are now always based on the base frequency (CPU_FREQ). * Adjusted the RAM refresh timers to the new frequencies (all frequencies for H100) * All: Fixed the tick timer count being off by one.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@7576 a1c6a512-1295-4272-9138-f99709370657
2005-10-03 09:24:36 +00:00
Jens Arnold
e44372ef18 Moved implementation of user timer to the firmware layer, implemented it for iriver, and made it shareable based on priorities. On iriver, the user timer is shared between the backlight fading and other use, so if a plugin registers the timer, the backlight will resort to simple on/off switching until the plugin releases the timer again. Sorted and bumped the plugin api.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@7242 a1c6a512-1295-4272-9138-f99709370657
2005-07-26 20:01:11 +00:00