Commit graph

283 commits

Author SHA1 Message Date
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
Thomas Martitz
cabd45086a sAMSa: Turn the backlight off before rebooting to avoid irritating lcd flash.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21692 a1c6a512-1295-4272-9138-f99709370657
2009-07-06 14:46:19 +00:00
Rafaël Carré
e3636a8f32 Samsa SD driver : acknowledge USB events, now reboots on USB insertion
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21690 a1c6a512-1295-4272-9138-f99709370657
2009-07-06 14:20:52 +00:00
Rafaël Carré
c1780af9fc Samsa AMS: start of an USB driver (nothing working atm)
Work based on AMD 5536 linux driver and AMD Geode CS5536 datasheet
Rockbox still doesn't reboot on USB insert

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21689 a1c6a512-1295-4272-9138-f99709370657
2009-07-06 13:54:51 +00:00
Thomas Martitz
c292a8eb1f Sansa AMS: Disable voltage scaling for now until we found a way to make it reliable for everyone, it's causing problems with storage for many people.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21687 a1c6a512-1295-4272-9138-f99709370657
2009-07-06 13:13:47 +00:00
Rafaël Carré
4368b59b09 Sansa AMS : don't reinvent adc_read(), patch by FlynDice
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21651 a1c6a512-1295-4272-9138-f99709370657
2009-07-05 09:24:56 +00:00
Michael Giacomelli
7131ddb105 ARM922T's icache isn't coherent with its dcache, so we need to ensure that its flushed before changing codecs. Playback takes care of this for us, but only if we define cache coherency functions. Do that. Also, add a comment explaining that MMU functions need to be included so that other people don't spend hours chasing them in the future.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21647 a1c6a512-1295-4272-9138-f99709370657
2009-07-05 01:17:25 +00:00
Rafaël Carré
293b499093 Move sd_get_info() into common sd code
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21610 a1c6a512-1295-4272-9138-f99709370657
2009-07-01 23:39:57 +00:00
Maurus Cuelenaere
ccbd8f4f31 * Move some more stuff to the general SD driver
* Ingenic SD driver: cleanup DMA part a bit (not working yet)


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21606 a1c6a512-1295-4272-9138-f99709370657
2009-07-01 22:56:14 +00:00
Rafaël Carré
c0eb9aeb9e add firmware/driver/sd.c which contains common code between SD drivers
ingenic SD driver needs more cleanup so it still doesn't use the common code
correct a comment in hotswap.c: card_extract_bits assume most significant word of register first (so, use this order)
fix debug menu which used MMC specific commands / bits positions in csd/cid
move the default block size of 512 into sd.h
move the mantissa & exponent table into a single file (sd.c) to reduce binsize. we don't need to export it anymore anyway

TODO : ingenic cleanup (will happen soon so building sd.c is not conditional)

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21601 a1c6a512-1295-4272-9138-f99709370657
2009-07-01 21:49:13 +00:00
Rafaël Carré
e0e24cbf0a Merge tCardInfo struct (MMC) and tSDCardInfo struct (SD)
Put specific members under #ifdef (CONFIG_STORAGE & STORAGE_xx) (2 members for SD and 1 for MMC)
Fix a typo: tsac doesn't exist and must be read taac
Move card_get_info functions declaration inside hotswap.h to remove mutual inclusion of ata_mmc.h and hotswap.h
Move static const data structures from SD drivers into sd.h (sd_exponent and sd_mantissa)
Fix sd_command prototypes in SD drivers (card registers are unsigned long)
Fix speed calculation in Sansa AMS driver (PP SD driver needs to be checked)
Move ata-sd-target.h to sd-pp-target.h to reflect the PP specifity. Now it only contains declaration of microsd_int()
Remove unused ata-sd-target.h for injenic

TODO:
- check if CSD register bits are extracted correctly in PP driver
- correctly define read_timeout and write_timeout unit for MMC & SD, and use timeouts in Sansa AMS driver

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21586 a1c6a512-1295-4272-9138-f99709370657
2009-07-01 10:07:22 +00:00
Jack Halpin
c929310e55 AMSSansa: Corrects bug introduced with r21577 causing random lockups on AMSSansas.
The input to the ADC is now set to CVDD inside the while loop.  If the input gets changed while waiting for the voltage to be read it will now be reset to CVDD before the next read is attempted.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21584 a1c6a512-1295-4272-9138-f99709370657
2009-07-01 04:47:36 +00:00
Jack Halpin
e905ca61d4 FS#10344 - AMSSansa Dynamically adjust core voltage to extend playtime.
Lower CVDD core voltage to 1.10 volts when the frequency is less than 200 MHz.

 

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21577 a1c6a512-1295-4272-9138-f99709370657
2009-06-30 17:56:21 +00:00
Rafaël Carré
ed75cc09f1 Sansa AMS : use the aligned buffer in bss for all DMA transfers
This was only used for data transfers, now use it also for card data
transfers in sd_select_bank, to save runtime alignement and stack usage.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21564 a1c6a512-1295-4272-9138-f99709370657
2009-06-29 18:14:26 +00:00
Rafaël Carré
ffefe0c08b Put TIMER_FREQ definition in CPU-specific config, and remove timer-target.h
Note : SH has TIMER_FREQ defined to CPU_FREQ, so any code wanting it must include #config.h before #cpu.h

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21560 a1c6a512-1295-4272-9138-f99709370657
2009-06-29 14:30:12 +00:00
Rafaël Carré
c5dedd7d76 Remove the TIMER_* macros and declare target-specific functions in timer.h
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21559 a1c6a512-1295-4272-9138-f99709370657
2009-06-29 14:29:57 +00:00
Rafaël Carré
89ccd5c145 Remove int_prio argument from timer_register, and move the only use for it into alpine_cdc plugin, since this plugin is only built on SH7034
Also remove it from TIMER_START()

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21558 a1c6a512-1295-4272-9138-f99709370657
2009-06-29 14:29:46 +00:00
Rafaël Carré
b3ed33d04a Move SH7034 timer code in the target tree
Add an argument int_prio to TIMER_START() macro because SH7034 needs it
Leaves a target specific code in timer_register (could be given to target code through timer_set and __timer_set() )

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21556 a1c6a512-1295-4272-9138-f99709370657
2009-06-29 14:29:14 +00:00
Rafaël Carré
e0640c3c4b Rename TIMER_REGISTER macro to TIMER_START and TIMER_UNREGISTER to TIMER_STOP to reflect what they does exactly.
registering and unregistering are handled by the non target-specific functions of timer.c
Remove arguments from the new TIMER_START since they are unused by targets

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21553 a1c6a512-1295-4272-9138-f99709370657
2009-06-29 14:28:56 +00:00
Rafaël Carré
15e40dd3a6 Move Sansa AMS timer code in the target tree
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21552 a1c6a512-1295-4272-9138-f99709370657
2009-06-29 14:28:49 +00:00
Rafaël Carré
529855e79b Sansa AMS: correct sd_select_bank() in SD driver
Put the card data sent by DMA aligned on cache line size, and in uncached memory

Since sd_select_bank() is not used very often, still allocate the DMA buffer on the stack.

If you still experience any problems with this commit please report them after having formatted your player and reinstalled rockbox

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21550 a1c6a512-1295-4272-9138-f99709370657
2009-06-29 11:56:49 +00:00
Maurus Cuelenaere
e59c4ffc82 Fix some forgotten OR's in some button-target.h files
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21501 a1c6a512-1295-4272-9138-f99709370657
2009-06-24 22:13:37 +00:00
Rafaël Carré
d86cf998e8 Sansa AMS debug: small fixes
- Indentation fix
- Put braces around _DEBUG_PRINTF macro
- read_cp15() is only 1 instruction so inline it, and it doesn't access memory

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21477 a1c6a512-1295-4272-9138-f99709370657
2009-06-23 13:54:05 +00:00
Thomas Martitz
8fb4aea702 FS#10284 - "Sansa e200v2 & Fuze: Merge the button driver into 1 file" by Dustin Skoracki
Those two drivers were so similar, merging them is worth a few more #ifdefs.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21474 a1c6a512-1295-4272-9138-f99709370657
2009-06-22 22:24:58 +00:00
Bertrik Sikken
fa4135e43d Fix delays in generic i2c driver, reduce delays in ams sansa fmradio i2c driver (tested on m200v4, clip, e200v2, fuze).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21421 a1c6a512-1295-4272-9138-f99709370657
2009-06-20 21:45:04 +00:00
Bertrik Sikken
f81ce592e5 Enable charging on the Sansa Fuze (charging/discharging curves are still uncalibrated)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21394 a1c6a512-1295-4272-9138-f99709370657
2009-06-20 14:29:21 +00:00
Rafaël Carré
753064fccf Sansa AMS: fix yellow for models with buttonlight & without multivolume
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21343 a1c6a512-1295-4272-9138-f99709370657
2009-06-18 23:03:10 +00:00
Rafaël Carré
e2ec2fe391 Apply FS#10306 to Sansa c200v2 (fix build in the same time)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21341 a1c6a512-1295-4272-9138-f99709370657
2009-06-18 22:45:30 +00:00
Rafaël Carré
1e787a9911 FS#10306 by Thomas Martitz : button light doesn't change on SD transfers on Sansa AMS (Fuze & e200v2)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21340 a1c6a512-1295-4272-9138-f99709370657
2009-06-18 22:33:02 +00:00
Rafaël Carré
0181bc42c9 Sansa c200v2 : support more hardware
Don't read the buttons from GPIOC but from DBOP_DIN (all directional buttons + select)
Still missing hold, rec, volume up and volume down
Read microsd
Tuner is a si4700 but seems to suffer from the same problem than e200v2
Sound works

TODO: missing buttons, lcd yuv, test lcd performance (the c200v1 lcd performance has decreased since r21321 : needs to be investigated)

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21330 a1c6a512-1295-4272-9138-f99709370657
2009-06-18 15:05:59 +00:00
Rafaël Carré
3520d8e90e Sansa c200v2 : lcd & backlight support, using the c200v1 lcd driver
The LCD driver is unified and lcd_send_command now takes 2 arguments : the command and its argument.
    If there is no argument, it's set to 0 and a NOP command is issued
    If there is more than one argument (set X/Y address), the 2nd argument is sent as a 2nd command, and a NOP command is issued after it.
    Benefit : c200v2 transfers the command and the argument in one 16 bits transfer
    Performance should not be affected since commands without argument are only used in lcd_init() and lcd_enable()

lcd_send_data() now transfers whole lines (or columns) instead of single pixels
yuv is disabled for c200v2 for now

Some buttons can be read, including left button (bit 6 of DBOP_DIN), but for some reason they have no effect in rockbox: to be investigated

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21321 a1c6a512-1295-4272-9138-f99709370657
2009-06-17 19:55:27 +00:00
Rafaël Carré
02a53fd809 Sansa AMS: add a comment in sdram_init(), and use inline asm to set the SDRAM mode register
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21282 a1c6a512-1295-4272-9138-f99709370657
2009-06-13 23:52:13 +00:00