Commit graph

314 commits

Author SHA1 Message Date
Thomas Martitz
e4921d6ab5 Speed up lcd_update_rect by ~2.5% by counting towards 0 in the loop.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23329 a1c6a512-1295-4272-9138-f99709370657
2009-10-24 16:01:53 +00:00
Thomas Martitz
d85c3ec410 Convert lcd_activation callbacks to use the event system to allow for multiple parallel callbacks (for custom statusbar).
Increase maximum event count as we need more (I actually had a report about it during custom statusbar testing).
Removed corresponding functions from the core and plugin api. Bump min version and sort.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23302 a1c6a512-1295-4272-9138-f99709370657
2009-10-20 21:54:59 +00:00
Jack Halpin
c5a3f93ac3 AMS Sansa: Adjust SD Card frequency to Identification frequency at beginning of card init instead of the end of pl180 controller init.
If a card is reinitialized now the ident frequency is used instead of the bypass frequency during the identification phase.

Added comments throughout sd_init_card() to help follow init process and highlight indent stage.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23256 a1c6a512-1295-4272-9138-f99709370657
2009-10-19 05:34:25 +00:00
Bertrik Sikken
d24d885aa4 Use wrap-safe TIME_BEFORE/TIME_AFTER macros to compare times with current_time, instead of comparing them directly.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23246 a1c6a512-1295-4272-9138-f99709370657
2009-10-18 15:50:30 +00:00
Nils Wallménius
f34a841b0c Revise r23225 a bit, removing the debug_printf function and implementing more generic lcd_(remote)_putsf function(s) instead and use those in more places
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23233 a1c6a512-1295-4272-9138-f99709370657
2009-10-17 18:02:48 +00:00
Jack Halpin
000cff5bae AMS Sansa: Lower ADC checkvalue for voltage scaling to 1.175V as some players run slightly low.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23205 a1c6a512-1295-4272-9138-f99709370657
2009-10-16 17:44:23 +00:00
Jack Halpin
562e41bae5 AMS Sansa: FS#10669 Reimplement Voltage scaling.
Reimplement voltage scaling on AMS Sansas at 1.10v during unboosted operation to improve runtimes.  The voltage is now also boosted during disk access if a µSD is present.  This prevents the µSD problems we saw on the last implementation.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23193 a1c6a512-1295-4272-9138-f99709370657
2009-10-15 19:48:26 +00:00
Rafaël Carré
19d70fce20 Sansa Fuze & e200v2 : do not enable USBSTACK in the bootloader
Don't implement usb_enable() is HAVE_USBSTACK is not defined

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23185 a1c6a512-1295-4272-9138-f99709370657
2009-10-15 10:23:18 +00:00
Rafaël Carré
8bd8d06842 Sansa AMS USB driver : still not working
Implement usb_enable()
Reorder/Modify usb_drv_init() to match closer the OF and remove a freeze
(USB registers were accessed before the USB module was enabled)
Add a panic in USB isr to be sure we notice when it's called
Reset GPIOA direction for usb_detect() to notice extraction
Add some comments

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23184 a1c6a512-1295-4272-9138-f99709370657
2009-10-15 10:03:20 +00:00
Rafaël Carré
5303ab101b Sansa AMS SD driver: cleanup defines and comments
Remove useless E200V2 || FUZE || C200V2 : all those models have
MULTIDRIVE and/or HOTSWAP defined and have no specific difference.

Correct some comments

Remove HAVE_MULTIDRIVE within HAVE_HOTSWAP since HOTSWAP imply MULTIDRIVE

Change HOTSWAP to MULTIDRIVE where needed

Use NUM_DRIVES in sd_num_drives()

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23180 a1c6a512-1295-4272-9138-f99709370657
2009-10-15 07:16:38 +00:00
Rafaël Carré
0290094d8a Sansa AMS PCM : replace buggy and confusing one-liner
The bits which are not divider (i2si/i2so enable and clock selection)
would be unset.
This is not a problem in the current code since this function was always
called before starting playback (and setting those bits) but this might
be a problem when recording is enabled.

Finally it is simpler to read.

Thanks to Fred Bauer for pointing this.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23156 a1c6a512-1295-4272-9138-f99709370657
2009-10-13 16:41:20 +00:00
Jack Halpin
7331bd5381 AMS Sansa: Remove BUSWIDTH and BLOCKLEN commands and revise strategy for High Speed SD Card.
We are unable to successfully put the pl180 controller into 4 bit mode so we should not put the cards into widebus mode for now.
The blocklength is hardcoded to 512 in sd.c and BLOCKLEN defaults to 512 so this command is not needed.
It appears the internal SD card is not HS capable but sending it the HS switch command does not seem to hinder it's init process.
Assume all SD_V2 cards are HS capable and send them the HS switch command.
If View disk info shows 50.0 MBit/s the card has HS timings.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23137 a1c6a512-1295-4272-9138-f99709370657
2009-10-12 18:55:10 +00:00
Jack Halpin
14079c39f0 AMS Sansa: If SD card is HS capable set High Speed timings.
This still doesn't solve the problem of the cards being overclocked at 62MHz but we can mitigate this a bit by switching to HS timings.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23088 a1c6a512-1295-4272-9138-f99709370657
2009-10-11 03:11:13 +00:00
Thomas Martitz
faddb57482 Fuze/e200v2: Fix inaccuracy when moving the wheel slowly (fixes FS#10667).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23059 a1c6a512-1295-4272-9138-f99709370657
2009-10-09 23:27:38 +00:00
Rafaël Carré
7cc6202c03 Sansa AMS SD: relax requirement for APP_CMD response, some uSD cards seem to not set correctly the response bits
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23001 a1c6a512-1295-4272-9138-f99709370657
2009-10-07 20:34:58 +00:00
Jack Halpin
1c36835b80 AMS Sansa: Replace another simple delay with a more intelligent MCI FIFO status check.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22864 a1c6a512-1295-4272-9138-f99709370657
2009-10-01 03:54:36 +00:00
Thomas Martitz
29c06f6c63 e200v2/Fuze: Improve scrollwheel a little bit by assuming the previous wheel value if no new value was found (which happens if a single wheel value was skipped). Only assume it once to not get wrong readings.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22863 a1c6a512-1295-4272-9138-f99709370657
2009-10-01 00:28:03 +00:00
Jack Halpin
bf3d60b25e AMS Sansa: Rename variable sdhc to sd_v2 to more accurately reflect the information it holds.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22862 a1c6a512-1295-4272-9138-f99709370657
2009-09-30 20:33:40 +00:00
Rafaël Carré
6bd92a74d3 Fix "lcd driver speed up" on e200v2
Flyspray: FS#10272
Author: Michael Chicoine

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22859 a1c6a512-1295-4272-9138-f99709370657
2009-09-30 18:54:42 +00:00
Jack Halpin
37265d308b AMS Sansa: Replace simple write delay with a smarter check on status of MCI FIFO.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22850 a1c6a512-1295-4272-9138-f99709370657
2009-09-29 16:32:24 +00:00
Bertrik Sikken
69b40e704d Clean up duplicate #includes
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22845 a1c6a512-1295-4272-9138-f99709370657
2009-09-27 14:46:44 +00:00
Bertrik Sikken
66d5bd7cf8 Sansa Fuze/e200v2: protect lcd a little better against concurrent access
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22838 a1c6a512-1295-4272-9138-f99709370657
2009-09-26 10:47:10 +00:00
Jack Halpin
68089db6db AMS Sansa: Add delay for µSD writes to fix CRC failures with class 6 µSD cards.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22825 a1c6a512-1295-4272-9138-f99709370657
2009-09-25 01:38:51 +00:00
Jack Halpin
589e1f0072 AMS Sansa: Adjust View HW info page to display SD and uSD MCICLK freqs instead
of 400 khz Ident freq.  Also misc formatting changes.

Displaying the 400 khz ident frequency for the SD and uSD cards was not really
useful information.  This change displays the MCICLK frequency that we are
running the cards at.  The page now displays 0MHz until a card access and then
will displays the set frequency and the actual frequency.  The uSD display is
now only displayed for those players with a uSD

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22684 a1c6a512-1295-4272-9138-f99709370657
2009-09-12 20:50:11 +00:00
Thomas Martitz
b54b066516 Higher the button delay on the fuze a bit more, the wrong hold button reads aren't happening anymore apparently even for plugins with heavy lcd updates.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22658 a1c6a512-1295-4272-9138-f99709370657
2009-09-07 23:48:51 +00:00
Bertrik Sikken
533c29b2f2 Sansa c200v2: update DBOP button reading mechanism, this enables readout of the volume buttons, rec and hold button.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22635 a1c6a512-1295-4272-9138-f99709370657
2009-09-05 18:56:59 +00:00
Thomas Martitz
e91fe1e543 Increase the button delays slightly to aid against sporadic missreads of the hold button an sporadic blue pixels on the display.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22628 a1c6a512-1295-4272-9138-f99709370657
2009-09-05 03:50:11 +00:00
Thomas Martitz
46c719aac8 Make the Fuze usable again by inserting a few delays in the lcd functions, core rockbox should be fine now. NOTE: *After exiting* plugins (e.g. doom, plasma, pictureflow) which do heavy lcd updates, the Fuze still fails (backlight goes off) -- I have no idea how that happens yet, Unless I find a fix for that within the next few days, I'm probably going to revert one/both of the lcd speedup commits.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22627 a1c6a512-1295-4272-9138-f99709370657
2009-09-05 03:50:04 +00:00
Thomas Martitz
6f9fde95a5 Move the FIFO emptying up, as having it after lcd_write_single_data16() causes problems with uneven transfers (I'm not sure why).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22581 a1c6a512-1295-4272-9138-f99709370657
2009-09-01 02:06:37 +00:00
Thomas Martitz
b9093b2b35 Fuze/e200v2: Speed up the LCD further by letting the FIFO fill until it's full instead of keeping it almost empty.
The blue bars I previously had with this way are fixed by blocking DBOP output while reading buttons from GPIO.
We reached the maximum fps even at unboosted now (100.0 fps at lcd_update(), DBOP can't do more). Optimisation to YUV stuff is still possible though.
The e200v2 scrollwheel is very improved due to the this and the previous speedup since the chance of getting the wheel read blocked is greatly decreased with faster updates.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22578 a1c6a512-1295-4272-9138-f99709370657
2009-09-01 00:42:22 +00:00
Dominik Wenger
a56199c49e Apply the lcd speed fix from fuze also to e200v2. Improves speed by a factor ~2.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22575 a1c6a512-1295-4272-9138-f99709370657
2009-08-31 20:45:26 +00:00
Thomas Martitz
7dd548c697 Speed up the Fuze's LCD by a factor of ~2.1 (lcd_update()) by using 32bit transfers when possible.
Unaligned (to 4byte boundary) and odd (where the amount of data is not an integer multiple of 32bit) are still supported. Even those still have a speedup of >2.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22574 a1c6a512-1295-4272-9138-f99709370657
2009-08-31 15:54:25 +00:00
Rafaël Carré
6932fa397b Sansa Clip & m200v4 : calls backlight_hold_changed() when hold button is toggled
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22323 a1c6a512-1295-4272-9138-f99709370657
2009-08-15 15:02:51 +00:00
Rafaël Carré
be6dd6dd0a Sansa AMS: identify interrupts with no source set
They would previously appear like coming from the (disabled) watchdog
module

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22251 a1c6a512-1295-4272-9138-f99709370657
2009-08-11 13:20:55 +00:00
Thomas Martitz
4210ff584a Remove the comment also, Thanks to Rafaël Carré for spotting.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22245 a1c6a512-1295-4272-9138-f99709370657
2009-08-10 22:01:35 +00:00
Thomas Martitz
653db606cf Fix FS#10486 - "fuze screen not drawn correctly on backlight turn-on if playlist ends while the backlight is off" by adding a lcd_update() to lcd_enable() as other targets do. Remove the delay as it seems unneeded nowadays.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22244 a1c6a512-1295-4272-9138-f99709370657
2009-08-10 21:38:10 +00:00
Bertrik Sikken
978f3798a9 Apply FS#10447 - e200v2 lcd driver cleanup by Michael Chicoine
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22210 a1c6a512-1295-4272-9138-f99709370657
2009-08-08 14:37:42 +00:00
Frank Gevaerts
a7548d3bc7 Make sd_present() and mmc_present() look only at the actual presence of a card, not at initialisation state
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21981 a1c6a512-1295-4272-9138-f99709370657
2009-07-20 13:47:21 +00:00
Michael Giacomelli
e362aeb61f Commit FS#10413 by Michael Chicoine. Fixes upside down menu in mpegplayer when watching videos with the screen inverted.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21942 a1c6a512-1295-4272-9138-f99709370657
2009-07-18 01:38:17 +00:00
Frank Gevaerts
c0a5a67387 Commit FS#9545, storage cleanup and multi-driver support
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21933 a1c6a512-1295-4272-9138-f99709370657
2009-07-17 22:28:49 +00:00
Thomas Martitz
fd17a8d637 Apply the same fix as r21930 did for the ramdisk for the AMS Sansa driver.
Nothing should change, since the value of transfer didn't change in the == case, but it saves executing this case at least.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21931 a1c6a512-1295-4272-9138-f99709370657
2009-07-17 21:50:36 +00:00
Jack Halpin
f9e7a5ad39 AMSSansa: Use single adc_read instead of multiple ascodec_reads to read voltage for display in View HW info.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21804 a1c6a512-1295-4272-9138-f99709370657
2009-07-12 14:12:45 +00:00
Jens Arnold
47d4c4739b ARM asm LCD and ATA driver functions: Don't save r12 as it is a scratch reg. Saves a bit of stack and execution time.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21795 a1c6a512-1295-4272-9138-f99709370657
2009-07-11 23:43:44 +00:00
Rafaël Carré
17ac0d7ff9 fix yellow : panicf() is declared in panic.h
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21780 a1c6a512-1295-4272-9138-f99709370657
2009-07-11 15:26:58 +00:00
Rafaël Carré
405d12de7e Sansa AMS: panic with the PL180 controller status register in case of errors
The maximum number of errors is 10 (arbitrary)
A recovery mechanism is not in place (yet) but could be implemented in the future

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21776 a1c6a512-1295-4272-9138-f99709370657
2009-07-11 14:27:26 +00:00
Rafaël Carré
75fa699814 Sansa AMS: handle properly SD transfer errors
clocks disabling and mutex unlocking were not made in case of errors

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21773 a1c6a512-1295-4272-9138-f99709370657
2009-07-11 13:46:10 +00:00
Thomas Martitz
161cb164ca Adding last minutes comments to explain things is only cool if you close it also (aka fix yellow).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21745 a1c6a512-1295-4272-9138-f99709370657
2009-07-10 15:44:38 +00:00
Thomas Martitz
e7f0c3f397 Rearrange things a bit for less #ifdefs and less duplication.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21744 a1c6a512-1295-4272-9138-f99709370657
2009-07-10 15:32:02 +00:00
Rafaël Carré
c51e26a43d Sansa AMS SD driver: fix error checking in µSD insertion
If µSD init fails, rockbox will panic and give an error number
Use a maximal delay of 1 second for µSD (and internal storage) init, as
specified in the SD Specification 2.00

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21742 a1c6a512-1295-4272-9138-f99709370657
2009-07-10 12:51:50 +00:00
Rafaël Carré
03fe562a95 Sansa AMS: display the virtual led icon on disk transfers
Sansa PP: directly use led() function, remove useless sd_led()

Thanks to mc2739 (Michael Chicoine)

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21693 a1c6a512-1295-4272-9138-f99709370657
2009-07-06 16:44:57 +00:00