Commit graph

8927 commits

Author SHA1 Message Date
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
Frank Gevaerts
bf34cdfacb Add a 100ms delay before calling disk_mount_all(). Some players (especially some gigabeat Fs) seem to need a delay after disabling USB if we want disk access to work.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30316 a1c6a512-1295-4272-9138-f99709370657
2011-08-15 14:36:23 +00:00
Thomas Martitz
8a701e5488 Fix errors and warnings.
The buffer_offset paramter of audio_init_recording() is removed as it
was unused in both implementations.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30310 a1c6a512-1295-4272-9138-f99709370657
2011-08-14 15:37:05 +00:00
Thomas Martitz
7695b0403f Fix typo in and clarify comment.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30309 a1c6a512-1295-4272-9138-f99709370657
2011-08-14 15:21:26 +00:00
Thomas Martitz
d1322b7159 GSoC/Buflib: Replace all direct accesses to audiobuf with buffer API functions.
Namely, introduce buffer_get_buffer() and buffer_release_buffer().
buffer_get_buffer() aquires all available and grabs a lock, attempting to
call buffer_alloc() or buffer_get_buffer() while this lock is locked will cause
a panicf() (doesn't actually happen, but is for debugging purpose).
buffer_release_buffer() unlocks that lock and can additionally increment the
audiobuf buffer to make an allocation. Pass 0 to only unlock if buffer was
used temporarily only.
buffer_available() is a replacement function to query audiobuflen, i.e. what's
left in the buffer.
Buffer init is moved up in the init chain and handles ipodvideo64mb internally.

Further changes happened to mp3data.c and talk.c as to not call the above API
functions, but get the buffer from callers. The caller is the audio system
which has the buffer lock while mp3data.c and talk mess with the buffer.
mpeg.c now implements some buffer related functions of playback.h, especially
audio_get_buffer(), allowing to reduce #ifdef hell a tiny bit.

audiobuf and audiobufend are local to buffer.c now.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30308 a1c6a512-1295-4272-9138-f99709370657
2011-08-14 15:13:00 +00:00
Thomas Martitz
c0a4c66f9d Android: Minor changes in ldebugf.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30304 a1c6a512-1295-4272-9138-f99709370657
2011-08-14 13:58:39 +00:00
Bertrik Sikken
b2d0ea204c Remove a couple of duplicate #includes
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30301 a1c6a512-1295-4272-9138-f99709370657
2011-08-14 13:42:32 +00:00
Thomas Martitz
dbdbc242ac Remove hosted_get_volume(), as event data is available in button_get_data().
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30300 a1c6a512-1295-4272-9138-f99709370657
2011-08-14 13:38:10 +00:00
Marcin Bukat
3b0783068b Fix typos in comments. Thanks ukleinek for pointing out.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30270 a1c6a512-1295-4272-9138-f99709370657
2011-08-08 20:21:29 +00:00
Marcin Bukat
1d2fae4466 rk27xx sd driver fixes
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30269 a1c6a512-1295-4272-9138-f99709370657
2011-08-08 20:09:27 +00:00
Thomas Martitz
44ffa3ef93 format/*printf: Add simple support for %p format specifier.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30249 a1c6a512-1295-4272-9138-f99709370657
2011-08-04 10:44:41 +00:00
Frank Gevaerts
936494f9c5 Lower the maximum brightness of the fuzev2 backlight even more.
The previous maximum (20) still causes excessive heat for some people, and measurements (using a digital camera and a white screen) show that the maximum brightness in the OF corresponds to 12 in rockbox, so we use 12 now.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30227 a1c6a512-1295-4272-9138-f99709370657
2011-07-31 15:30:07 +00:00
Thomas Martitz
32b54164d8 Dircache: Fix 2 nasty bugs introduced with the reworks starting with r30032.
The first is an off-by-one that leads to miscalculation of the dircache size.
The format string size was used but dircache size was incremented by the snprintf() result which is smaller.
The other forgot to update the location of the "." and ".." strings upon compaction,
so that new folders got assigned orphaned pointers for those directory entires.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30224 a1c6a512-1295-4272-9138-f99709370657
2011-07-30 23:21:58 +00:00
Michael Giacomelli
62d666df6f Convert AMSv2 microphone samples from 14 to 16 bit before storing them.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30209 a1c6a512-1295-4272-9138-f99709370657
2011-07-25 01:00:15 +00:00
Michael Giacomelli
c27ea297a3 Commit FS#12111 by Stephan Grossklass. Disables output mixer auto gain control on AMSv2. Should fix occasional distortion reported when running the player at very high output levels (e.g. at or above 0dB).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30208 a1c6a512-1295-4272-9138-f99709370657
2011-07-24 21:56:24 +00:00
Amaury Pouly
855e3c6f0f imx233/fuze+: implement lcd_blit_yuv (untested)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30207 a1c6a512-1295-4272-9138-f99709370657
2011-07-24 19:12:27 +00:00
Amaury Pouly
1df8072c08 imx233/fuze+: cleanup sd code
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30206 a1c6a512-1295-4272-9138-f99709370657
2011-07-24 19:12:23 +00:00
Bertrik Sikken
0157c62418 ipod nano 1g: enable readout of battery current through ADC channel 4066_ISTAT
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30204 a1c6a512-1295-4272-9138-f99709370657
2011-07-24 17:32:50 +00:00
Amaury Pouly
fa0f17d9b0 imx233/fuze+: move page table to dram
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30201 a1c6a512-1295-4272-9138-f99709370657
2011-07-23 13:48:01 +00:00