Commit graph

705 commits

Author SHA1 Message Date
Rafaël Carré
ad375c0bbc Revert r26937 (as3525v2: use 248MHz PLL)
This caused mounting of µSD to fail on Fuzev2 in some cases, although
the card is detected properly
This might be the cause of playback glitches (more frequent for lossless
files) on clipv2
Trying to set the main PLL at 384MHz and FCLK at 240MHz didn't work, so
there might be some problems not understood yet

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26979 a1c6a512-1295-4272-9138-f99709370657
2010-06-20 02:01:03 +00:00
Amaury Pouly
b40c300d59 as3525v2-usb: fix yellow about unused functions (they can be resurrected from an older revision if needed)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26976 a1c6a512-1295-4272-9138-f99709370657
2010-06-19 20:49:06 +00:00
Amaury Pouly
485acfba3f as3525v2-usb: remove useless macro
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26973 a1c6a512-1295-4272-9138-f99709370657
2010-06-19 20:40:16 +00:00
Amaury Pouly
04ae1db331 as3525v2-usb: end of massive renaming
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26972 a1c6a512-1295-4272-9138-f99709370657
2010-06-19 20:40:07 +00:00
Amaury Pouly
19b3348656 as3525v2-usb: major code renaming
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26971 a1c6a512-1295-4272-9138-f99709370657
2010-06-19 20:39:57 +00:00
Amaury Pouly
f9242c06d0 as2525v2-usb: coherence fix
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26970 a1c6a512-1295-4272-9138-f99709370657
2010-06-19 20:39:51 +00:00
Amaury Pouly
b5266ce3e5 as3525v2-usb: simplify register definitions
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26969 a1c6a512-1295-4272-9138-f99709370657
2010-06-19 20:39:45 +00:00
Amaury Pouly
1ef8cd769d as3525v2-usb: tweaks things but still doesn't work.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26968 a1c6a512-1295-4272-9138-f99709370657
2010-06-19 20:39:38 +00:00
Amaury Pouly
c1e454d819 as3525v2-usb: rework thing, simplify
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26967 a1c6a512-1295-4272-9138-f99709370657
2010-06-19 20:39:32 +00:00
Amaury Pouly
3603f24370 as3525v2-usb: reorganize thing, don't renable ep0 on enum because it's already done
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26966 a1c6a512-1295-4272-9138-f99709370657
2010-06-19 20:39:28 +00:00
Amaury Pouly
f83328c7b4 as3525v2-usb: don't disable interrupts on bus reset (that was for debug purpose)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26965 a1c6a512-1295-4272-9138-f99709370657
2010-06-19 20:38:45 +00:00
Rafaël Carré
4329512017 fix r26953: use physical address for DMA buffer, also for IRAM
AMSv2 and AMSv1 lowmem put the codec buffer in IRAM so we need to adjust
the address : AS3525_PHYSICAL_ADDRESS macro will do just that

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26954 a1c6a512-1295-4272-9138-f99709370657
2010-06-19 05:55:18 +00:00
Rafaël Carré
ffc7323ec3 sd-as3525*: handle aligned transfers without memcpy()
test_disk shows 1MB transfers are up to 3 times faster
not much difference for 1 or 8 sectors at a time
define STORAGE_WANTS_ALIGN to use the fast path when possible

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26953 a1c6a512-1295-4272-9138-f99709370657
2010-06-19 04:55:10 +00:00
Tobias Diedrich
1510777266 Add mdelay
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26948 a1c6a512-1295-4272-9138-f99709370657
2010-06-19 02:34:56 +00:00
Tobias Diedrich
06fa365fef Comment on mps sizes
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26947 a1c6a512-1295-4272-9138-f99709370657
2010-06-19 02:29:24 +00:00
Rafaël Carré
1d5cc0a505 usb-drv-as3525: set bulk max packet size according to speed
only dump/clean dcache for the needed range

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26946 a1c6a512-1295-4272-9138-f99709370657
2010-06-19 00:26:36 +00:00
Tobias Diedrich
62622277dc With a max delay of 17 seconds before overflow happens limiting to unsigned short shouldn't be necessary.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26939 a1c6a512-1295-4272-9138-f99709370657
2010-06-18 20:04:16 +00:00
Rafaël Carré
3a0c6fb34b as3525v2: use 248MHz PLL (reverse engineered by bertrik)
- cpufreq is now the same than AMSv1
- audio playback frequency should be more accurate
- adjust pclk (24.8MHz on clipv2/clip+, 41.333..MHz on fuzev2) : it is
  still lower than the AMSv1 which use 62MHz on every model

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26937 a1c6a512-1295-4272-9138-f99709370657
2010-06-18 19:56:29 +00:00
Rafaël Carré
61c90fbf3f as3525: cache first read of enrd0 register
We need it for correct charger detection if we boot with charger plugged
because there is no edge interrupt

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26936 a1c6a512-1295-4272-9138-f99709370657
2010-06-18 19:47:58 +00:00
Rafaël Carré
7a9033179f as3525*: make udelay() be a simple busy loop
it achieves all the requirements, work fine on c200v2, and is much simpler

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26933 a1c6a512-1295-4272-9138-f99709370657
2010-06-18 19:14:08 +00:00
Bertrik Sikken
ae64b59afa as3525v2: document PLL bits and show current PLL frequency in the debug menu
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26930 a1c6a512-1295-4272-9138-f99709370657
2010-06-18 18:32:38 +00:00
Rafaël Carré
fd715fa95c as3525*: enable MMU in bootloader
Reserve 1MB of DRAM for loading rockbox and use the rest as BSS
Write sdram setup in assembler and move it to a separate file, together
with MMU init code

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26926 a1c6a512-1295-4272-9138-f99709370657
2010-06-18 17:33:51 +00:00
Tobias Diedrich
68e2023184 Enable display and backlight on panic.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26917 a1c6a512-1295-4272-9138-f99709370657
2010-06-18 13:45:24 +00:00
Tobias Diedrich
8260a79689 Avoid ifdefs
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26908 a1c6a512-1295-4272-9138-f99709370657
2010-06-18 05:07:00 +00:00
Tobias Diedrich
fe47966f0e Move usb-drv-as3525 defines into header file
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26907 a1c6a512-1295-4272-9138-f99709370657
2010-06-18 04:55:55 +00:00
Rafaël Carré
b812465bff as3525: bootloader USB mode
not working yet : an empty drive is detected
won't link on fuzev1: drivers allocated in usb_storage.c are too large

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26905 a1c6a512-1295-4272-9138-f99709370657
2010-06-18 01:47:39 +00:00
Rafaël Carré
6470a9ffd1 sd-as3525: enable writing, sd_enable() and card_get_info_target() in bootloader
They will be needed for USB

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26904 a1c6a512-1295-4272-9138-f99709370657
2010-06-18 01:47:34 +00:00
Rafaël Carré
48313f58e3 usb-drv-as3525: use udelay() and not a C busy loop
Remove redundant "? true : false"

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26903 a1c6a512-1295-4272-9138-f99709370657
2010-06-18 01:47:29 +00:00
Rafaël Carré
b43e15fe57 usb-drv-as3525: build with LOGF_ENABLE undefined
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26902 a1c6a512-1295-4272-9138-f99709370657
2010-06-18 01:47:24 +00:00
Tobias Diedrich
69028d5d31 sd-as3525 was calling dma_release() without calling dma_retain() first, if
no card is in the sd slot.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26896 a1c6a512-1295-4272-9138-f99709370657
2010-06-17 19:14:42 +00:00
Tobias Diedrich
8e8c8dce51 Either the removal of the unneeded flush or the additional epn_info setup
has made it more reliable.  It seems to basically work now, but
somehow when Linux tries to read the partition table and it gets the
"scsi read10" command, the storage_read_sectors(drive=0, start=0, count=8)
call never returns...


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26894 a1c6a512-1295-4272-9138-f99709370657
2010-06-17 17:50:48 +00:00
Bertrik Sikken
ff8e76e9e5 The mystery FM chip in some Sansa Clip+ players has been identified as a RDA5802, so rename files and functions. Also fix several bugs.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26871 a1c6a512-1295-4272-9138-f99709370657
2010-06-16 20:29:08 +00:00
Rafaël Carré
46e1231a44 FS#11402 by me : sd_enable for Sansa AMSv2
Gets a bit more battery life
Adjust current usage, it was a bit too low for Clipv2/Clip+

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26866 a1c6a512-1295-4272-9138-f99709370657
2010-06-16 06:08:04 +00:00
Bertrik Sikken
fcea117d21 Support for mystery FM chip in some Sansa Clip+, FS #11403 by me
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26864 a1c6a512-1295-4272-9138-f99709370657
2010-06-15 20:57:48 +00:00
Amaury Pouly
50e6e896ad usb-as3535v2: add more defines, reorganize/simplify things, add code for interrupt handling
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26810 a1c6a512-1295-4272-9138-f99709370657
2010-06-12 05:26:23 +00:00
Rafaël Carré
d5a27c2fb1 pcm as3525v1: revert 26761 to use faster ASM code
Fix the asm constraints to mark the left output variable as earlyclobber
Thanks to amiconn

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26777 a1c6a512-1295-4272-9138-f99709370657
2010-06-11 14:04:48 +00:00
Rafaël Carré
2f7bb96c3d as3525v1: drop the asm version of mono2stereo
When building with eabi gcc, 2 variables are assigned the same register
This might be a bug in the constraints, but it's just simpler to use C,
even at the cost of 1 cycle per loop

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26761 a1c6a512-1295-4272-9138-f99709370657
2010-06-11 06:39:32 +00:00
Rafaël Carré
45c7498f59 FS#11335 by me: make ARM assembly functions thumb-friendly
We can't pop into pc on ARMv4t when using thumb: the T bit won't be
modified if we are returning to a thumb function
Code running on ARMv4t should use the new ldrpc / ldmpc macros instead
of ldr pc, [sp], #4 and ldm(cond) sp!, {regs, pc}
No modification on pure ARM builds and ARMv5+

Note: USE_THUMB is currently never defined, no targets can currently be
built with -mthumb, see FS#6734

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26756 a1c6a512-1295-4272-9138-f99709370657
2010-06-11 04:41:36 +00:00
Rafaël Carré
4eea33e27d as3525v1: fix r26444 which broke mic recording
preventing the DMA callback to advance in the recording buffer is not
enough in pcm_rec_dma_get_peak_buffer()
we need to prevent it interrupting us while we are copying the left
channel data into the right channel

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26663 a1c6a512-1295-4272-9138-f99709370657
2010-06-07 16:17:32 +00:00
Rafaël Carré
5c9e76a1e0 sd-as3525v2: check the (supposedly) card data line for business when writing
Fix panics when deleting large files from µSD
Tested on problematic Transcend 4GB Class 6

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26631 a1c6a512-1295-4272-9138-f99709370657
2010-06-06 13:47:30 +00:00
Frank Gevaerts
9c43b2ce17 Remove card_enable_monitoring() and use a mutex instead. The card_enable_monitoring() method actually didn't eliminate the possible race conditions it was meant to fix.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26627 a1c6a512-1295-4272-9138-f99709370657
2010-06-06 13:20:47 +00:00
Frank Gevaerts
a0557b23f0 remane hotswap.* to sdmmc.*. The contents have nothing at all to do with hotswapping things
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26598 a1c6a512-1295-4272-9138-f99709370657
2010-06-05 21:12:16 +00:00
Bertrik Sikken
20856e1c10 Move delay a bit in dbop_read_input for ams sansa targets using the DBOP port for button readout
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26585 a1c6a512-1295-4272-9138-f99709370657
2010-06-05 15:57:32 +00:00
Jens Arnold
c4f88526c7 Port greylib blitting optimisation to clipv2 and Clip+. Actual speedup can't be measured because something is fishy with the cpu clocking (calculated load is negative??)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26562 a1c6a512-1295-4272-9138-f99709370657
2010-06-04 23:12:33 +00:00
Jens Arnold
081bda8ab2 Port greylib blitting optimisation to clipv1.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26557 a1c6a512-1295-4272-9138-f99709370657
2010-06-04 21:12:06 +00:00
Tobias Diedrich
3f44f1c151 Using void instead of unsigned char fixes the strict-aliasing warnings with -Os and gets rid of some casts. And we already use void pointer arithmetic in several other places.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26518 a1c6a512-1295-4272-9138-f99709370657
2010-06-03 18:29:06 +00:00
Rafaël Carré
bf3e50b89b sd-as3525v1: do not disable peripheral clocks in sd_enable()
(forward port of r26481 + cosmetics)
This lead to freezes under various conditons (bug report: FS#11267)

Battery life is almost not (if at all) affected:
- between 4 and 8 minutes less runtime for fuzev1
- 9 minutes less runtime for c200v2 (2 minutes difference on a 2 hours run)

Additional verifications of the runtime (including on other models) wouldn't hurt

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26512 a1c6a512-1295-4272-9138-f99709370657
2010-06-03 13:55:42 +00:00
Tobias Diedrich
253cfbcd47 Prevent a race condition when writing VIC_INT_EN_CLEAR. Should be very difficult to hit in this case though...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26451 a1c6a512-1295-4272-9138-f99709370657
2010-06-01 19:29:01 +00:00
Rafaël Carré
df34a4767f as3525 ascodec: make internal functions statics and remove some details for ascodec-target.h header
reorder static functions to avoid the need for early prototypes
panic if the INT_AUDIO callback could not read the 3 IRQ_ENRD registers

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26445 a1c6a512-1295-4272-9138-f99709370657
2010-06-01 10:16:10 +00:00
Rafaël Carré
dc32a5b14c as3525 PCM: implement locking like done for the gigabeats in r26341
this removes workaround for spurious interrupts added in r26316

side effect: make keyclicks work correctly when used intensively (with
the scrollwheel for example), the clicks should be inserted fast enough
for the PCM fifo to not become empty.

PL190 can cause spurious interrupts if an interrupt is triggered by a
peripheral shortly before the interrupt for this peripheral is cleared
from VIC registers.

As an effect we should only write in VIC_INT_EN_CLEAR after having
disabled the source of the interrupt in the peripheral.

references on PL190 spurious interrupts:
- http://www.embeddedrelated.com/groups/lpc2000/show/14599.php
- http://water.cse.unsw.edu.au/esdk/lpc2/spurious-irq.html

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26444 a1c6a512-1295-4272-9138-f99709370657
2010-06-01 09:39:08 +00:00