(forward port of r26481 + cosmetics)
This lead to freezes under various conditons (bug report: FS#11267)
Battery life is almost not (if at all) affected:
- between 4 and 8 minutes less runtime for fuzev1
- 9 minutes less runtime for c200v2 (2 minutes difference on a 2 hours run)
Additional verifications of the runtime (including on other models) wouldn't hurt
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26512 a1c6a512-1295-4272-9138-f99709370657
reorder static functions to avoid the need for early prototypes
panic if the INT_AUDIO callback could not read the 3 IRQ_ENRD registers
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26445 a1c6a512-1295-4272-9138-f99709370657
this removes workaround for spurious interrupts added in r26316
side effect: make keyclicks work correctly when used intensively (with
the scrollwheel for example), the clicks should be inserted fast enough
for the PCM fifo to not become empty.
PL190 can cause spurious interrupts if an interrupt is triggered by a
peripheral shortly before the interrupt for this peripheral is cleared
from VIC registers.
As an effect we should only write in VIC_INT_EN_CLEAR after having
disabled the source of the interrupt in the peripheral.
references on PL190 spurious interrupts:
- http://www.embeddedrelated.com/groups/lpc2000/show/14599.php
- http://water.cse.unsw.edu.au/esdk/lpc2/spurious-irq.html
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26444 a1c6a512-1295-4272-9138-f99709370657
This is equivalent to mov pc
Remove an instruction from the asm() for PP cop restart : use register constraint
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26431 a1c6a512-1295-4272-9138-f99709370657
Skipped the specifiers for octal, (u)int_leastN_t, (u)int_fastN_t and
(u)intmax_t as we don't use them in rockbox
Specifiers use the types specified in stdint.h
Specifiers for short (16 bits) and char (8 bits) use the int specifier,
our format.c doesn't know about 'h' and 'hh'
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26411 a1c6a512-1295-4272-9138-f99709370657
Using BX has the effect to set the T bit, so it can return to a thumb
function
With this change, rockbox runs fine on Clipv2 built with -mthumb (for
most files which don't use inline 32 bits ARM assembly)
Some other places use code which change the T bit on armv5 but not on
armv4 so armv4 won't run
See FS#6734
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26386 a1c6a512-1295-4272-9138-f99709370657
invert setting isn't remembered when backlight goes off and lcd_enable()
is ran again
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26374 a1c6a512-1295-4272-9138-f99709370657
Waiting for TRAN state after the end of the transfer caused writing problems for some uSD cards. Removing this wait returns write functionality to those cards.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26365 a1c6a512-1295-4272-9138-f99709370657
(apply r23738 to as3525v2 code)
extend the arbitrary delay to 5 seconds, we never know
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26342 a1c6a512-1295-4272-9138-f99709370657
tick_start, fmradio_i2c_init, pcm_init, pcm_postinit, pcm_play_dma_init
Also add some as3525 target specific functions
Make as3525v2 use this attribute
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26328 a1c6a512-1295-4272-9138-f99709370657
It's now easier to force rebuild of files depending on the svn revision
version.c/version.h are generated once with new tools/genversion.sh
Changes in the VCS are still not auto detected, so you'll have to remove
builddir/version.* if you want to change the string in your binaries
APPSVERSION is now called RBVERSION and is defined in the generated
header instead of being defined by the Makefiles
appsversion is now called rbversion (the plugin api number didn't change
since old modules are still binary compatible)
Change some bootloaders to use knwon-at-buildtime RBVERSION instead of
"%s" + rbversion
You'll need to run make clean to regenerate dependencies after the
removal of apps/version.h
To build binaries with a different version string, hand-edit
tools/version.sh or tools/genversion.sh (which calls the former)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26320 a1c6a512-1295-4272-9138-f99709370657
Even if we disable it in VIC_INT_EN_CLEAR, it still fires an interrupt
by running the default isr.
Locking requires disabling interrupts completely.
I'm not sure if DMAC is the only interrupt affected or if we can't rely
on VIC_INT_EN_CLEAR to mask interrupts.
If it's the latter, we will need to have special locking scheme for
INT_AUDIO.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26316 a1c6a512-1295-4272-9138-f99709370657
since it's now the default thread which is implicitely created by starting the sim.
This caused a segfault that r26283 tried to fix. Revert r26283 and protect
the main thread from being removed.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26315 a1c6a512-1295-4272-9138-f99709370657
Declare VIC registers holding function pointers as volatile pointers to
function pointers and access them directly without casting
UIRQ() is an IRQ handler too, even if it doesn't return
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26313 a1c6a512-1295-4272-9138-f99709370657
- retry failed commands up to 6 times
- wait at most 5 seconds for the card to go to TRAN state
- wait for the card to be in TRAN state (i.e. not programming) before
disabling SD clocks (remove the workaround in sd_enable() )
should fix lockups reported on fuzev1 under heavy internal storage + µSD use
(playback + database/pictureflow updating)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26291 a1c6a512-1295-4272-9138-f99709370657
Selecting the right card before the transfer will deselect the other one
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26290 a1c6a512-1295-4272-9138-f99709370657
We assume only one bit is set and use clz to find the most significant
set bit, if there's more than one bit set we'll see it in the panic msg
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26285 a1c6a512-1295-4272-9138-f99709370657
If we disable the hearbeat source after enabling the watchdog there's no
more lock-up when powering off the dap
Comment out alarm enabling on startup since rockbox disables the alarm anyway
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26247 a1c6a512-1295-4272-9138-f99709370657
A specific poweroff function needs to be used for wake-up to work
Disable RTC in bootloaders for consistency with other Sansas
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26243 a1c6a512-1295-4272-9138-f99709370657
- fix check_event_queue to use queue_peek and not mess message order
- change check_dircache_state to a more modest check to avoid messing up dircache state
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26228 a1c6a512-1295-4272-9138-f99709370657
Charge using 150mA current like the OF to charge faster
Edit clipv2 charging curve with 150mA
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26227 a1c6a512-1295-4272-9138-f99709370657
Move code not defined for bootloader under a single preprocessor check
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26219 a1c6a512-1295-4272-9138-f99709370657
GPIO direction needs only to be set at init
both functions are now one liners so make them static inline
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26218 a1c6a512-1295-4272-9138-f99709370657
It seems there is some significant variance between different greyscale ipods of the same model, so it's unlikely that *any* value will be great for everyone. I'm hoping that this is just high enough that the lightest screens aren't totally blank, but not dark enough that the darkest screens are entirely unreadably black ;)
This rather unsatisfactory compromise is to help us get a new bootloader release out (since bootloaders can't have their contrast adjusted) - a real fix would be to detect the LCD type, which the OF appears to be able to do (maybe).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26208 a1c6a512-1295-4272-9138-f99709370657
- forgot a ccu undocumented thing in init
- finish init code (following linux patch)
- enable interrupts
- don't use dynanmic fifo sizing by default
- move to a more static configuration of usb hardware parameters (it might be necessary to move them to config* files later).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26195 a1c6a512-1295-4272-9138-f99709370657
it might be valid C but is confusing, and not consistent with the rest of file.c
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26191 a1c6a512-1295-4272-9138-f99709370657
we still need to convert uncached addresses to physical addresses
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26177 a1c6a512-1295-4272-9138-f99709370657