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
* Introduce CONFIG_BATTERY_MEASURE define, to allow targets (application)
to break powermgmt.c's assumption about the ability to read battery voltage.
There's now additionally percentage (android) and remaining time measure
(maemo). No measure at all also works (sdl app). If voltage can't be measured,
then battery_level() is king and it'll be used for power_history and runtime
estimation.
* Implement target's API in the simulator, i.e. _battery_voltage(), so it
doesn't need to implement it's own powermgmt.c and other stubs. Now
the sim behaves much more like a native target, although it still
changes the simulated battery voltage quickly,
* Other changes include include renaming battery_adc_voltage() to
_battery_voltage(), for consistency with the new target functions and
making some of the apps code aware that voltage and runtime estimation
is not always available.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31548 a1c6a512-1295-4272-9138-f99709370657
Enabled a PMIC event where it should be disabled. Used constant from wrong enum
to get sense bits (??) which messed up main charger detection.
Also remove an obsolete struct declaration.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31536 a1c6a512-1295-4272-9138-f99709370657
Dispense with "pmic" thread and process PMIC events directly within ISR. Add
sense bit reading as part of the handling.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31528 a1c6a512-1295-4272-9138-f99709370657
In lcd_power_on(), R_DRV_OUTPUT_CONTROL and R_GATE_SCAN_START_POS are now
initialized like in lcd_set_flip(), so the display wakes up properly when it
is supposed to be upside down.
Thanks to Neil Sharrow for reporting the problem and testing the patch.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31514 a1c6a512-1295-4272-9138-f99709370657
Synchronous cable read is still required because the timing of the receipt of
the cable event cannot be known for sure-- basically it introduced a thread
race between main and pmic. If a keypress is desired instead to enter BL USB
mode a la AS3525, then it's possible to remove that.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31510 a1c6a512-1295-4272-9138-f99709370657
as3525v2 specific part is 400 LoC, ipod specific less than 300
(comments and whitespace included)
TODO: merge properly
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31509 a1c6a512-1295-4272-9138-f99709370657
Scheme is more flexible and should help to enable threadless RDS.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31461 a1c6a512-1295-4272-9138-f99709370657
This commit changes the default HDD endianness to the correct one,
but stays compatible with the old endianness.
If an MBR with the wrong endianness is detected, it will
automatically enable word swapping and issue a warning splash.
To permanently fix this you'll need to upgrade emCORE to at least r836.
This will wipe all data! A post-r836 build of emCORE will be
officially released during the next couple of days.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31455 a1c6a512-1295-4272-9138-f99709370657
Might as well rename spi_enable_module to spi_enable_node for consistency
as well so long as I'm being picky.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31442 a1c6a512-1295-4272-9138-f99709370657
Unify spi_enable/disable_module into one spi_enable_module call for API
consistency's sake with I2C driver.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31441 a1c6a512-1295-4272-9138-f99709370657
DEBUG_GIO allows users to set any GIO options (direction, output state). As this feature should be used only by experienced users it is compiled conditionally.
Raise I2C delay values since udelay() is now precise and previous values seems to be too low for some devices.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31421 a1c6a512-1295-4272-9138-f99709370657
On this player EMIF is needed for accessing NOR flash. Disabling it improves battery runtime by about 25 minutes.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31373 a1c6a512-1295-4272-9138-f99709370657
assigning a partially initialized structure (through casting) will
initialize members unspecified in the initialization
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31372 a1c6a512-1295-4272-9138-f99709370657
This improves battery runtime on Sansa Connect by approximately 40 minutes.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31358 a1c6a512-1295-4272-9138-f99709370657
This improves framerate update (when uboosted, approximate values) from 151 fps to 911 fps for whole screen update and from 432 fps to 3017 fps for quarter screen update.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31357 a1c6a512-1295-4272-9138-f99709370657
Nick some aspects from the as3525 ascodec driver to improve throughput in
the beast's SPI communications by switching tranfer descriptors to the
caller's stack and getting rid of thread synchronization.
Fix a bug that suddenly became obvious that could permanently stall the SPI
driver because all data could be shifted out before the interrupt could get
serviced. In that case, it needs a kick to restart it. Should probably put
the SPI interrupt priority above DVFS.
A tweak to the event registration interface to simplify it.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31353 a1c6a512-1295-4272-9138-f99709370657
Vectors are needed by the CPU, but they don't need to be accessed by Rockbox.
Without the KEEP(), they can be removed when liking with --gc-sections,
creating a broken binary without any warnings. This tells the linker to not
remove them. It should enable use of --gc-sections for all targets. When not
using --gc-sections, this does not change the binary.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31351 a1c6a512-1295-4272-9138-f99709370657
When a global pointer is not declared as constant, gcc will put it in
memory. Getting the address of the string it points to requires loading
the address of the pointer and then loading the pointer. When the pointer
is declared constant, the address of the string is loaded directly.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31345 a1c6a512-1295-4272-9138-f99709370657
* Add wildcards to various sections placements a la *(".text") => "*(.text*)"
* Remove hacky bits from those linker scripts (no problem encountered testing)
* Change section for asm functions from .<section> to .<section>.<function>
so that -ffunction-sections works for those asm file too.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31337 a1c6a512-1295-4272-9138-f99709370657
Massage the way it interfaces a bit to make things more flexible.
The chroma_buf scheme on Sansa Connect and Creative ZVx calling the
lcd_write_yuv420_lines implementation in lcd-as-memframe.S with five params
with a chroma buffer that the function can't use wouldn't work anyway so just
have them use the stock implementation (really, how was that working?).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31335 a1c6a512-1295-4272-9138-f99709370657
For this commit: Sansa e200v1, Gigabeat F, Gigabeat S and Mini2440 are
changed over. Quite a number of other targets probably can be as well.
General LCD code is moved out of the target drivers into
drivers/lcd-memframe.c.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31311 a1c6a512-1295-4272-9138-f99709370657
add a comment about why we don't return 0 when no tuner was detected
build the file on all as3525v2 targets
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31284 a1c6a512-1295-4272-9138-f99709370657
This should prevent buffer underruns that can occur during heavy use of buttons or scrollwheel.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31267 a1c6a512-1295-4272-9138-f99709370657
fix another mistake introduced in r31222
usb-drv-as3525v2 additionally sets bit DEPCTL_usbactep in this function.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31266 a1c6a512-1295-4272-9138-f99709370657
0x00200000 is DEPCTL_stall, not DEPCTL_naksts
the function names should have been a strong indication..
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31265 a1c6a512-1295-4272-9138-f99709370657
output pins were not correct
xor pin readout with initial value (reversed between the 2 clips)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31255 a1c6a512-1295-4272-9138-f99709370657
use 0, 1, 3 as input endpoints instead of 0, 3, 5 (0, 1, 3, 5 doesn't work)
use a helper to know the number of endpoints (could be hardcoded since we have 3 input and 3 outputs)
previous check was not correct (sizeof(if?a:b))
change endpoint reset/request
set packet size at enumdone interrupt
we don't have isochronous or interrupt endpoints, remove that table
reverse usb_drv_transfer direction argument (in -> out)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31251 a1c6a512-1295-4272-9138-f99709370657
usb_drv_request_endpoint() would return an endpoint with the other direction
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31248 a1c6a512-1295-4272-9138-f99709370657
DIEPINT_timeout and DOEPINT_setup are the same bit
Use separate cases so the code is more clear
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31242 a1c6a512-1295-4272-9138-f99709370657
Merge clipv1/clipv2 code since they use the same 3x3 matrix
clipzip keyscan buttons now work in bootloader
clipplus untouched (no matrix)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31235 a1c6a512-1295-4272-9138-f99709370657
fuze+: reset the controller for all lcd types, should fix the "CRT effet"
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31234 a1c6a512-1295-4272-9138-f99709370657
code, especially init sequence, is much more similar to usb-s3c6400x.c
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31231 a1c6a512-1295-4272-9138-f99709370657
Use common defines in usb-s3c6400.c and usb-drv-as3525v2.c
No functional changes
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31220 a1c6a512-1295-4272-9138-f99709370657