Implement the switch function as specified by the specification,
that is wait for the response AND transfer 64 bytes of data. This
fixes some issue when the SD card take a long time to switch. In
particular waiting 100ms (max per spec) will not work if no data
is transfered in some cases.
Change-Id: Ia22350468018b842e57ce6f6c1a8d676eba97fb8
This adds the application part of alarm wake up. On some targets
like the Fuze+, it will also require a bootloader change to make
sure that the device doesn't power down on alarm wake up (for
example on the Fuze+ the bootloader requires the power button to
be hold sufficiently long, thus preventing alarm wake up to work)
Change-Id: I5d01957852355fddbd48110d3d75a5533f07879e
On the ZEN X-Fi2, the fractiona dividers are gated by the
bootloader and must be ungated before switching emi to pll.
Change-Id: I5df57ed5581054883da4cbb3b4f3ce3539391ab5
Those who have keyclick enabled and are really eagar to record upon
boot can get the samplerate messed up because who gets to set the sample
rate last (recording or mixer) is not currently deterministic.
Change-Id: Icc43ed789cf23f928ca49657cb146445b0c558cb
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>
Causes the track change to go in the wrong buffer (and even be missed
by playback) if the current descriptor for the write index is descriptor
0 because the offset used is "-1" upon track change.
Got nailed by implicit conversion of the % operator dividend to unsigned.
Change-Id: I32538db801ac9d790c8b1b5bd041b09ad4b64d2e
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>
Currently we don't know where the serial number is stored on the
stmp3600. It is probably using the laser fuses but this needs to
be investigated
Change-Id: I1ac25e38b8f65635abb68788ceb65df0a740dabd
The old presets never made sense for Rockbox's EQ. They were apparently
copied from some other software. We have a parametric EQ, that means that
EQ bands can be made wider or narrower. Putting two identical bands side
by side just wastes battery life and adds rounding error. Replacement
presets are on gerrit but they need more work. In the mean time, users
should probably not be using these.
Change-Id: I85213100129fafd3ac0fa1a9438cb4d651bb94cb
The STMP3600 cannot lock some usb bits so there is only a single
status in POWER_STS. Also stmp3600 has no clock bypass and frac
div.
Change-Id: I101f4263bdddeff58e142d10f9b76dd643bf928d
This driver does debouncing and best lradc usage and only requires
a sorted table of values to work, this factoring code as much as
possible.
Change-Id: I84b46f4b08094634e1c5deb5ca9ba20763389e66
The driver is current unused and very minimal. It can used on
targets which have an accessible UART port and it will be used on
some creative targets as backlight control.
Change-Id: Id710d63574aadb0a2d7327b03187506b469470b1
Although everything is implemented, recording still doesn't work,
dma is stuck. Add code for reference until this get a proper fix.
Change-Id: Ifc016b00876230c6d337a5cd4f8bb90b856efac8
The old driver didn't behave nicely because it waiting for
stability which could never arrive on some gestures. The new one
uses a fixed delay and averaging.
Change-Id: I8ff80f373b6792e6d5fc3cfe41b709642e61c38b
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
The lcd data line were not setup as input anymore, making register
reading plain broken and probably lead to bad lcd detection.
Change-Id: I281460f845537c58045f3893261ded5c9c6e53b5
Power management is somewhat different on stmp3700 which doesn't
have the 4.2V rail and completely different on stmp3600 which has
several DCDC. Currently only handle imx233.
Change-Id: Ic7815141286117b74022ffc53cfa48664fd7faac
Using the ssp macros, we can easily handle the stmp3600 which
has a single ssp block. Take care of all the nasty differences
between targets like bus width
Change-Id: If98a091cc262e9e6834f6fb9826f7c5515bfe621
Currently don't do anything on stmp3600 because emi is completely
different. On stmp3700 it is unsure how the pll lock is handled
and this will need more testing.
Change-Id: I3d11282531f54f2ecc4187c0d913e2c61f4de14d