Commit graph

8745 commits

Author SHA1 Message Date
Thomas Martitz
49b64f13e5 Remove obsolete comment
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30488 a1c6a512-1295-4272-9138-f99709370657
2011-09-09 15:44:09 +00:00
Thomas Martitz
f7cff8bd69 Buflib: Stop caching the first unallocated block. It has little benefit but is complicated to keep up-to-date.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30487 a1c6a512-1295-4272-9138-f99709370657
2011-09-09 15:35:14 +00:00
Thomas Martitz
0dcbc6cd5d Buflib: Handle not having enough space for new handles (fixes FS#12265).
Handles are allocated at the end, growing downwards.
The tiny allocations from r30478 broke buflib, since it was assumed that the only shrinkable allocation (the audiobuffer) is the very last allocation.
The tiny allocations however fit into the reserve buffer for new handles, breaking the above assumption, and they can't shrink to make room for handles.

Now, move any allocations before audiobuf (or shrink audiobuf like before) to make room for handles. This also unifies some duplicated code.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30486 a1c6a512-1295-4272-9138-f99709370657
2011-09-09 13:33:22 +00:00
Thomas Martitz
dc14de02c2 Exit of SDL_WaitEvent() returns an error.
It doesn't appear recoverable, but instead only spams the commandline.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30482 a1c6a512-1295-4272-9138-f99709370657
2011-09-08 14:53:28 +00:00
Thomas Martitz
daaae99c1c Remove unecessary casting
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30470 a1c6a512-1295-4272-9138-f99709370657
2011-09-07 23:20:12 +00:00
Thomas Martitz
5296af838c Buflib: Clarification about invalid handles
* Enhance allocation function comments to better state the return value and what an invalid value is
* Change clients to check for "< 0" instead of "<= 0" or "== 0"
* Return -1 or -2 depending on the exact failure in buflib_alloc_ex.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30469 a1c6a512-1295-4272-9138-f99709370657
2011-09-07 23:16:29 +00:00
Bertrik Sikken
101bb25e72 sansa clipzip: fix lcd init delay (remove lcd_delay and replace it with a sleep)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30465 a1c6a512-1295-4272-9138-f99709370657
2011-09-06 16:55:52 +00:00
Marcin Bukat
2d2eec466a rk27xx - update firmware/SOURCES
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30457 a1c6a512-1295-4272-9138-f99709370657
2011-09-06 12:39:37 +00:00
Marcin Bukat
287c2785fd rk27xx - enable cache
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30456 a1c6a512-1295-4272-9138-f99709370657
2011-09-06 12:39:32 +00:00
Marcin Bukat
c9c03d6b0c rk27xx - update config files
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30455 a1c6a512-1295-4272-9138-f99709370657
2011-09-06 12:39:28 +00:00
Marcin Bukat
dc5bfc7c1a rk27xx - adjust core files for rk27xx internal codec
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30454 a1c6a512-1295-4272-9138-f99709370657
2011-09-06 12:39:24 +00:00
Marcin Bukat
4072879468 rk27xx - arm7ej-s doesn't have MMU/MPU (just like arm7tdmi)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30453 a1c6a512-1295-4272-9138-f99709370657
2011-09-06 12:39:17 +00:00
Marcin Bukat
7936649919 rk27xx - disable core_sleep() as it simply hangs when cache is enabled for unknown reason.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30452 a1c6a512-1295-4272-9138-f99709370657
2011-09-06 12:39:13 +00:00
Marcin Bukat
6d959a0625 rk27xx - implement cache handling functions
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30451 a1c6a512-1295-4272-9138-f99709370657
2011-09-06 12:39:06 +00:00
Marcin Bukat
4e6daf0856 rk27xx adc - fix function name
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30450 a1c6a512-1295-4272-9138-f99709370657
2011-09-06 12:38:59 +00:00
Marcin Bukat
7aca544793 remove references to ipod nano 2g rom ata-nand-rk27xx.c
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30449 a1c6a512-1295-4272-9138-f99709370657
2011-09-06 12:38:52 +00:00
Marcin Bukat
6a628c999f add lcd_blit_yuv() stub to the rk27xx lcd driver
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30448 a1c6a512-1295-4272-9138-f99709370657
2011-09-06 12:38:48 +00:00
Marcin Bukat
7d33d83218 rk27xx - tweak a bit sd driver and add some debuging code
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30447 a1c6a512-1295-4272-9138-f99709370657
2011-09-06 12:38:41 +00:00
Marcin Bukat
0b35cdd77d rk27xx - app linker script
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30445 a1c6a512-1295-4272-9138-f99709370657
2011-09-06 12:38:30 +00:00
Marcin Bukat
472314ba73 rk27xx - implement pcm driver.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30444 a1c6a512-1295-4272-9138-f99709370657
2011-09-06 12:38:22 +00:00
Marcin Bukat
727b98e700 rk27xx - basic power management related functions
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30443 a1c6a512-1295-4272-9138-f99709370657
2011-09-06 12:38:18 +00:00
Marcin Bukat
1371dfbc86 rk27xx - nand stub
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30442 a1c6a512-1295-4272-9138-f99709370657
2011-09-06 12:38:13 +00:00
Marcin Bukat
781e3e3b1e rk27xx - implement driver for usb controller in rk27xx. This does not quite work now because of the way how controller and our usb stack are implemented.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30441 a1c6a512-1295-4272-9138-f99709370657
2011-09-06 12:38:08 +00:00
Marcin Bukat
9c40939d9c rk27xx - implement dbg_hw_info() and dbg_ports()
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30440 a1c6a512-1295-4272-9138-f99709370657
2011-09-06 12:38:05 +00:00
Marcin Bukat
fa856468ab Implement driver for internal codec in rk27xx (shCODlp-100.01-HD IP core from Dolphin)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30439 a1c6a512-1295-4272-9138-f99709370657
2011-09-06 12:37:57 +00:00
Amaury Pouly
2ac668e44c imx233/fuze+: implement user time api, implement a stub function, protect timrot against irq
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30437 a1c6a512-1295-4272-9138-f99709370657
2011-09-06 00:27:38 +00:00
Amaury Pouly
333b9ed2c3 imx233/fuze+: fix apps linker script, add comment in bootloader
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30436 a1c6a512-1295-4272-9138-f99709370657
2011-09-05 18:32:40 +00:00
Amaury Pouly
25f0060d21 imx233/fuze+: don't reboot after usb more, enter usb more after storage init, remove useless printf
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30434 a1c6a512-1295-4272-9138-f99709370657
2011-09-05 13:58:29 +00:00
Amaury Pouly
f695681d50 usb: make sure device init happens *after* queue/thread creation
Albeit unlikely, usb_init_devide() could cause de transfer completion before queue creation and the core would push onto a uninitialized queue !

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30433 a1c6a512-1295-4272-9138-f99709370657
2011-09-05 11:37:12 +00:00
Amaury Pouly
7d4fed53cc imx233:fuze+: major memory and usb rework
- now identity map dram uncached and have a cached and buffered virtual alias
- rework dma to handle virtual to physical pointers conversion
- fix lcd frame pointer
- implement usb detection properly
- implement bootloader usb properly
- allow the bootloader to disable MMC windowing (useful for recovery)

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30432 a1c6a512-1295-4272-9138-f99709370657
2011-09-05 11:29:32 +00:00
Frank Gevaerts
2b9e944021 Rework c200wipe to use proper partitioning and formatting code, which makes the code size-independent.
Also support the e200 with this code. Apparently it's also possible to get the e200 in a state where .fmt files don't help.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30413 a1c6a512-1295-4272-9138-f99709370657
2011-09-02 21:34:28 +00:00
Bertrik Sikken
9372063e19 sansa clipzip: annotate lcd registers
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30411 a1c6a512-1295-4272-9138-f99709370657
2011-09-02 20:09:51 +00:00
Bertrik Sikken
5b7a150807 sansa clipzip: add lcd_brightness function (to be used later to set the 'backlight' brightness)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30410 a1c6a512-1295-4272-9138-f99709370657
2011-09-02 19:57:29 +00:00
Bertrik Sikken
4991c858a0 sansa clipzip: implement lcd reset in the lcd driver
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30408 a1c6a512-1295-4272-9138-f99709370657
2011-09-01 17:06:19 +00:00
Bertrik Sikken
6a9aac7a5f sansa clipzip: implement lcd_enable
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30407 a1c6a512-1295-4272-9138-f99709370657
2011-09-01 16:59:30 +00:00
Michael Sevakis
d87f9fc909 Oops. "void void" doesn't work in C :p.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30404 a1c6a512-1295-4272-9138-f99709370657
2011-09-01 12:20:52 +00:00
Michael Sevakis
4db3e89652 Shuffle some functions around so that interfacing with playback.c in particular isn't required. Though playback does finish the audio init, pcm doesn't care who does it.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30403 a1c6a512-1295-4272-9138-f99709370657
2011-09-01 12:15:43 +00:00
Thomas Martitz
7e14b935df Dircache: Allow dircache to be enabled without reboot.
Also add two dircache function, one of which does what dircache_disable()
did previously as this now also frees the dircache buffer.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30393 a1c6a512-1295-4272-9138-f99709370657
2011-08-30 21:07:46 +00:00
Bertrik Sikken
e66ad3e8a8 sansa clipzip: implement backlight
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30390 a1c6a512-1295-4272-9138-f99709370657
2011-08-30 19:13:44 +00:00
Bertrik Sikken
99f260ef49 sansa clipzip: fix bounds check/correction in lcd_update_rect
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30389 a1c6a512-1295-4272-9138-f99709370657
2011-08-30 18:14:20 +00:00
Thomas Martitz
bb000ce525 Fix last yellows.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30385 a1c6a512-1295-4272-9138-f99709370657
2011-08-30 14:38:16 +00:00
Thomas Martitz
0c4c81620f Fix h100 red and other warnings.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30384 a1c6a512-1295-4272-9138-f99709370657
2011-08-30 14:32:16 +00:00
Thomas Martitz
baa070cca6 GSoC/Buflib: Enable compaction in buflib.
This enables the ability to allocate (and free) memory dynamically
without fragmentation, through compaction. This means allocations can move
and fragmentation be reduced. Most changes are preparing Rockbox for this,
which many times means adding a move callback which can temporarily disable
movement when the corresponding code is in a critical section.

For now, the audio buffer allocation has a central role, because it's the one
having allocated most. This buffer is able to shrink itself, for which it
needs to stop playback for a very short moment. For this,
audio_buffer_available() returns the size of the audio buffer which can
possibly be used by other allocations because the audio buffer can shrink.

lastfm scrobbling and timestretch can now be toggled at runtime without
requiring a reboot.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30381 a1c6a512-1295-4272-9138-f99709370657
2011-08-30 14:01:45 +00:00
Thomas Martitz
d0b72e2590 GSoC/Buflib: Add buflib memory alocator to the core.
The buflib memory allocator is handle based and can free and
compact, move or resize memory on demand. This allows to effeciently
allocate memory dynamically without an MMU, by avoiding fragmentation
through memory compaction.

This patch adds the buflib library to the core, along with
convinience wrappers to omit the context parameter. Compaction is
not yet enabled, but will be in a later patch. Therefore, this acts as a
replacement for buffer_alloc/buffer_get_buffer() with the benifit of a debug
menu.

See buflib.h for some API documentation.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30380 a1c6a512-1295-4272-9138-f99709370657
2011-08-30 14:01:33 +00:00
Bertrik Sikken
17fcb4cfe3 sansa clipzip: correct GPIO used for backlight
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30377 a1c6a512-1295-4272-9138-f99709370657
2011-08-29 21:08:24 +00:00
Bertrik Sikken
401edf8b48 sansa clipzip: implement more functions in the lcd driver
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30376 a1c6a512-1295-4272-9138-f99709370657
2011-08-29 21:05:59 +00:00
Michael Sevakis
7ad2cad173 Commit work started in FS#12153 to put timing/position information in PCM
buffer chunks.

* Samples and position indication is closely associated with audio data
  instead of compensating by a latency constant. Alleviates problems with
  using the elapsed as a track indicator where it could be off by several
  steps.

* Timing is accurate throughout track even if resampling for pitch shift,
  whereas before it updated during transition latency at the normal 1:1 rate.

* Simpler PCM buffer with a constant chunk size, no linked lists.

In converting crossfade, a minor change was made to not change the WPS until
the fade-in of the incoming track, whereas before it would change upon the
start of the fade-out of the outgoing track possibly having the WPS change
with far too much lead time.

Codec changes are to set elapsed times *before* writing next PCM frame because
 time and position data last set are saved in the next committed PCM chunk. 


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30366 a1c6a512-1295-4272-9138-f99709370657
2011-08-28 07:45:35 +00:00
Bertrik Sikken
463b3ed8b2 Initial framework for the Sandisk Sansa Clip Zip
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30365 a1c6a512-1295-4272-9138-f99709370657
2011-08-27 16:21:19 +00:00
Thomas Martitz
c08299cedd Dircache: Fix memory leak (and recently panic).
If the dircache was interrupted during generation (e.g. through USB
insertion), then the allocated buffer was leaked and a new one
was allocated for the second cache generation. This causes a
panic since r30308 since playback holds the control over the
audiobuffer at that time.

The fix is to simply check allocated_size instead of
dircache_size which is reset to 0 upon cancellation.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30321 a1c6a512-1295-4272-9138-f99709370657
2011-08-16 13:01:03 +00:00
Thomas Martitz
4087875f1c Dircache: Fix bug introduced in r30308.
dircache_root wasn't initialized at all and the giving allocated_size
passed to buffer_release_buffer() didn't account for alignment padding.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30318 a1c6a512-1295-4272-9138-f99709370657
2011-08-15 15:13:17 +00:00