Commit graph

2990 commits

Author SHA1 Message Date
Jean-Louis Biasini
df6eb82f51 touch devices: Disable touch on softlock.
Target that have a touchpad/touchscreen should disable it while
being locked (In order to avoid LCD to drain battery power due to
"key locked" constant reporting messages. If they a have a keylock
button this was already handled at driver level. If not (e.g. fuze+),
they will have to implement a switch at driver level that action.c
can operate on softlock.
This patch does the following for any target having a touchpad
or a touchscreen and no HAS_BUTTON_HOLD (ie any softlock target)
1) it implements the code to call button_enable_touch(bool en) in
action.c.
2) button_enable_touch is implemented in button.c and call
either touchpad_enable or touchscreen_enable
3) those two function are implemented respectively in touchscreen.c
and a new touchpad.c file. They provide a generic way to silents touch's
device and call a function at driver level where target specific code
can be implemented if possible/needed (for power saving for instance).
Those function name are touchpad_enable_device and touchscreen_enable_device
4) we implement an empty function at driver level of targets that need it
to have them still being able to compiled.

Change-Id: I9ead78a25bd33466a8533f5b9f259b395cb5ce49
Reviewed-on: http://gerrit.rockbox.org/569
Reviewed-by: Thomas Martitz <kugel@rockbox.org>
Reviewed-by: Amaury Pouly <amaury.pouly@gmail.com>
2013-09-05 20:02:07 +02:00
Michael Sevakis
a56f1ca1ed Cleanup MV/MD macros a little.
When using variadic macros there's no need for IF_MD2/IF_MV2 to deal
with function parameters. IF_MD/IF_MV are enough.

Throw in IF_MD_DRV/ID_MV_VOL that return the parameter if MD/MV, or 0
if not.

Change-Id: I7605e6039f3be19cb47110c84dcb3c5516f2c3eb
2013-08-17 12:18:22 -04:00
Amaury Pouly
737dafe7df Revert "rk27xx: implement usb driver"
This reverts commit 310f9e068d.
2013-08-11 19:21:24 +02:00
Marcin Bukat
310f9e068d rk27xx: implement usb driver
Change-Id: Iee3036944652fd6431d3177ab619e5df1f9bd44c
2013-08-06 21:27:46 +02:00
Jean-Louis Biasini
be72c4f2bf [RMI Driver] Implement power saving support
Implement standard values and functions to operate on power control
register. This allow to modify both reporting rate and sleep mode
in order to save power.

Change-Id: I2bdffd4160e10eec488eb5e19de8a2a258ddbb04
Reviewed-on: http://gerrit.rockbox.org/529
Reviewed-by: Amaury Pouly <amaury.pouly@gmail.com>
2013-07-29 14:28:24 +02:00
Amaury Pouly
c4f2a46e0d imx233: revert volumes to 1dB resolution
Using a better resolution causes havoc in the user interface
because it doesn't properly handle steps and people start to
believe I am responsible for all this mess.

Change-Id: I02b68dce5802692efde3da226eeeb49e4995f97a
2013-07-23 14:12:08 +02:00
Amaury Pouly
47785ca7f9 fuzeplus: add touchpad sensitivity
Change-Id: I0252c0967716a4f1a628191dcde7ffc80279370b
Reviewed-on: http://gerrit.rockbox.org/515
Reviewed-by: Amaury Pouly <amaury.pouly@gmail.com>
2013-07-15 18:41:32 +02:00
Michael Sevakis
023f6b6efd Get rid of some superfluous single-purpose functions in playback.
* Remove explicit tracking of elapsed time of previous track.
* Remove function to obtain auto skip flag.
* Most playback events now carry the extra information instead and
  pass 'struct track_event *' for data.
* Tweak scrobbler to use PLAYBACK_EVENT_TRACK_FINISH, which makes
  it cleaner and removes the struct mp3entry.

Change-Id: I500d2abb4056a32646496efc3617406e36811ec5
2013-07-13 00:08:51 -04:00
Amaury Pouly
9e535e9864 imx233: fix audio settings, some values were nonsense
Change-Id: Ib9969bf843169cc5ddafd7758b5b5c729b2784f1
2013-07-13 02:42:17 +02:00
Michael Sevakis
d37bf24d90 Enable setting of global output samplerate on certain targets.
Replaces the NATIVE_FREQUENCY constant with a configurable frequency.

The user may select 48000Hz if the hardware supports it. The default is
still 44100Hz and the minimum is 44100Hz. The setting is located in the
playback settings, under "Frequency".

"Frequency" was duplicated in english.lang for now to avoid having to
fix every .lang file for the moment and throwing everything out of sync
because of the new play_frequency feature in features.txt. The next
cleanup should combine it with the one included for recording and
generalize the ID label.

If the hardware doesn't support 48000Hz, no setting will be available.

On particular hardware where very high rates are practical and desireable,
the upper bound can be extended by patching.

The PCM mixer can be configured to play at the full hardware frequency
range. The DSP core can configure to the hardware minimum up to the
maximum playback setting (some buffers must be reserved according to
the maximum rate).

If only 44100Hz is supported or possible on a given target for playback,
using the DSP and mixer at other samperates is possible if the hardware
offers them.

Change-Id: I6023cf0c0baa8bc6292b6919b4dd3618a6a25622
Reviewed-on: http://gerrit.rockbox.org/479
Reviewed-by: Michael Sevakis <jethead71@rockbox.org>
Tested-by: Michael Sevakis <jethead71@rockbox.org>
2013-07-06 04:22:04 +02:00
Michael Sevakis
4888131972 Update software recording engine to latest codec interface.
Basically, just give it a good rewrite.

Software codec recording can be implemented in a more straightforward
and simple manner and made more robust through the better codec
control now available.

Encoded audio buffer uses a packed format instead of fixed-size
chunks and uses smaller data headers leading to more efficient usage.
The greatest benefit is with a VBR format like wavpack which needs
to request a maximum size but only actually ends up committing part
of that request.

No guard buffers are used for either PCM or encoded audio. PCM is
read into the codec's provided buffer and mono conversion done at
that time in the core if required. Any highly-specialized sample
conversion is still done within the codec itself, such as 32-bit
(wavpack) or interleaved mono (mp3).

There is no longer a separate filename array. All metadata goes
onto the main encoded audio buffer, eliminating any predermined
file limit on the buffer as well as not wasting the space for
unused path queue slots.

The core and codec interface is less awkward and a bit more sensible.
Some less useful interface features were removed. Threads are kept
on narrow code paths ie. the audio thread never calls encoding
functions and the codec thread never calls file functions as before.

Codecs no longer call file functions directly. Writes are buffered
in the core and data written to storage in larger chunks to speed up
flushing of data. In fact, codecs are no longer aware of the stream
being a file at all and have no access to the fd.

SPDIF frequency detection no longer requires a restart of recording
or plugging the source before entering the screen. It will poll
for changes and update when stopped or prerecording (which does
discard now-invalid prerecorded data).

I've seen to it that writing a proper header on full disk works
when the format makes it reasonably practical to do so. Other cases
may have incorrect data sizes but sample info will be in tact. File
left that way may play anyway.

mp3_enc.codec acquires the ability to write 'Info' headers with LAME
tags to make it gapless (bonus).

Change-Id: I670685166d5eb32ef58ef317f50b8af766ceb653
Reviewed-on: http://gerrit.rockbox.org/493
Reviewed-by: Michael Sevakis <jethead71@rockbox.org>
Tested-by: Michael Sevakis <jethead71@rockbox.org>
2013-06-30 00:40:27 +02:00
Michael Sevakis
a9ea1a4269 Fix some whitespace in files changed in following commit.
Change-Id: Ie3f43e43076e0dcae9a10f1b0b9e4698b398acee
Reviewed-on: http://gerrit.rockbox.org/492
Reviewed-by: Michael Sevakis <jethead71@rockbox.org>
Tested-by: Michael Sevakis <jethead71@rockbox.org>
2013-06-30 00:40:09 +02:00
Marcin Bukat
0b29691324 Move load_firmware() to separate file
The idea is to share loading code between bootloaders and rolo().

Change-Id: I1656ed91946d7a05cb7c9fa7a16793c3c862a5cd
Reviewed-on: http://gerrit.rockbox.org/190
Reviewed-by: Marcin Bukat <marcin.bukat@gmail.com>
2013-06-27 13:50:11 +02:00
Amaury Pouly
d8368d58b0 imx233: add recording side and 3d to codec driver
Change-Id: I3587434749c401a28c6e77bd30395e7df15f2e8a
2013-06-18 16:09:07 +02:00
Amaury Pouly
0173f6edf5 imx233: fix soc header for stmp3600 and stmp3700
Document various register macros (autogenerated). Fix memory map
for stmp3700, make framebuffer size configurable and cache aligned
and fix the PHYSICAL_ADDR macro.

Change-Id: I40a2875fb3eb35c6fce1158db37dbc0c1a10c68e
2013-06-18 15:33:07 +02:00
Amaury Pouly
81224c62bb imx233: add subtarget and package type to configure files
Change-Id: I234dab0e861d38abf866803bfcd729c63a8ee3ed
2013-06-16 14:39:58 +02:00
Michael Sevakis
5857c44017 Refactor audio thread to run both recording and playback.
Eliminates the pcmrec thread and keeps playback and recording engine
operation mutually-exclusive.

audio_thread.c contains the audio thread which branches to the
correct engine depending upon the request. It also handles the main
audio initialization.

Moves pcm_init into main.c just before dsp_init because I don't want
that one in audio_init in the new file.

(Also makes revision df6e1bc pointless ;)

Change-Id: Ifc1db24404e6d8dd9ac42d9f4dfbc207aa9a26e1
2013-05-31 03:20:35 -04:00
Andrew Ryabinin
00b8563654 df1704: Add filter roll-off selection.
Change-Id: I732ebd3446858b497105cf03fc81e934a749a57b
2013-05-24 11:32:20 +04:00
Andrew Ryabinin
0519f7e5ab Add DAC's oversampling filter roll-off selection to sound settings.
Change-Id: I1258ba50dd9308f49d97965562f3a423c9bfb785
2013-05-24 11:18:16 +04:00
Michael Sevakis
6e211ab3ac Remove dsp_callback because DSP is now library code, not app code.
Yep, nope, not necessary anymore. Just call functions directly.

Change-Id: I21dc35f8d674c2a9c8379b7cebd5613c1f05b5eb
2013-05-23 14:25:37 -04:00
Michael Sevakis
91b850ec42 Get rid of usb_drv_attach() from USB code.
'Twas an idiosyncrasy of detecting a host upon bus reset, which is
obsolete.

Change-Id: I0adb25e1805022544f52cd0cb766819a367dbde4
2013-05-14 22:13:38 -04:00
Andrew Ryabinin
fa4e1baa83 Introduce HiFi E.T MA9 port.
Change-Id: I79aadc958fd5222f26f91ed127f8c6fb2c465dc2
2013-05-06 14:09:24 +04:00
Michael Sevakis
08199cd6cb Provide high resolution volume and prescaler to hosted targets.
HAVE_SW_VOLUME_CONTROL is required and at this time only affects the
SDL targets using pcm-sdl.c.

Enables balance control in SDL targets, unless mono volume is in use.

Compiles software volume control as unbuffered when
PCM_SW_VOLUME_UNBUFFERED is defined. This avoids the overhead and
extra latency introduced by the double buffer when it is not needed.
Use this config when the target's PCM driver is buffered and sufficient
latency exists to perform safely the volume scaling.

Simulated targets that are double-buffered when made as native targets
remain so in the sim in order to run the same code.

Change-Id: Ifa77d2d3ae7376c65afecdfc785a084478cb5ffb
Reviewed-on: http://gerrit.rockbox.org/457
Reviewed-by: Michael Sevakis <jethead71@rockbox.org>
Tested-by: Michael Sevakis <jethead71@rockbox.org>
2013-04-27 06:59:27 +02:00
Michael Sevakis
8829e909b4 Bass/Treble caps should exist implicitly with HAVE_SW_TONE_CONTROLS.
If AUDIOHW_CAPS is defined without explicit BASS_CAP/TREBLE_CAP while
HAVE_SW_TONE_CONTROLS is defined, AUDIOHW_HAVE_BASS/TREBLE should be
defined or otherwise the tone controls won't show up. TREBLE/BASS were
being defined if AUDIOHW_CAPS was NOT defined, but the same rule should
apply if the codec needs to specify other caps but doesn't use hardware
tone controls.

(I'm surprised noone noticed some settings gone missing :-)

Change-Id: I85b5c467bab07bb62362a0dc2d582267ac2d8ec9
2013-04-25 16:37:12 -04:00
andypotter
ecaa401660 Add Serial Port 1 support for iPod Photo/Color/4G/Mini2G
Based on FS#9920 by Ryan Press with changes to selection logic so
that it works on my iPod Photo. Should also work on iPod Color/4G
and Mini2G. Moved all target specific code from
firmware/drivers/serial.c into new file
firmware/target/arm/pp/uart-pp.c in the same manner as other
target specific uart code.
Update to fix build error on ipodmini2g by adding defines in config file.
Removed unwanted whitespace
Tested on iPod Photo.

Change-Id: Ia5539563966198e06372d70b5adf2ef78882f863
Reviewed-on: http://gerrit.rockbox.org/455
Reviewed-by: andypotter <liveboxandy@gmail.com>
Tested-by: andypotter <liveboxandy@gmail.com>
Reviewed-by: Marcin Bukat <marcin.bukat@gmail.com>
2013-04-25 21:02:09 +02:00
Michael Sevakis
e61e9c61d0 Do some cleanup, adjustment and a couple fixes to recent sound changes.
* SOUND_x enum can be generated by audiohw_settings.h along with settings
entries and sound_val2phys.

* VOLUME_MIN and VOLUME_MAX are no longer necessary within sound.c. If
you need them, they are for target-defined purposes.

* Fix up SDL volume implementation in sdl.c. Move sim volume calculation
code to pcm-sdl.c.

* Min trigger tresholds were based upon VOLUME_MIN for some reason.
These setting have nothing to do with playback volume. Since it is no
longer present, set these at -89dB which is the minimum peak meter
sensitivity setting.

* Fix an oversight in wm8758.c. I forgot to add the dB->register
conversion to audiohw_set_volume.

Change-Id: Ie1df33f1793eee75e6793f16bc7bddd16edb7f75
2013-04-22 20:38:17 -04:00
Michael Sevakis
5261b19bdf Still at it for 0c7b787. Might be done now.
Change-Id: Idf45731dc6554954747f6036dc6dfcd4b63981a1
2013-04-15 14:58:00 -04:00
Michael Sevakis
9e71fd16a5 Keep fixing 0c7b787 stuff
Change-Id: I0678d3307fbcad32156f9f4e0f8b90eed5a20d92
2013-04-15 14:00:48 -04:00
Michael Sevakis
bbd991ad63 Fix some more errors and warnings from 0c7b787.
Change-Id: Ib67d0ab344e36964cadbcc982dc2afe35733770b
2013-04-15 13:24:29 -04:00
Michael Sevakis
0971f57634 Hopefully knock out most of the red and yellow from 0c7b787.
Change-Id: Ib8dd0d011b11ee3eded3025308f19ddb5d151b59
2013-04-15 12:39:04 -04:00
Michael Sevakis
0c7b787398 Straighten out the mad twisted state of sound.c and related areas.
This is going right in since it's long overdue. If anything is goofed,
drop me a line or just tweak it yourself if you know what's wrong. :-)

Make HW/SW codec interface more uniform when emulating HW functionality
on SWCODEC for functions such as "audiohw_set_pitch". The firmware-to-
DSP plumbing is in firmware/drivers/audiohw-swcodec.c. "sound_XXX"
APIs are all in sound.c with none in DSP code any longer.

Reduce number of settings definitions needed by each codec by providing
defaults for common ones like balance, channels and SW tone controls.

Remove need for separate SIM code and tables and add virtual codec header
for hosted targets.

Change-Id: I3f23702bca054fc9bda40f49824ce681bb7f777b
2013-04-15 12:02:05 -04:00
Andrew Ryabinin
6be8097651 hm60x/hm801: Fix balance by enabling sw volume control.
Change-Id: I8760b58d5b801409f35370d812d72f8d578d2889
2013-04-12 10:11:54 +04:00
Michael Sevakis
2dd1f37a10 Fix f5a5b94 errors. Employ SW volume for select targets on SIM.
Onda VX747 sim was missing a limits #define; #include limits.h in
pcm_sw_volume.h.

Simply use the software volume control for the SIM volume control
rather than the SDL volume control when the target would have it
natively.

Change-Id: I8e924a2ff1b410f602452d2ea9b691efb82c931e
2013-04-11 19:00:23 -04:00
Michael Sevakis
f5a5b94686 Implement universal in-PCM-driver software volume control.
Implements double-buffered volume, balance and prescaling control in
the main PCM driver when HAVE_SW_VOLUME_CONTROL is defined ensuring
that all PCM is volume controlled and level changes are low in latency.

Supports -73 to +6 dB using a 15-bit factor so that no large-integer
math is needed.

Low-level hardware drivers do not have to implement it themselves but
parameters can be changed (currently defined in pcm-internal.h) to work
best with a particular SoC or to provide different volume ranges.

Volume and prescale calls should be made in the codec driver. It should
appear as a normal hardware interface. PCM volume calls expect .1 dB
units.

Change-Id: Idf6316a64ef4fb8abcede10707e1e6c6d01d57db
Reviewed-on: http://gerrit.rockbox.org/423
Reviewed-by: Michael Sevakis <jethead71@rockbox.org>
Tested-by: Michael Sevakis <jethead71@rockbox.org>
2013-04-11 22:55:16 +02:00
Amaury Pouly
a924df8d6d rk27xx: implement radio support
Change-Id: I59d3905e9b2a3df8aa235e424c7a6e0eff6d73e9
Reviewed-on: http://gerrit.rockbox.org/427
Reviewed-by: Marcin Bukat <marcin.bukat@gmail.com>
Tested-by: Marcin Bukat <marcin.bukat@gmail.com>
2013-04-11 11:18:23 +02:00
Frank Gevaerts
f8d36b5baa Increase MAXUSERFONTS to 12.
In the modern everything-can-be-skinned world, themes are beginning
to hit the limit of 8 fonts (which includes sysfont). Increasing this
to 12 will allow some headroom, at the cost of a bit more RAM usage
(about 20 bytes per extra possible font, so about 80 bytes total here)

Change-Id: Iddf4374b7ccf92b400614a7309bf3d2147ba98ab
2013-04-01 17:30:38 +02:00
Marcin Bukat
027c035a4e jz4740: a few minor fixes
This was spotted while playing with qemu-jz:
1) rockbox reads TECR and TESR which are described as write-only
   registers. Datasheet doesn't mention what happens if they are
   readed. Apparently this doesn't have fatal side effects.
   It comes down to two defines from jz4740.h
   __tcu_stop_counter(n) and __tcu_start_counter(n) which use
   read-modify-write sequence.

2) rockbox accesses out of bound offset 0xd4 in DMA memspace.
   It comes from dis_irq() in system-jz4740.c. NUM_DMA is 6 but
   DMA channels are 0-5 so (irq <= IRQ_DMA_0 + NUM_DMA)) bound
   check is wrong.

This are *NOT* tested on device.

Change-Id: I29dff6a4f828030877b7d50fbcc98866478b9e3d
Reviewed-on: http://gerrit.rockbox.org/338
Reviewed-by: Bertrik Sikken <bertrik@sikken.nl>
Tested-by: Purling Nayuki <cyq.yzfl@gmail.com>
Reviewed-by: Marcin Bukat <marcin.bukat@gmail.com>
2013-03-11 08:33:18 +01:00
Lorenzo Miori
2f9e3cae2c Samsung YP-R0 LCD improvements
This patch adds to YP-R0 (and other future targets using Linux
framebuffer) the ability to use LCD_ENABLE to save some CPU cycles
while display is powered off.
This patch also changes the way to toggle LCD power: now using
a proper ioctl call, slightly more efficient.

Change-Id: I544de77f5abd4ac1c13d3fe3a6e40a30f7c0bece
Reviewed-on: http://gerrit.rockbox.org/410
Reviewed-by: Thomas Martitz <kugel@rockbox.org>
2013-03-06 23:23:52 +01:00
Lorenzo Miori
60592165ca Samsung YP-R0 hosted target code refactoring
As per title this patch aims at splitting common target
code and specific target code in a better way to
support future ports within the same environment
(e.g. Samsung YP-R1 where the Linux and the SoC
are the same, with differences in hardware devices
handling)

Change-Id: I67b4918c46403b184d3d8f42ab5aae7d01037fd0
Reviewed-on: http://gerrit.rockbox.org/409
Reviewed-by: Thomas Martitz <kugel@rockbox.org>
Tested-by: Thomas Martitz <kugel@rockbox.org>
2013-03-06 00:21:22 +01:00
Thomas Martitz
1430b07894 bitmap drawing: Use extra bit in mask to avoid nested if() in switch-cases.
Speeds up alpha bitmap drawing by up to 10%. mono bitmap drawing is also a tiny bit faster.

Change-Id: I5a9379740c1a0091de9c621aabbe57d767ce2905
2013-02-12 10:34:48 +01:00
Marcin Bukat
02a9089034 PP: Do not use ATA DMA in bootloader
The build of bootloader with HAVE_ATA_DMA fails because of missing
commit_discard_dcache(). This seems to be bigger problem as
bootloader builds don't call  cache_init() also which seems wrong.
but I know too little about the PP platform to judge.
For now use ATA DMA only in regular builds.

Change-Id: I82873cb1771f5a95ebfbef91ce26744e3abd743c
2013-01-24 13:04:57 +01:00
Boris Gjenero
d118f47d24 Re-enable PP502x ATA DMA
PP502x ATA DMA was disabled in 55fab77 because it caused various
instability on all targets using it. This instability is fixed in
583c948 via FS#12391. Here, ATA DMA is enabled for all PP502x targets
except nano1g and hdd6330. For nano1g, there may be other causes of
instability and more testing is needed. ATA DMA does not work on hdd6330.

Change-Id: I786b9edb19e74e6eb957ab205ea026f0969200ac
Reviewed-on: http://gerrit.rockbox.org/340
Tested-by: David Hooper <dave@beermex.com>
Tested-by: Boris Gjenero <boris.gjenero@gmail.com>
Reviewed-by: Szymon Dziok <b0hoon@o2.pl>
Tested-by: Szymon Dziok <b0hoon@o2.pl>
Reviewed-by: Marcin Bukat <marcin.bukat@gmail.com>
2013-01-24 11:27:12 +01:00
Amaury Pouly
e9f8846ce2 imx233: enable cpu frequency scaling on all targets
Change-Id: If19f51da5e4d66d7a85b3b9f50cbde115e73b6cb
2013-01-18 18:59:41 +00:00
Marcin Bukat
efe1042759 rk27xx: substitute magic constants with meaningful names for INTC
Change-Id: Ic93114db351a9940a53d0c1df6439d82ada044e1
2013-01-10 20:23:41 +01:00
Marcin Bukat
15818bef55 rk27xx: substitute magic constants with meaningful names for peripherials reset
Change-Id: Ia411c9be65376d1c3fdf59b7e692b0590d58775e
2013-01-10 20:23:41 +01:00
Marcin Bukat
2b6dfdb34e rk27xx: substitute magic constants with meaningful names for clock gating
Change-Id: I6c66c7496db3db78e5c959414464826134dbe200
2013-01-10 20:23:41 +01:00
Cástor Muñoz
758a3ae4bb iPod Classic/6G: PCM support for all CS42L55 rates
pcm_dma_apply_settings(): sets the configured PCM frequency,
all native CS42L55 sample rates are available.

Change-Id: I2fcd5581457a669c3044516804cb64fb972218d0
2013-01-09 22:08:28 +01:00
Hayden Pearce
6803d7b10c iPod6G (Classic) - enable HAVE_DISK_STORAGE
Fixes missing Settings - General Settings - System - Disk - Spindown
setting.

Change-Id: Iae686598dfd7ad4ca1faf8db9f1271e7808de752
Reviewed-on: http://gerrit.rockbox.org/376
Reviewed-by: Michael Giacomelli <giac2000@hotmail.com>
Tested-by: Michael Giacomelli <giac2000@hotmail.com>
2012-12-29 21:25:57 +01:00
Amaury Pouly
d9177c4c65 fuze+: implement lcd flip and invert
Change-Id: I1efcd0c6aa5e586b64c1b48d401648c7a933c4d9
2012-12-26 02:41:41 +01:00
Marcin Bukat
dac6dbc013 rk27xx: Add status led (icon) support to SD driver
Change-Id: I47a36c0cf7319c2b100b813fdcbea024c7ae0b0a
2012-12-16 12:14:44 +01:00
Jonathan Gordon
b0263be48e Add the 9 segment lcd funciton to remote lcds
Change-Id: I00f9a067522624a87befcf95a811b49ad685029c
2012-12-09 17:27:11 +11:00
Jonathan Gordon
685cf59008 9 segment bitmap drawing:
Use %x9(id) to draw an image in the whole current viewport using the
9 segment drawer (which draws the corners as normal and *tiles*
the middle segments to the needed width/height).

Future work is to make it scale instead of tile

Change-Id: Ic3ed1cad93f96091694801eb442e0da5a2401203
2012-12-09 17:11:19 +11:00
Amaury Pouly
775ab07d5e usb: add support for hardware handled SET ADDR/CONFIG
Some USB controllers like the one of the Rockchip 27xx handle some
requests in pure hardware. This is especially a problem for two
of them:
- SET ADDR which is used by our core to track the DEFAULT/ADDRESS
  state and is required for the drivers to work properly
- SET CONFIG which is used by our core to initialise the drivers
  by calling init_connection()
In these cases we need a way to notify the core that such requests
happened.
We do this by exporting two functions which directly notify the
core about these requests and perform the necessary init steps
required without doing the actual USB transfers. Special care is
needed because these functions could be called from an interrupt
handler. For this reason we still use the usb_queue and introduce
new IDs so that they are processed in order and safely.

No functional change is intended, both in the usbstack and on
targets without such quirks.

Change-Id: Ie42feffd4584e88bf37cff018b627f333dca1140
2012-12-07 13:37:26 +01:00
Michael Sevakis
0f8aedbe94 Add a true waveform display to the oscilloscope plugin.
* Adds some additional niftyness like a floating popup display that
is implemented in an OSD library for use by other plugins.

* Speed changes are now gradual for both views and follow a curve
derived from some fiddling around to get a nice feel.

* Refined a few behavioral things overall.

It needs a bit of help from a direct PCM channel callback so it may
capture PCM for waveform display. Also need a few other core routines
to help out for the OSD.

Messes with some keymaps. Some targets need keymaps to access the
different views. Some devices can't support the additional view
because it requires a large buffer ( > 1 s) for samples.

If the plugin buffer is small, they can still use the popup display
since the plugin is also much smaller in that case.

Slow speed waveform needs some refining so it draws gradually like
a real oscilloscope but I'll stick with what it is, for the moment.

Change-Id: Ieb5b7922a2238264e9b19a58cb437739194eb036
Reviewed-on: http://gerrit.rockbox.org/245
Reviewed-by: Michael Sevakis <jethead71@rockbox.org>
Tested-by: Michael Sevakis <jethead71@rockbox.org>
2012-12-05 02:03:58 +01:00
Marcin Bukat
e1ea08417b rk27xx: introduce meaningfull constants in usb driver
Based on pamaury's work. No (un)functional change yet.

Change-Id: I7fe76c1da20d87d6c92eb3792e3d352877d423d7
2012-12-04 09:18:12 +01:00
Michael Giacomelli
5a149587ed Include runtime current measurements for the ipod classic.
Numbers taken from the battery benchmark wiki page.

Change-Id: Id66d3a2b76d025ef688a12f11e9274afd9bdfe58
2012-11-25 22:32:50 +01:00
Marcin Bukat
8ad8473d81 logdiskf.h - fix wrong cpp conditionals
Change-Id: I6721227938955915fede32b6748802f7abf4b391
2012-10-22 22:36:11 +02:00
Amaury Pouly
709827b5ea imx233: fix user timer
The running count is only 16-bit wide, since the always tick
setting derives from the crystal clock at 24MHz the user timer
cannot be set lower than ~300Hz which is already too high.
Switch to the 32KHz crystal source to fix this.

Change-Id: Ie7775460b17ea7ab331738734e3d688ad5563857
2012-10-21 14:45:09 +02:00
Amaury Pouly
e3e53c965a imx233/fuze+: add status led(icon) support to sd/mmc storage layer
Change-Id: I9c0e1ecd04d1935825606e906e6a434a3afb2175
2012-10-10 17:54:33 +02:00
Lorenzo Miori
d2875fc773 This patch adds RDS capability to Samsung YP-R0 target.
Uses register polling method to decide when it's time to decode
RDS packets.

Change-Id: I1d3cc995ea3350ec7b101438b8f2027130d4a4c9
Reviewed-on: http://gerrit.rockbox.org/320
Reviewed-by: Lorenzo Miori <memorys60@gmail.com>
Tested-by: Lorenzo Miori <memorys60@gmail.com>
Reviewed-by: Thomas Martitz <kugel@rockbox.org>
Tested-by: Thomas Martitz <kugel@rockbox.org>
2012-10-06 23:00:36 +02:00
Richard Quirk
71f70112b2 Add set_sleeptimer_duration function in minutes
Make set_sleep_timer a static function and only call
set_sleeptimer_duration externally, which is always called with minutes
values.

Change-Id: I985308bf014e354f91c47a0b2bf62f4f5a591919
Reviewed-on: http://gerrit.rockbox.org/327
Reviewed-by: Jonathan Gordon <rockbox@jdgordon.info>
2012-10-06 11:59:13 +02:00
Marcin Bukat
1e5e022a39 rk27generic: Enable frequency scaling
Change-Id: Ia806994fc77c93fbd4c4c5ec234bb0f34641303a
2012-09-27 09:46:27 +02:00
Andrew Ryabinin
84134f737f rk27xx lcd code rework
Use DMA engine for fullscreen updates and bypass mode for partial
updates. This gives major boost on rk27generic:
default ARM:AHB:APB 200💯50
HEAD    1/1:  26.3fps 1/4: 105.0fps
patched 1/1: 116.5fps 1/4: 249.5fps

with freq scalling NORMAL mode ARM:AHB:APB 50:50:50
HEAD    1/1:  13.1fps 1/4: 52.5fps
patched 1/1:  54.5fps 1/4: 119.0fps

Tested on rk27generic noname DAP and on Hifimans.

Change-Id: Id9dd4d2d61542c7ea6b5c6336b170d6357cefde9
2012-09-27 09:42:44 +02:00
Amaury Pouly
49cded1704 imx233: properly disable frequency scaling for now
Change-Id: I3d700762a7f46e82ac99fed03e1aa9448b6cba47
2012-09-04 20:25:46 +02:00
Marcin Bukat
722e24a76a rk27xx: implement frequency scalling
Implemented scheme:
        ARM AHB APB
Normal   50  50  50 MHz
Max     200 100  50 MHz

Frequency scaling is disabled on rk27generic due to too
slow lcd updates when running with 50MHz AHB.

battery_bench shows ~1h runtime improvement on hifiman.

Change-Id: I2c6f8acf6d4570c4e14f5bcc72280b51ce13c408
2012-08-30 13:50:36 +02:00
Frank Gevaerts
9e61976a19 Only build LOGFDISK for SWCODEC.
Due to the way Archos devices (i.e. the only HWCODEC devices) boot,
memory is tight these days. Disabling LOGFDISK on them will make them
work for now. In the long term a better solution is needed.

Change-Id: Ifc6bb97a81cc33545294e319bbc0a6c499788d39
2012-08-28 21:48:30 +02:00
Amaury Pouly
41bf9ebc89 imx233: simplify sd/mmc driver
Further merge drivers by using the same command and data functions.
No use one mutex per drive instead of a global sd lock. Fix the
RCA handling which was different between SD and MMC (shifted 16)
and thus confusing. Add MMC commands definition to the mmc.h
header similarly to the SD one. Change MMC handling a bit by
selecting/deselecting on each transfer like SD, which allows
for several MMC devices in theory and is more uniform.

Change-Id: I7024cb19c079553806138ead75b00640f1d2d95c
2012-08-21 16:28:36 +02:00
Amaury Pouly
4908b8eb1c imx233: merge sd and mmc drivers, fix dma issues
Merge sd and mmc drivers into a single sdmmc driver. This allows
some factoring of the code and simplify bug fixing. Also fix the
dma/cache related issue by doing all transfers via a correctly
aligned buffer. The current code is not smart enough to take
advantage of large user buffers currently but at least it is safe!

Change-Id: Ib0fd16dc7d52ef7bfe99fd586e03ecf08691edcd
2012-08-18 18:24:42 +02:00
Michael Giacomelli
6f55433b01 Don't enable log to disk on PCTOOL builds since there is no disk to log to.
Change-Id: Ida589bcd20227f626349f80293bb423d784519be
2012-08-06 19:26:33 -04:00
Michael Giacomelli
633dd49283 Remove copy/pasted preprocessor defines that shouldn't have been included.
Also, add dummy defines for application targets so that ERRORF, etc
map to DEBUGF instead of a compile error and add a new line at the
end of logf.c.

Change-Id: Ie7c5bc3397a853af619e810defce6123114e7a51
2012-08-06 19:20:47 -04:00
Michael Giacomelli
97c1dc0368 Enable logdiskf to for all device targets, but not bootloaders or application
builds.

Change-Id: I651900fda676433841cfd14dba05bcb4116e0002
2012-08-06 19:07:54 -04:00
Michael Giacomelli
d46b090771 Introduce logging to disk feature into rockbox.
Logs information, errors, etc to disk using the register_storage_idle_func
mechanism to write to the disk when available.  Currently, this is disabled
in normal builds, but can be enabled by adding ROCKBOX_HAS_LOGDISKF to the
config file.  By default, it uses a 2KB buffer and drops text if the buffer
overflows.

The system includes a simple warning level mechanism that can be used to by
default exclude non-serious errors from logging on release builds.

Change-Id: I0a3d186a93625c7c93dae37b993a0d37e5a3a925
Reviewed-on: http://gerrit.rockbox.org/288
Reviewed-by: Jonathan Gordon <rockbox@jdgordon.info>
Tested-by: Michael Giacomelli <mgiacomelli@gmail.com>
Reviewed-by: Michael Giacomelli <mgiacomelli@gmail.com>
2012-08-07 00:53:46 +02:00
Thomas Martitz
efe73e143a Fix database tool.
It was also broken functionally, probably since a while.So restore the
functionality. Run it on the dap, the tcd files will be placed into .rockbox folder.

Change-Id: Id7a6ce4389dfaf99799258902be80d630af0601c
2012-07-31 10:33:27 +02:00
Thomas Martitz
b7937a729f fix database tool
Change-Id: I48702c3213aae7e2c64ea0e1f197e61368393759
2012-07-18 16:23:11 +02:00
Marcin Bukat
676f72a0f4 rk27xx codec: Fix volume setting
Change-Id: If57e0225fed4a9f87dff9661b21b2e06fa3d341e
2012-07-10 20:09:21 +02:00
Frank Gevaerts
0c3934f917 Use RGB565 define instead of plain 565.
Pixelformats should always use the defines, not the raw values.

Change-Id: Id60a73385bb6cc4e8f8d1f8b292489d066f1e13f
2012-06-20 01:13:51 +02:00
Thomas Martitz
2345e0c48d hosted: disable USING_STORAGE_CALLBACK again
6b8330d was not the correct fix. In fact, it prevents settings from being
written as there's no DISK_EVENT_SPINUP event, so they were only saved on
proper shutdown.

Change-Id: Iad26366f2821ed6adf445c391d461563c5782a71
2012-06-15 20:54:42 +02:00
Frank Gevaerts
10b2143fbf The threading model should be set from configure, not config.h.
Change-Id: If87bbd4a02825df20e5fe29c4ada85bf5ba25e99
2012-06-11 23:05:41 +02:00
Frank Gevaerts
d1560e5869 Add the Android/MIPS target
Change-Id: Iec1d2f08c8a43e486ab1696566a718b18598ff95
2012-06-11 22:29:45 +02:00
Lorenzo Miori
3cad5573b6 ypr0: This patch adds radio support to Samsung YP-R0
Basically it uses the default SI4700 radio chip driver, the only thing that's different is the I2C access,
written specifically to interact with my kernel module.
Next things to add are:
- RDS support!

Change-Id: I0ed125641e00f93124d7a34f90dd508e7f1db5a4
Signed-off-by: Lorenzo Miori <memorys60@gmail.com>
2012-05-28 19:39:14 +02:00
Thomas Martitz
3f365fc06b load_code: Get rid of win32 specific code in favor SDL_LoadFunction & friends APIs.
Refactor native/hosted implementation seperation while at it
(no wrappers starting with _ anymore).

Change-Id: If68ae89700443bb3be483c1cace3d6739409560a
2012-05-26 22:46:56 +02:00
Frank Gevaerts
3f72ba0e3f Fix broken logic for enabling USING_STORAGE_CALLBACK.
The logic got broken by 6b8330d2.

Since the ifp700 port is basically unmaintained and unfinished and doesn't
build anyway, we can remove the special-casing for it. This simplifies the
logic to "hosted or native, except for bootloaders", which simplifies
further to "not bootloaders".

Fixes FS#12685

Change-Id: Iaaad534067da22b74bf647aa58dcbb678bbc5f70
2012-05-26 00:10:00 +02:00
Nils Wallménius
70876a8454 Delete obsolete define from the config files for the new creative ports.
Change-Id: I00164be4960f987399fc5ea713f19ab06490883c
2012-05-21 17:08:19 +02:00
Amaury Pouly
1b6e8cba62 imx233: make sure dma descriptors are cache friendly
Because DMA descriptors needs to be committed and discarded from
the cache, if they are not cache aligned and/or if their size
is not a multiple of cache ligne, nasty side effects could occur
with adjacents data. The same applies to DMA buffers which are
still potentially broken. Add a macro to ensure that these
constraints will not break by error in the future.

Change-Id: I1dd69a5a9c29796c156d953eaa57c0d281e79846
2012-05-20 01:35:25 +02:00
Amaury Pouly
f94db35d5e imx233: fix cache line size (32 instead of 16)
Change-Id: I4b0826a93ee8aef6a5fabf5c75e833bc36999479
2012-05-20 01:35:24 +02:00
Amaury Pouly
e401683482 zenxfi3&stfm1000: implement fmradio i2c and debug screen
Change-Id: I83dbdee13185d9adcf590dc213da5a8c97adb2ba
2012-05-19 18:04:25 +02:00
Amaury Pouly
12c64a4b79 Initial commit for the Creative ZEN X-Fi2 and X-Fi3 ports
These are really similar devices so one commit for both is ok.

Change-Id: I8bd1d3fef1eb6d00aaadfb7af56c771f62d0c9c3
2012-05-19 16:10:52 +02:00
Amaury Pouly
b422be9bd0 Add stub STFM1000 tuner driver
Change-Id: I7f82f7b8971de75c92f84d12aaddccc50f3e47b1
2012-05-19 16:10:52 +02:00
Amaury Pouly
deb61e0622 Add the MPR121 (touchbutton chip) driver
Change-Id: I9db97a698ef1c7f0b4f47e406faa1f6c0ec524db
2012-05-19 16:10:52 +02:00
Amaury Pouly
068443caaf imx233: move away timer defines from imx233.h
Change-Id: I9f721ae12a3ddf72c4e90ad0754a5c2b819847bb
2012-05-19 16:10:52 +02:00
Thomas Martitz
6b8330d216 Enable USING_STORAGE_CALLBACK on hosted targets. Fixes config.cfg not written properly.
Change-Id: I3c87b41baae284b818be5c272d984d937ae0e350
2012-05-13 19:14:56 +02:00
Amaury Pouly
1d21e54fc4 fuze+: add RDS support
I successfully identified the STC/RDS pin as B2P27.
Strangely the OF uses polling instead of interrupts
but since they routed it, let's use it! On the fuze+
the fmradio i2c uses bit toggling so we can't read
the RDS data in the interrupt context. Instead we
defer the work to a thread.

Change-Id: Iedfa425320e6c91b4351b72e97c732696bdb2b73
Reviewed-on: http://gerrit.rockbox.org/236
Reviewed-by: Bertrik Sikken <bertrik@sikken.nl>
Reviewed-by: Amaury Pouly <amaury.pouly@gmail.com>
2012-05-12 13:09:06 +02:00
Nils Wallménius
d29a11b7a8 Rename HAVE_PITCHSCREEN to HAVE_PITCHCONTROL
Also move the definition to config.h

Change-Id: I36bb5020c5e06b2344292bc05e8c13ccc7a6a1ff
Reviewed-on: http://gerrit.rockbox.org/234
Reviewed-by: Nils Wallménius <nils@rockbox.org>
2012-05-09 14:32:38 +02:00
Nils Wallménius
2dda258f99 Remove STATICIRAM hack
It was only needed by the old arm toolchain that we no longer use or support.

Change-Id: Id0e6c67477f8834a637079b03cde5fbf9da68b1c
Reviewed-on: http://gerrit.rockbox.org/233
Reviewed-by: Nils Wallménius <nils@rockbox.org>
2012-05-08 22:46:12 +02:00
Michael Sevakis
88aeef9127 Remove pointless IRAM allocation from voice DSP.
It's always used in MONO mode and doesn't need the IRAM sample/
resample buffers and 1280 bytes can be freed.

M5 can now have its PCM mixer downmix buffer in IRAM.

Change-Id: I0af08be5b212b7dfe382bba588a6585eb328a038
2012-05-04 22:00:44 -04:00
Sean Bartell
cadb3627fc Add rbcodecplatform.h and rbcodecconfig.h.
librbcodec users must provide these two files when the library is built.
rbcodecconfig.h provides configuration #defines and basic types, and
will be included by public librbcodec headers, so it must not conflict
with the user's code. rbcodecplatform.h provides various OS functions,
and will only be included by source files and private headers. This
system is intended to provide maximum flexibility for use on embedded
systems, where no operating system headers are included. Unix systems
can just copy rbcodecconfig-example.h and rbcodecplatform-unix.h with
minimal changes.

Change-Id: I350a2274d173da391fd1ca00c4202e9760d91def
Reviewed-on: http://gerrit.rockbox.org/143
Reviewed-by: Nils Wallménius <nils@rockbox.org>
Tested-by: Nils Wallménius <nils@rockbox.org>
2012-05-03 14:49:35 +02:00
Michael Sevakis
5f0cb71361 Silly includes going haywire. Fix the errors/warnings (hopefully).
Change-Id: I7ec2b7e8fe56ad6d65ab757e8667b4951d00ee29
2012-05-02 21:13:42 -04:00
Michael Sevakis
e189b33ff4 Clean up peak calculating code.
Mixer needn't keep peak data around that will never be used. Just
pass pcm_peaks structure to it instead of allocating for every
channel. Plugin API becomes incompatible.

vu_meter digital mode was still using global peak calculation;
switch it to playback channel like the rest.

Remove some accumulated soil peaks inside pcm.c and make it more
generic.

Change-Id: Ib4d268d80b6a9d09915eea1c91eab483c1a2c009
2012-05-02 20:53:07 -04:00
Michael Sevakis
da6cebb6b0 Use buflib for the allocation of voice PCM resources.
Buffers are not allocated and thread is not created until the first
call where voice is required.

Adds a different callback (sync_callback) to buflib so that other
sorts of synchonization are possible, such as briefly locking-out the
PCM callback for a buffer move. It's sort of a messy addition but it
is needed so voice decoding won't have to be stopped when its buffer
is moved.

Change-Id: I4d4d8c35eed5dd15fb7ee7df9323af3d036e92b3
2012-05-02 17:22:28 -04:00
Michael Sevakis
c9bcbe202d Fundamentally rewrite much of the audio DSP.
Creates a standard buffer passing, local data passing and messaging
system for processing stages. Stages can be moved to their own source
files to reduce clutter and ease assimilation of new ones. dsp.c
becomes dsp_core.c which supports an engine and framework for effects.

Formats and change notifications are passed along with the buffer so
that they arrive at the correct time at each stage in the chain
regardless of the internal delays of a particular one.

Removes restrictions on the number of samples that can be processed at
a time and it pays attention to destination buffer size restrictions
without having to limit input count, which also allows pcmbuf to
remain fuller and safely set its own buffer limits as it sees fit.
There is no longer a need to query input/output counts given a certain
number of input samples; just give it the sizes of the source and
destination buffers.

Works in harmony with stages that are not deterministic in terms of
sample input/output ratio (like both resamplers but most notably
the timestretch). As a result it fixes quirks with timestretch hanging
up with certain settings and it now operates properly throughout its
full settings range.
Change-Id: Ib206ec78f6f6c79259c5af9009fe021d68be9734
Reviewed-on: http://gerrit.rockbox.org/200
Reviewed-by: Michael Sevakis <jethead71@rockbox.org>
Tested-by: Michael Sevakis <jethead71@rockbox.org>
2012-04-29 10:00:56 +02:00
Rafaël Carré
c9c1349773 usb-s3c6400: merge the 2 drivers
Player-specific code remaining: usb_drv_(init,exit)

The iPods lack a MMU, so:
    - physical, virtual, and uncached addresses are identical
    - since we can't access uncached memory we discard caches when receiving data

Still not quite reliable on nano2g

Change-Id: Iebb79df64818b9ae3b68eccb8be8975ebd6c21ea
2012-04-28 16:01:57 -04:00
Michael Sevakis
3c391ad51b Coldfire (m68k): Add macros for tpf.w/l instructions.
Better than inserting ".word 0x51fc/b". Assembler doesn't support
them but does the plain "tpf" without extension words as well as
"trapf".

Change-Id: I929c0ec84c6e76e0573ff6308634542fd8aee738
2012-04-26 16:04:44 -04:00
Michael Sevakis
e5c3327cef Add a more correct absolute difference function to dsp-util.
Differences between signed samples cover the entire unsigned 32-bit
range. "abs" will think any difference exceeding INT32_MAX is negative
which is not corrent. Test which argument is greater and subtract the
lesser from it, outputting unsigned difference.

Change-Id: I73a8e5e418d49ff73d1a7c98eeb4731946dcfe84
2012-04-26 16:04:43 -04:00
Jonathan Gordon
705e7fe5e9 event classes are single bits
Change-Id: I4c65b25a94b60d4f0ef8db750807a91242d63ea3
2012-04-22 22:41:50 +10:00
Andrew Ryabinin
6ee3fc81d9 hm801: Add support for plugins.
Change-Id: I81654db87d38324d8680a56bcdb7e9922ee5b619
2012-04-19 17:31:13 +04:00
Thomas Martitz
bb0e4cc543 touchscreen: Fix kinetic scrolling when the statusbar is off.
The scrolling code cannot differentiate between the BUTTON_TOUCHSCREEN post
from normal touches and the one posted in the timeout callback.

To fix introduce a global special button (BUTTON_REDRAW) that results
in the desired redraw. This existed already as a local kludge for android
and is now generalized.

Change-Id: I6bfa6c66431c48f5042fcd8fce2ea72cd3457f58
2012-04-05 15:01:59 +02:00
Cástor Muñoz
a85780bacc Classic/6G: CPU frequency/voltage scaling
This patch implements HAVE_ADJUSTABLE_CPU_FREQ, it modifies the
following parameters when CPU is unboosted:

- s5l8702 voltage is decreased: 1.200V -> 1.050V
- CPU frequency is divided by 4: 216MHz -> 54MHz
- AHB frequency is divided by 2: 108MHz -> 54MHz

Change-Id: I2285b83efb7e1567864ac288f2d4ba55f058f7c5
2012-03-31 01:18:15 +02:00
Thomas Martitz
7b1a369cf7 build system: completely autodetect target cpu architecture.
The existing ARCH Makefile variable is exported to the C code as well.
Additionally the version (arm-only for now) is detected as well. This
allows to for complete autodetection, i.e. that optimized ASM is picked up
if determined by preprocessor (CPU_ARM, etc).

Building a sim/raaa on a arm host will now automatically generate a arm
optmized build like we have for native targets.

Change-Id: I0b35393f8fb3ebd20beaa9e7371fa57bf3782107
2012-03-28 23:02:39 +02:00
Michael Sevakis
d18a5cad7f Tweak paramters of mp3_play_data and callback.
Use generic void * and size_t and make mp3_play_data and its callback
agree on types. Use mp3_play_callback_t instead of prototyping
right in the function call (so it's not so messy to look at). Change
doesn't appear to require plugin API version increment.

Change-Id: Idcab2740ee316a2beb6e0a87b8f4934d9d6b3dd8
2012-03-04 14:50:47 -05:00
Bertrik Sikken
f6e17e86fe AMSv2: add proper definitions for charge current
Change-Id: I6a14570e94df1be62ae46816d2ff4e3f2b7bc21a
2012-03-04 12:23:05 +01:00
Marcin Bukat
ecbda694b2 rename rkw.h header file
Change-Id: I2cb6ea7da9c20ed0ef87f4b8ea90d2e4a4a3bca2
2012-03-04 00:36:02 +01:00
Marcin Bukat
587f52f50e rk27xx: switch to RKW format for binary
Change-Id: I859473abbaf05c8268d832b25d15f27f1ea44648
2012-03-04 00:35:32 +01:00
Marcin Bukat
2f8b44aae2 Add RKW firmware file format loader
Change-Id: I5283fdcdb8d263fd9375a6d29396f82650aeb686
2012-03-04 00:34:26 +01:00
Frank Gevaerts
b9ce249772 Don't define CPU_* for __PCTOOL__
Change-Id: Id49577a002627eb830f833f101b83471d11ec271
2012-03-03 20:35:19 +01:00
Frank Gevaerts
466a7c6a40 Integrate the warble tool in the regular build system.
Only sdl app builds work properly for now.

Change-Id: I7807d42f69b8577b401e48cdc63de71e54f49217
2012-03-03 20:19:08 +01:00
Frank Gevaerts
13a7c9ac70 Don't set CONFIG_CPU for __PCTOOL__, to avoid wrong asm
Change-Id: I725d80cf5cc49d9b7460b320489cdeb14be942c0
2012-03-03 20:19:08 +01:00
Frank Gevaerts
83b4d70af5 Undefine HAVE_ADJUSTABLE_CPU_FREQ for __PCTOOL__
Change-Id: I1772df581975ed02134d6d7cb230c0991a92a4e1
2012-03-03 19:16:22 +01:00
Frank Gevaerts
c6d20104eb Fix __PCTOOL__ dependencies on SIMULATOR
* filesize() is not POSIX, so it doesn't need stubbing or redirecting
* make the various directory functions use the sim_ versions for PCTOOL
* PCTOOL needs generic byteswap functions
* fix the database makefile to not use -DSIMULATOR anymore

Change-Id: Ic6abc4f662830b85626c751a472fa4a03e844871
2012-03-03 18:54:47 +01:00
Michael Sevakis
286a4c5caa Revise the PCM callback system after adding multichannel audio.
Additional status callback is added to pcm_play/rec_data instead of
using a special function to set it. Status includes DMA error
reporting to the status callback. Playback and recording callback
become more alike except playback uses "const void **addr" (because
the data should not be altered) and recording  uses "void **addr".
"const" is put in place throughout where appropriate.

Most changes are fairly trivial. One that should be checked in
particular because it isn't so much is telechips, if anyone cares to
bother. PP5002 is not so trivial either but that tested as working.

Change-Id: I4928d69b3b3be7fb93e259f81635232df9bd1df2
Reviewed-on: http://gerrit.rockbox.org/166
Reviewed-by: Michael Sevakis <jethead71@rockbox.org>
Tested-by: Michael Sevakis <jethead71@rockbox.org>
2012-03-03 07:23:38 +01:00
Jonathan Gordon
8efb8f97c4 lcd drivers: split lcd_gradient_rect so it is actually useful
lcd_gradient_rect() was only usable to draw list lines, so split
it up and make a generic gradient draw function available to apps/

Change-Id: I665911a90fef239b5e06592ea2763cbeeb74c83f
2012-03-01 00:10:17 +11:00
Jonathan Gordon
2c71aa9feb lcd/skin_engine: Add the ability to draw onto the backdrop layer
The framebuffer the lcd driver uses can now be changed on the fly
which means that regular lcd_* drawing functions can draw onto the
"backdrop" buffer. The skin engine can use this to create layered
effects.

Add the tag %VB to a viewport to draw that viewport onto the
backdrop layer. If you want to draw an image onto the backdrop
framebuffer use %x(backdrop filename) instead of %X() inside
a viewport with %VB.

Change-Id: I741498e2af6d4f2d78932cabe8942317893e7cfc
2012-02-28 23:03:04 +11:00
Jonathan Gordon
b37e6bc8c1 lcd drivers: Convert lcd_[remote_]framebuffer to a pointer
Change all lcd drivers to using a pointer to the static framebuffer
instead of directly accessing the static array. This will let us
later do fun things like dynamic framebuffer sizes (RaaA) or
ability to use different buffers for different layers (dynamic
skin backdrops!)

Change-Id: I0a4d58a9d7b55e6c932131b929e5d4c9f9414b06
2012-02-28 11:44:59 +11:00
Cástor Muñoz
663667a8c5 IPod Classic/6G: LCD sleep (FS#12523) by Cástor Muñoz
Change-Id: I7bea9f61fa315339c1f41efb27d13a4aa30cb4c3
Signed-off-by: Nils Wallménius <nils@rockbox.org>
2012-02-25 13:46:43 +01:00
Andrew Ryabinin
7b99318710 HiFiMAN: Implement lcd powersave mode.
Change-Id: I0a22b436549047ac0c2f9e2c203cbe8b31cfc1cd
2012-02-24 13:49:34 +04:00
Marcin Bukat
b4eab59951 Arm stack unwinder
Simplified stack unwinder for ARM. This is port of
http://www.mcternan.me.uk/ArmStackUnwinding/
backtrace() is called from UIE() on native targets
and from panicf() on both native and ARM RaaA.

Change-Id: I8e4b3c02490dd60b30aa372fe842d193b8929ce0
2012-02-22 08:33:26 +01:00
Frank Gevaerts
a16b65e47d Force YPR0 to 240x320
The YPR0 has a fixed screen size. Letting the generic RaaA screen
size selection code work on causes checkwps/buildall.sh to build
broken checkwps binaries. There's no good reason to allow
overriding the screen size here

Change-Id: Ic666d28d10273000a8c1867580c8d1a13dd98dc9
2012-02-22 01:08:17 +01:00
Bertrik Sikken
43a940c8cb rds: add basic RDS clock-time support
Change-Id: I931182ccd20cf8899f3ce9b6b8d7c7c5f4ea006f
2012-02-18 11:02:13 +01:00
Albert Barca
580303bb3e FS#12569 - iPod Classic - battery capacity update
Change-Id: Ibc4d873fb142954e274f7fc0f2782f4e022e2f81
Signed-off-by: Nils Wallménius <nils@rockbox.org>
2012-02-13 18:49:38 +01:00
Cástor Muñoz
e29619b4d2 FS#12524 - iPod Classic/6G: hardware click support
Based on the piezo driver for the nano2g.

Signed-off-by: Nils Wallménius <nils@rockbox.org>
2012-02-11 23:46:35 +01:00
Nick Peskett
4d72c1b0b4 Fix sim battery emulation: Set such a low sample value for battery smoothing as to effectively disable it.
Since smoothing was enabled for battery_status_update() in 109084d, the simulated charge/ discharge cycle was so fast that the battery level never really dropped much below 90%.

Change-Id: Ide5c7ceef97bc9ed62d45e3a0afd99ff6f0550ea
2012-02-09 10:59:25 +00:00
Amaury Pouly
900b494a27 imx233: fix PHYISCAL_ADDR to handle the buffered region (hard to debug if misused)
Change-Id: Ibbe9d42ecb91aa04925d557f8231f8a9140dd60a
2012-01-27 20:08:33 +01:00
Thomas Martitz
9f4ee79542 Fix checkwps.
Change-Id: Ia530de560c17b9b3a71c3d9117c7cdc72ec7569d
2012-01-22 19:46:27 +01:00
Thomas Martitz
91a3978fdc ypr0: Enable asm optimizations.
Change-Id: Ib9f98563a9687827a384e5c7587638f5874cf485
2012-01-22 18:46:45 +01:00
Thomas Martitz
991ae1e395 Create fimrware/asm directory for assembly optimized stuff.
This dir is suitable for stuff that doesn't fit the target tree, e.g. because
it also builds on hosted or otherwise. It also has a generic subfolder for
fallback C implementations so that not all archs need to provide asm files.

SOURCES should only contain "foo.c" where foo.c includes the specific
<arch>/foo.c files from the subdirs using the preprocessor. This way automatic
selection of asm versions or generic C verion is possible.

For the start, the thread support files are moved, since ASM threads can
be used on hosted platforms as well. Since core_sleep() remains platform
specific it's moved to the corresponding system.h headers.

Change-Id: Iebff272f3407a6eaafeb7656ceb0ae9eca3f7cb9
2012-01-22 18:46:44 +01:00
Thomas Martitz
5b4a6c4267 Hosted: Merge debugf() implementations. Cleanup debug.h.
Fixes debug build for ypr0.

Change-Id: I9c0eff651dcf268a3fafed1a71fcc47f3e323d36
2012-01-21 18:39:19 +01:00
Frank Gevaerts
6e11289cc2 Set HOME_DIR to "/". Should fix FS#12500.
The reasons for not using / don't seem to be valid (It can lead to //,
true, but not on any system where // is actually special, and
create_*_filename() handles / fine albeit not perfectly (more //)).

Handling /./ is desirable, but we can't afford to leave all automatic
filename generation broken indefinitely while people discuss possible
approaches.

Change-Id: I6718ea28d7c91e19f7da89f76c8cefd92e12fe5e
2012-01-17 18:44:29 +01:00
Michael Sevakis
5093e68e65 Fix Clip Zip bootloader build.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31644 a1c6a512-1295-4272-9138-f99709370657
2012-01-09 05:23:25 +00:00
Rafaël Carré
0965e61b11 remove now unused prototype
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31627 a1c6a512-1295-4272-9138-f99709370657
2012-01-08 01:44:08 +00:00
Rafaël Carré
8552824284 ascodec-target.h: remove
move prototypes to ascodec.h
move code to ascodec*.c

YPR0: use adc-as3514.c instead of duplicating it

TODO: merge as3514.h and ascodec.h ?

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31626 a1c6a512-1295-4272-9138-f99709370657
2012-01-08 01:43:16 +00:00
Rafaël Carré
7f2156661c adc-target.h: cleanup
move adc_close() prototype to adc.h
don't duplicate prototypes of adc.h
remove license header and guards for a single include of another file or for empty content

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31623 a1c6a512-1295-4272-9138-f99709370657
2012-01-08 00:39:29 +00:00
Rafaël Carré
95cf63b294 button-target.h : move prototypes to button.h
no need to define BUTTON_REMOTE anymore

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31620 a1c6a512-1295-4272-9138-f99709370657
2012-01-08 00:07:19 +00:00
Rafaël Carré
19fba5fb30 powermgmt-target.h: move prototypes to powermgmt.h
Implement empty stubs if needed instead of empty static inline

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31617 a1c6a512-1295-4272-9138-f99709370657
2012-01-07 22:32:52 +00:00
Rafaël Carré
28d1af853c Clean spi.h and spi-target.h
Only target-specific (list of SPI targets) go in spi-target.h
API go into spi.h

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31615 a1c6a512-1295-4272-9138-f99709370657
2012-01-07 22:04:12 +00:00
Rafaël Carré
12ef8723f8 lcd-remote-target.h: Use only in firmware/target/
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31614 a1c6a512-1295-4272-9138-f99709370657
2012-01-07 20:05:44 +00:00
Rafaël Carré
351c8b2573 move _remote_backlight_* to common header
remove unused REMOTE_INIT_LCD / REMOTE_DEINIT_LCD

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31607 a1c6a512-1295-4272-9138-f99709370657
2012-01-07 19:32:50 +00:00
Rafaël Carré
50f96943be remote_detect(): move to lcd-remote.h
Reorganize lcd-remote.h so it works for iaudio-m3 too

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31605 a1c6a512-1295-4272-9138-f99709370657
2012-01-07 19:07:36 +00:00
Rafaël Carré
666f2e61f0 move lcd remote common declarations to lcd-remote.h
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31604 a1c6a512-1295-4272-9138-f99709370657
2012-01-07 18:34:09 +00:00
Rafaël Carré
b5e879e837 TARGET_TREE is not needed anymore
spotted by jhMikeS

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31597 a1c6a512-1295-4272-9138-f99709370657
2012-01-07 17:14:40 +00:00
Amaury Pouly
ed93d123dc fuze+: #define TARGET_EXTRA_THREADS because of the extra touchpad thread. Should fix mpeg player not working
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31596 a1c6a512-1295-4272-9138-f99709370657
2012-01-07 16:29:14 +00:00
Frank Gevaerts
4fcffcbdf3 Reorganise USB initialisation to not depend on a specific enumeration sequence, by Bartosz Fabianowski, with minor tweaks by Michael Sevakis (FS#12497)
FreeBSD apparently sends a SET_ADDRESS first, which confused our code.
This patch fixes that, and also simplifies the connection handling a bit.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31582 a1c6a512-1295-4272-9138-f99709370657
2012-01-04 21:55:09 +00:00