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
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
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
- 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
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
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
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
Those are the recommended maximal timeouts in §4.6.2
Despite that, some people still experiment problems with the SD driver since MMU and data cache were enabled
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21247 a1c6a512-1295-4272-9138-f99709370657
- cache IRAM and DRAM
- map IRAM just next to DRAM to remove the need for -mlong-calls and reduce binsize
- tweak delays in Fuze button code
- tweak delays in Clip button code (down button sometimes doesn't respond anyway : an alternate driver is being worked on)
Before reporting any problem, please check your filesystem or format your player from the OF
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21228 a1c6a512-1295-4272-9138-f99709370657
Instead use a private KERNEL_TIMER_FREQ define which is dependant on HAVE_SCROLLWHEEL
Comment that call_tick_tasks() will read the scrollwheel
Remove the unneeded volatile type qualifier from poll_scrollwheel
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21187 a1c6a512-1295-4272-9138-f99709370657
*Correct/update some comments
*Make BUTTON_REPEAT generation more relable (do it like the e200v2, but with a shorter repeat intervall)
*adjust button_delay
*remove unecessary wait for fifo empty (no lcd function returns with fifo not empty)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21166 a1c6a512-1295-4272-9138-f99709370657
With a few modifications by me:
Return 0MHz for PLL disabled (PLLB)
Mention if i2si and i2so are on or off
Simplify scrolling (for small & large displays)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20987 a1c6a512-1295-4272-9138-f99709370657
i2c clock frequency uses pclk as reference, not plla
i2c clock divider is only 10 bits, not 16
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20929 a1c6a512-1295-4272-9138-f99709370657
Inline the 2 uses, and use a preprocessor sanity check for identification frequency
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20924 a1c6a512-1295-4272-9138-f99709370657
Fix CGU_DBOP setting
Set PCLK to the exact frequency (62MHz, not the maximal frequency)
Use a better comment for CLK_DIV macro
Use preprocessor safety checks for clock divider sizes to avoid future mistakes (not for SD_IDENT frequency since that check is handled by mci_set_clock_divider)
Use maximal IDE frequency of 66MHz (like OF), not 90MHz like written in AS3525 datasheet. The IDE chip is somehow linked to internal storage, and a too high frequency could affect the storage driver.
Use the same DBOP frequency of 32MHz for all models (like OF, verified clip, fuze, e200v2 and m200v4), compromise between performance and battery life could be added in the future for each target
Performance increase on Sansa Fuze with DBOP freq. set to 64MHz: +12% fps for lcd_update, +1% fps for yuv
Thanks to daytona955 on the forums for his help
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20923 a1c6a512-1295-4272-9138-f99709370657
Fixes various storage related problems like stuttering audio, md5sum and test disk failure and Sansa Fuze's backdrop corruption by using aligned buffers. There's a speed penalty but stability has more priority.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20679 a1c6a512-1295-4272-9138-f99709370657
Activates IRAM for AMS Sansas to be used by codecs and core. Fixes Reboot-on-mp3 and gives speed up on codecs using IRAM in general.
I've made a change: the core/codec ratio is 0x20000/0x30000 instead of 0x10000/0x40000, 0x30000 is way more than codecs currently use (0x14000 at max) and the core might need more than 0x10000.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20678 a1c6a512-1295-4272-9138-f99709370657
DMAC_INT_TC_CLEAR is a write-only reg
HIGH bits of DMAC_SYNC mean synchronisation logic disabled.
Also, according to the OF and to tests, all the peripherals we use run at the same frequency (PCLK?).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20643 a1c6a512-1295-4272-9138-f99709370657
the AMS sansas, which solves the ">2GB problem" (the problem that we could not
access data past 1GB on devices having more than 2GB internal storage).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20577 a1c6a512-1295-4272-9138-f99709370657
a) lcd_enabled() is now lcd_active(), and is available for HAVE_LCD_SLEEP only targets (e.g. ipod video) too. It was depandent on HAVE_LCD_ENALE only before
b) rename the hook accordingly, and implement the hook for other other targets too (e.g. the clip [the only mono target with lcd_enable/lcd_sleep yet, so the code is still in the lcd driver], ipod, fuze, c200)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20331 a1c6a512-1295-4272-9138-f99709370657
1) fix driver from reading invalid home button while lcd updates (use old value then)
2) put in a 1s delay for power button reading after releasing hold
3) revert r20028, I thought it wasn't needed, since I didn't update the bootloader
4) enable hold for the bootloader (even though not really needed, but is consistent with other targets)
5) let button_dbop return DBOP_DIN, and do the reading in button_read_device
6) various cleanups
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20054 a1c6a512-1295-4272-9138-f99709370657
1) put window addressing in a seperate function like on the fuze
2) use fb_data instead of unsigned short
3) change clipping a bit
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20051 a1c6a512-1295-4272-9138-f99709370657