Bertrik Sikken
101bb25e72
sansa clipzip: fix lcd init delay (remove lcd_delay and replace it with a sleep)
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30465 a1c6a512-1295-4272-9138-f99709370657
2011-09-06 16:55:52 +00:00
Bertrik Sikken
9372063e19
sansa clipzip: annotate lcd registers
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30411 a1c6a512-1295-4272-9138-f99709370657
2011-09-02 20:09:51 +00:00
Bertrik Sikken
5b7a150807
sansa clipzip: add lcd_brightness function (to be used later to set the 'backlight' brightness)
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30410 a1c6a512-1295-4272-9138-f99709370657
2011-09-02 19:57:29 +00:00
Bertrik Sikken
4991c858a0
sansa clipzip: implement lcd reset in the lcd driver
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30408 a1c6a512-1295-4272-9138-f99709370657
2011-09-01 17:06:19 +00:00
Bertrik Sikken
6a9aac7a5f
sansa clipzip: implement lcd_enable
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30407 a1c6a512-1295-4272-9138-f99709370657
2011-09-01 16:59:30 +00:00
Michael Sevakis
4db3e89652
Shuffle some functions around so that interfacing with playback.c in particular isn't required. Though playback does finish the audio init, pcm doesn't care who does it.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30403 a1c6a512-1295-4272-9138-f99709370657
2011-09-01 12:15:43 +00:00
Bertrik Sikken
e66ad3e8a8
sansa clipzip: implement backlight
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30390 a1c6a512-1295-4272-9138-f99709370657
2011-08-30 19:13:44 +00:00
Bertrik Sikken
99f260ef49
sansa clipzip: fix bounds check/correction in lcd_update_rect
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30389 a1c6a512-1295-4272-9138-f99709370657
2011-08-30 18:14:20 +00:00
Bertrik Sikken
17fcb4cfe3
sansa clipzip: correct GPIO used for backlight
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30377 a1c6a512-1295-4272-9138-f99709370657
2011-08-29 21:08:24 +00:00
Bertrik Sikken
401edf8b48
sansa clipzip: implement more functions in the lcd driver
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30376 a1c6a512-1295-4272-9138-f99709370657
2011-08-29 21:05:59 +00:00
Bertrik Sikken
463b3ed8b2
Initial framework for the Sandisk Sansa Clip Zip
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30365 a1c6a512-1295-4272-9138-f99709370657
2011-08-27 16:21:19 +00:00
Michael Giacomelli
62d666df6f
Convert AMSv2 microphone samples from 14 to 16 bit before storing them.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30209 a1c6a512-1295-4272-9138-f99709370657
2011-07-25 01:00:15 +00:00
Rafaël Carré
a1e1892b0f
as3525: make interrupts struct static and merge declaration & definition
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30116 a1c6a512-1295-4272-9138-f99709370657
2011-07-02 02:49:09 +00:00
Michael Sevakis
a2b6703a36
Commit FS#12150 - Fully-functional audio mixer - and finally whip old limitations about playback of voice and other sounds when paused. Channels are independent in state and amplitude. Fade on stop/pause is handled by the channel's volume control rather than global volume which means it now works from anywhere. Opens up the possibility of plugin sounds during music playback by merely adding an additional channel enum. If any PCM drivers were not properly modified, see one of the last comments in the task for a description of the simple change that is expected. Some params are tunable in firmware/export/pcm-mixer.h as well.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30097 a1c6a512-1295-4272-9138-f99709370657
2011-06-29 06:37:04 +00:00
Marcin Bukat
dceceef052
Move dbg_hw_info() into target tree. FS#11735 by me
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29964 a1c6a512-1295-4272-9138-f99709370657
2011-06-05 10:26:06 +00:00
Rafaël Carré
befabb2bab
AMSv2 USB: Write usb_delay() in assembly
...
Ensure no changes when we use different versions of gcc (USB used to panic with gcc 4.6.0)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29818 a1c6a512-1295-4272-9138-f99709370657
2011-05-03 17:17:23 +00:00
Bertrik Sikken
8d1d2f8982
AMS: consistently use bitclr32/bitset32/bitmod32 for register CCU_IO (instead of using |= or &= )
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29748 a1c6a512-1295-4272-9138-f99709370657
2011-04-18 21:13:40 +00:00
Bertrik Sikken
c2ca4bec9d
AMSv1 sd: work-around for detection problem with some sd cards (delay after switching to high-speed)
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29746 a1c6a512-1295-4272-9138-f99709370657
2011-04-18 20:08:47 +00:00
Bertrik Sikken
59e37cbccb
AMS sd: use defines instead of direct values for drive number
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29696 a1c6a512-1295-4272-9138-f99709370657
2011-04-09 07:57:53 +00:00
Bertrik Sikken
67a4e9befc
Sansa Clip v2: there's no need to use |= or &= to manipulate a GPIO for the button light
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29695 a1c6a512-1295-4272-9138-f99709370657
2011-04-08 21:51:46 +00:00
Bertrik Sikken
f608229f32
Sansa clip+: do not set GPIO B7 in the display driver, it's already used for FM radio I2C
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29668 a1c6a512-1295-4272-9138-f99709370657
2011-04-02 08:24:14 +00:00
Bertrik Sikken
eab630a1e1
AMSv2: fix dependency between button light and sd card control for fuze v2 variant 0
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29667 a1c6a512-1295-4272-9138-f99709370657
2011-04-01 21:29:08 +00:00
Bertrik Sikken
8351a1aa9d
AMSv2 sd: do not try to switch sd cards into high-speed mode.
...
High-speed mode is only half implemented (sd controller still uses normal speed) and causes card detection problems.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29660 a1c6a512-1295-4272-9138-f99709370657
2011-03-29 20:37:40 +00:00
Bertrik Sikken
5c4c691cd3
AMSv2 sd: correct CLKENA settings (to stop sd clock when idle) for AMSv2 variant 1 players
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29657 a1c6a512-1295-4272-9138-f99709370657
2011-03-28 20:46:56 +00:00
Bertrik Sikken
7d74fdec02
AMSv2 sd: do sd slot switching with GPIO B5 only for AMSv2 variant 1
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29656 a1c6a512-1295-4272-9138-f99709370657
2011-03-28 18:08:03 +00:00
Bertrik Sikken
86c4ec7277
AMSv2 SD: use INTERNAL_AS3525 and SD_SLOT_AS3525 defines instead of a direct value
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29652 a1c6a512-1295-4272-9138-f99709370657
2011-03-26 23:31:29 +00:00
Bertrik Sikken
502e9e97b6
AMSv2 SD: wait for response to command SD_STOP_TRANSMISSION instead of ignoring the response
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29651 a1c6a512-1295-4272-9138-f99709370657
2011-03-26 21:22:30 +00:00
Bertrik Sikken
6512f0fb52
AMSv2 SD: reorganise code to select 4-bit mode data transfer mode a bit and add comments
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29648 a1c6a512-1295-4272-9138-f99709370657
2011-03-26 21:12:16 +00:00
Bertrik Sikken
2543340bf4
AMSv2 SD: sd card communication speed can be changed back to full speed after CMD3 (SEND_RCA)
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29647 a1c6a512-1295-4272-9138-f99709370657
2011-03-26 19:52:42 +00:00
Rafaël Carré
688545ea16
fix warning, use unsigned variable
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29638 a1c6a512-1295-4272-9138-f99709370657
2011-03-24 10:54:30 +00:00
Rafaël Carré
669313a11d
SD AMSv2: fix r29625
...
The number of blocks could have been checked while the card was not initialized yet.
See FS#11870 for details
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29637 a1c6a512-1295-4272-9138-f99709370657
2011-03-24 10:43:47 +00:00
Bertrik Sikken
d3c796d20e
AMSv2 SD: send 80 idle clocks before sending initial CMD0 (go idle state)
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29630 a1c6a512-1295-4272-9138-f99709370657
2011-03-21 23:24:59 +00:00
Bertrik Sikken
fc0ad4c01e
AMSv2 SD: receive sd card command responses during initialisation instead of ignoring them
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29629 a1c6a512-1295-4272-9138-f99709370657
2011-03-21 22:04:25 +00:00
Bertrik Sikken
3d3c0c51ec
AMSv2 SD: wait for previous data transfer completion before sending a command
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29628 a1c6a512-1295-4272-9138-f99709370657
2011-03-21 21:41:50 +00:00
Bertrik Sikken
6bf0f65388
AMSv2 SD: use a sleep instead of a udelay for 100 ms delay
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29627 a1c6a512-1295-4272-9138-f99709370657
2011-03-21 20:41:53 +00:00
Rafaël Carré
82f2bb99ae
SD AMSv2: fix r29169
...
Restore access to the last AMS_OF_SIZE == 0xF000 sectors of internal drive
Mostly visible when using USB (or database?)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29625 a1c6a512-1295-4272-9138-f99709370657
2011-03-20 17:04:31 +00:00
Rafaël Carré
1675e98925
SD amsv2: remove double assignement
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29624 a1c6a512-1295-4272-9138-f99709370657
2011-03-20 17:04:19 +00:00
Bertrik Sikken
faeb4d6aef
Add another delay in the AMSv2 sd controller driver as a work-around for SD initialisation problems, see FS#11870
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29619 a1c6a512-1295-4272-9138-f99709370657
2011-03-20 09:57:43 +00:00
Michael Sevakis
12375d1d3a
Merge functionality of wakeups and semaphores-- fewer APIs and object types. semaphore_wait takes a timeout now so codecs and plugins have to be made incompatible. Don't make semaphores for targets not using them.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29492 a1c6a512-1295-4272-9138-f99709370657
2011-03-02 08:49:38 +00:00
Michael Chicoine
f9b05adc91
Return valid tuner ID even when tuner is not detected properly. Fixes FS#11791
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29378 a1c6a512-1295-4272-9138-f99709370657
2011-02-22 13:58:06 +00:00
Michael Sevakis
a2e4a51825
AMSv2 USB: Remove usb_enable call that occurs after core is already initialized and the usb_disable call while in ISR. Also, no point in panicing over a disconnect.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29205 a1c6a512-1295-4272-9138-f99709370657
2011-02-04 05:46:55 +00:00
Andree Buschmann
adf7224538
Fix red. Replace remaining MEM's mit MEMORYSIZE.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29190 a1c6a512-1295-4272-9138-f99709370657
2011-02-02 17:55:04 +00:00
Andree Buschmann
5d849a963e
Clean up multiple definitions of RAM size. Remove -DMEM (make) and MEM (code), use the already defined MEMORYSIZE instead.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29189 a1c6a512-1295-4272-9138-f99709370657
2011-02-02 17:43:32 +00:00
Michael Sevakis
e9749d1b93
AMSv2 SD: Fix card insert lockups in USB mode. First, get rid of infinite loops and retry those a limited number of times-- no explaination for their dubious existence was offered in the source. Second, SD thread was no longer monitoring inserts (and it wouldn't really matter if it were). Thus, .initialized was reported as '1' despite the new card needing reinit.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29169 a1c6a512-1295-4272-9138-f99709370657
2011-01-29 16:54:36 +00:00
Michael Sevakis
3f709eada2
Convert AMS target USB detection to event-based (no more polling in a tick). Seems well on my Clip v1 and Fuze v2.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29156 a1c6a512-1295-4272-9138-f99709370657
2011-01-29 00:44:59 +00:00
Michael Sevakis
a575ffb271
AMSv2 USB: Delay after sftdiscon should be far longer.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29154 a1c6a512-1295-4272-9138-f99709370657
2011-01-29 00:25:42 +00:00
Michael Sevakis
ac7fe5fb82
AS3525v2 USB: Set disconnect before stopping module clock. Seems to cure reconnect weirdness for me and is probably the proper method anyway since otherwise the module will still be running when the clock is cut (bad).
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29149 a1c6a512-1295-4272-9138-f99709370657
2011-01-28 02:30:03 +00:00
Amaury Pouly
3a1bc3cfdd
as3525v2-usb: fix logf format, don't mask the interrupt using the VIC as it seems to trigger spurious irq
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29146 a1c6a512-1295-4272-9138-f99709370657
2011-01-27 12:15:46 +00:00
Amaury Pouly
9b02ce9e49
as3525v2-usb: mask usb interrupt when setting up a transfer
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29130 a1c6a512-1295-4272-9138-f99709370657
2011-01-24 15:34:14 +00:00
Amaury Pouly
297ca4b1af
as3525v2-usb: only call wakeup_signal when a thread is actually waiting
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29129 a1c6a512-1295-4272-9138-f99709370657
2011-01-24 15:03:56 +00:00
Michael Sevakis
2da0f9bcfd
Fuze v2: Do button reading more efficiently by mapping button codes directly to the GPIO pin states where possible (all but 'home' and hold). This makes plugins incompatible; up the min version and sort things.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29097 a1c6a512-1295-4272-9138-f99709370657
2011-01-20 17:11:23 +00:00
Michael Sevakis
5f52f6ee01
Fuze V2: Fix hold switch behavior. Add a GPIOx_PIN_MASK macro to AS3525.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29096 a1c6a512-1295-4272-9138-f99709370657
2011-01-20 14:26:58 +00:00
Michael Sevakis
c04f1a23c7
AS3525: Implement a true audio pause and full-resolution audio tick. Take care of a few atomic hotspots.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29088 a1c6a512-1295-4272-9138-f99709370657
2011-01-19 09:15:23 +00:00
Michael Sevakis
453550a687
Try to get some control over #ifdef hell in usb.c by refactoring and inline function use. SYS_USB_DISCONNECTED_ACK hasn't been doing anything useful for the USB thread; remove it. USB thread simply ignores that value. Observe only valid usb_state transitions.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29084 a1c6a512-1295-4272-9138-f99709370657
2011-01-18 14:10:06 +00:00
Michael Sevakis
bb54c8f315
Fix problem with AMS PCM driver that caused mpegplayer lockup. It pre-decremented the size remaining where it is supposed to be post-decremented by the last transfer size in the callback. Pending callbacks also must be cleared when stopping or pausing a channel if they happened before the lock flag was set.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29059 a1c6a512-1295-4272-9138-f99709370657
2011-01-15 12:13:56 +00:00
Fred Bauer
e541c98a7e
revert r28834 because it causes problems with uSD
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28925 a1c6a512-1295-4272-9138-f99709370657
2010-12-29 16:07:15 +00:00
Bertrik Sikken
92b849d3bf
Apply FS#11798 (Files in MicroSD card aren't being shown in File Browser or Database on Clip+) by Will Sowerbutts
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28903 a1c6a512-1295-4272-9138-f99709370657
2010-12-26 12:55:28 +00:00
Frank Gevaerts
303aefc406
Make usb_detect() return USB_UNPOWERED instead of USB_EXTRACTED. Without that, not all needed disconnect handling is done in usb.c
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28874 a1c6a512-1295-4272-9138-f99709370657
2010-12-21 17:24:00 +00:00
Fred Bauer
279dff1c21
FS#11765: Improve AMSv1 Battery Life by Lowering CPU and Peripheral clocks. Unboosted CPU and peripheral clock is now 31MHz. Boosted CPU and pclk are 186MHz and 62MHz, respectively.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28834 a1c6a512-1295-4272-9138-f99709370657
2010-12-14 22:08:43 +00:00
Frank Gevaerts
866a822ac6
Only return USB_POWERED if USB_DETECT_BY_DRV is actually defined, which might not be the case for e.g. bootloaders (also fix red)
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28820 a1c6a512-1295-4272-9138-f99709370657
2010-12-12 20:20:12 +00:00
Frank Gevaerts
ecd80d888e
Move AMSv1 USB to the USB_DETECT_BY_DRV model, so connecting to a dumb charger works without interrupting playback
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28819 a1c6a512-1295-4272-9138-f99709370657
2010-12-12 20:03:42 +00:00
Bertrik Sikken
2a0a9a5f2a
AMSv2: handle sd card ACMDs similar to how it's done for AMSv1
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28814 a1c6a512-1295-4272-9138-f99709370657
2010-12-12 15:30:58 +00:00
Bertrik Sikken
9da76f3031
AMSv2: only switch sd cards to high speed mode for for v2 sd cards, just like is done for AMSv1
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28808 a1c6a512-1295-4272-9138-f99709370657
2010-12-12 14:04:07 +00:00
Fred Bauer
9b2e9472ea
FS#11608: switch cpu to async operation in boosted mode
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28616 a1c6a512-1295-4272-9138-f99709370657
2010-11-18 16:37:56 +00:00
Bertrik Sikken
19c048344d
Apply FS#11729 - Remove unneeded I2SIN clock configuration for AS3525 and AS3525v2
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28541 a1c6a512-1295-4272-9138-f99709370657
2010-11-09 21:53:44 +00:00
Marcin Bukat
8a16f1ba00
fix yellow and red from r28522
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28523 a1c6a512-1295-4272-9138-f99709370657
2010-11-06 14:49:53 +00:00
Amaury Pouly
6ebec89ac6
as3525v2-usb! fix suspicious calculation of next endpoint in INs chaining code
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28281 a1c6a512-1295-4272-9138-f99709370657
2010-10-14 19:15:22 +00:00
Rafaël Carré
66f8fb52a9
*/app.lds: remove STUBOFFSET
...
This is related to gdb, and gdb can only work on SH and ifp
This was mistakenly kept when app.lds was forked for each SoC
Side-effect: fix DEBUG builds when the rockbox binary is expected to
be loaded at the start of DRAM and there is no runtime relocation
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28124 a1c6a512-1295-4272-9138-f99709370657
2010-09-20 17:09:55 +00:00
Rafaël Carré
5028eaa025
AMS USBv2: use OF settings for undocumented register
...
still failing
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28061 a1c6a512-1295-4272-9138-f99709370657
2010-09-12 15:32:46 +00:00
Thomas Martitz
f09499f70f
Change sd-as3525*.c to the new cache coherency function names.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28046 a1c6a512-1295-4272-9138-f99709370657
2010-09-08 17:16:52 +00:00
Rafaël Carré
ca0e95ad08
USB AMSv2: use tables for usb_drv_port_speed() and usb_drv_mps_by_type()
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28044 a1c6a512-1295-4272-9138-f99709370657
2010-09-08 06:13:07 +00:00
Rafaël Carré
f1adafc05a
USB AMSv2: split handle_ep_int()
...
IN & OUT interrupts have not much in common so move each to its own
function
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28043 a1c6a512-1295-4272-9138-f99709370657
2010-09-08 05:43:05 +00:00
Rafaël Carré
5aa5de5dc8
USB AMSv2: smaller struct usb_endpoint
...
- reorder members (largest members first)
- int status -> int8_t status (we only use 0 or -1)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28042 a1c6a512-1295-4272-9138-f99709370657
2010-09-08 05:16:40 +00:00
Rafaël Carré
8e0ff81d6f
USB AMSv2: only read endpoint interrupt status register once
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28041 a1c6a512-1295-4272-9138-f99709370657
2010-09-08 05:04:48 +00:00
Rafaël Carré
1752dfda1b
usb-drv-as3525v2.c: cosmetics (remove trailing spaces)
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28040 a1c6a512-1295-4272-9138-f99709370657
2010-09-08 04:37:41 +00:00
Rafaël Carré
29276bed19
USB AMSv2: Reduce the size of (in/out)_ep_list
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28039 a1c6a512-1295-4272-9138-f99709370657
2010-09-08 04:27:01 +00:00
Rafaël Carré
24cd51a2fe
USB AMSv2: simplify FOR_EACH* macros
...
- use a single table to store endpoints numbers (1 table by direction)
- drop __ prefix since the table isn't meant to be hidden (it is used in
reset_endpoints()
- the tables won't change at runtime: mark const
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28038 a1c6a512-1295-4272-9138-f99709370657
2010-09-08 04:20:37 +00:00
Rafaël Carré
e526681c63
USB AMSv2: use status == -1 to signal errors
...
set status to failure before signaling usb_drv_send_nonblocking() in
reset_endpoints()
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28037 a1c6a512-1295-4272-9138-f99709370657
2010-09-08 03:31:18 +00:00
Rafaël Carré
8c4f83ec00
USB AMSv2: cosmetics
...
Use ep0_setup_pkt as a pointer
Fix comment for CGU_USB clk source
Remove comment about physical address, the macro handles that for us
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28035 a1c6a512-1295-4272-9138-f99709370657
2010-09-08 01:59:41 +00:00
Rafaël Carré
dbea731503
USB AMSv2: update endpoint->len on transfer
...
cosmetics: x ? true : false -> x
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28034 a1c6a512-1295-4272-9138-f99709370657
2010-09-08 01:50:36 +00:00
Rafaël Carré
be24beefa7
usb-drv-as3525v2: use dump_dcache_range()
...
Since we'll receive data from DMA in this buffer we don't need to write-back
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28032 a1c6a512-1295-4272-9138-f99709370657
2010-09-08 01:03:05 +00:00
Rafaël Carré
b72237a403
usb-drv-as3525v2: fixes
...
- don't use *_dcache_range() on uncached memory
- remove unused struct endpoint->buffer
- use correct *_dcache_range() in usb_drv_transfer() for each direction
- halve FIFO size
sometimes mounts / sometimes fails
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28031 a1c6a512-1295-4272-9138-f99709370657
2010-09-08 00:29:22 +00:00
Amaury Pouly
03d391d57a
as3525v2-usb: don't disable data transfers !
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28030 a1c6a512-1295-4272-9138-f99709370657
2010-09-07 21:01:16 +00:00
Amaury Pouly
f140930714
as3525v2-usb: fix red and fix stupid typo about endpoint status
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28029 a1c6a512-1295-4272-9138-f99709370657
2010-09-07 20:50:23 +00:00
Amaury Pouly
f20d11c718
as3525v2-usb: all control operations are working, there is a problem with UMS: the IN transfer to respond to inquiry does not start, resulting in not lun being detected
...
- implement request_endpoint
- setup nextep chain for in endpoints
- remove useless dcache operation on IN transfer completion
- fix transfers to use correct max packet size
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28028 a1c6a512-1295-4272-9138-f99709370657
2010-09-07 20:44:26 +00:00
Amaury Pouly
025112fc7b
as3525v2-usb:
...
- use uncached address to access setup packet
- implement driver exit
- stop forcing full speed
- change fifo sizes on init
- don't call invalid_dache() on setup packet because it makes everything fail
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28027 a1c6a512-1295-4272-9138-f99709370657
2010-09-07 18:41:12 +00:00
Rafaël Carré
2ac5153236
AMS: make dma_disable_channel() not inline
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28017 a1c6a512-1295-4272-9138-f99709370657
2010-09-07 08:40:08 +00:00
Rafaël Carré
9b491752b1
debug-as3525.c : fix include, remove comment
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28016 a1c6a512-1295-4272-9138-f99709370657
2010-09-06 19:23:00 +00:00
Rafaël Carré
c196da2cee
FS#11597 : decrease FCLK frequency when unboosted
...
FCLK is unused because we use fastbus clocking: CPU clock = PCLK
Base PCLK off PLLA and use the lowest frqeuency for FCLK (24MHz source,
maximum divider)
Save a bit of power, adjust Clipv1/e200v2/Fuzev1 current usage accordingly
Note: the power saving (in mA) is a bit less on e200v2/Fuzev1 than on Clipv1
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28000 a1c6a512-1295-4272-9138-f99709370657
2010-09-05 15:34:34 +00:00
Rafaël Carré
173044d8c4
revert r27991
...
I misread the register defines in linux source code
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27995 a1c6a512-1295-4272-9138-f99709370657
2010-09-03 22:18:04 +00:00
Rafaël Carré
e93ba5a724
Clipv1: update CHARGER_TOTAL_TIMER
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27993 a1c6a512-1295-4272-9138-f99709370657
2010-09-03 06:42:11 +00:00
Rafaël Carré
c576e4acdb
Clipv1: draw 150mA from the charger, like Clipv2/+
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27992 a1c6a512-1295-4272-9138-f99709370657
2010-09-03 06:26:42 +00:00
Rafaël Carré
4e739b406a
USB AMSv2: fix bit position in DCFG register
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27991 a1c6a512-1295-4272-9138-f99709370657
2010-09-03 04:40:54 +00:00
Amaury Pouly
f3da8d0ee3
as3525v2: revert the USB_DEVBSS_ATTR and the panicf redefinition, don't protected #undef of USB_NUM_ENDPOINTS
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27987 a1c6a512-1295-4272-9138-f99709370657
2010-09-02 13:46:34 +00:00
Amaury Pouly
e09a0857e8
as3525v2:
...
- change buffer alignement to 32 bytes (not sure if it's useful)
- flush rx fifo on reset
- use AS3525_PHYSICAL_ADDR for DMA
- reset endpoints structure states on reset
- force full speed for debugging purpose
- add more debugging code
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27986 a1c6a512-1295-4272-9138-f99709370657
2010-09-02 13:00:16 +00:00
Rafaël Carré
b9201e3c6f
include lcd.h , forgotten in r27957
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27958 a1c6a512-1295-4272-9138-f99709370657
2010-08-31 06:53:28 +00:00
Rafaël Carré
67cf859b42
AMS: update the LCD on system exception to be sure the content is up to date
...
Without this change the backlight would be enabled but the screen would
show the last content displayed before the screen went off
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27957 a1c6a512-1295-4272-9138-f99709370657
2010-08-31 06:49:08 +00:00
Rafaël Carré
63c1769701
AMSv2: remove a bunch of panicf() in SD driver
...
The driver is stable so we can use error codes for debugging
Fix 2 problems in error code path:
- release sd mutex
- release dma module when needed
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27915 a1c6a512-1295-4272-9138-f99709370657
2010-08-28 11:22:58 +00:00
Rafaël Carré
26de96cad8
typo in r27876
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27878 a1c6a512-1295-4272-9138-f99709370657
2010-08-25 11:15:06 +00:00
Rafaël Carré
e20fb32862
usb-drv-as3525: only give physical addresses to USB HW
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27877 a1c6a512-1295-4272-9138-f99709370657
2010-08-25 11:10:48 +00:00
Rafaël Carré
8de2af7b9c
sd-as3525*: use AS3525_PHYSICAL_ADDR
...
fix DMA buffers when the src/dst is in IRAM
It worked fine because all the buffers are in DRAM, and the virtual
address happens to be the physical address
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27876 a1c6a512-1295-4272-9138-f99709370657
2010-08-25 11:10:40 +00:00
Rafaël Carré
65c4fc2ad2
Sansa AMSv2: don't prevent USB detection to work when rockbox USB stack is used
...
(USB stack is not used by default)
This makes debugging the USB driver easier
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27847 a1c6a512-1295-4272-9138-f99709370657
2010-08-19 16:52:08 +00:00
Bertrik Sikken
b73d15e9c6
Sansa AMSv2: enable PLLB and use it to generate a more accurate PCM frequency (playback rate error improves from 1.1% to 0.04%) - FS #10906 by me.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27845 a1c6a512-1295-4272-9138-f99709370657
2010-08-18 21:42:03 +00:00
Rafaël Carré
322fdaa316
AMSv2: don't reboot on USB plug
...
Users will have to reboot to OF manually or to power off, and then plug USB
No message is displayed because usb_detect() is run from a tick
This lacks documentation but should be OK for Unstable devices, and
will hopefully prevent clueless users from opening their devices and
breaking them definitely, instead of waiting for the battery to power
off.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27837 a1c6a512-1295-4272-9138-f99709370657
2010-08-17 16:43:43 +00:00
Thomas Martitz
0e2286f226
Introduce NORETURN_ATTR wrapper for __attribute__((noreturn)), using this and a bit further cleanup in main gets rid of a warning when compiling for android.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27788 a1c6a512-1295-4272-9138-f99709370657
2010-08-12 13:38:25 +00:00
Bertrik Sikken
57933f2bc6
Make some global function/variables local (by making them static)
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27631 a1c6a512-1295-4272-9138-f99709370657
2010-07-30 23:47:49 +00:00
Rafaël Carré
b0e34a6a6c
AMSv1: Don't modify MPMC_DYNAMIC_CONTROL
...
The last bootloaders already set it correctly
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27627 a1c6a512-1295-4272-9138-f99709370657
2010-07-30 12:28:14 +00:00
Rafaël Carré
f536f263c0
lcd-clip.h: mentions clipv2
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27523 a1c6a512-1295-4272-9138-f99709370657
2010-07-22 17:17:31 +00:00
Bertrik Sikken
55a4520f07
Sansa clip+: fix display brightness for players with newer OLED controller type (and reorganise the variant detection a bit in the process)
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27522 a1c6a512-1295-4272-9138-f99709370657
2010-07-22 15:31:24 +00:00
Bertrik Sikken
10e79de27c
Correction to previous commit: fix condition to include backlight-target.h (not needed for clip+)
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27521 a1c6a512-1295-4272-9138-f99709370657
2010-07-22 15:10:32 +00:00
Bertrik Sikken
4d6c816721
Sansa Clip+: detect AMSv2 variant (just like was already done for fuze v2), this makes SD transfers work for newer clip+ players ("COMBO4E" type). Variable fuzev2_variant has been renamed to amsv2_variant.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27520 a1c6a512-1295-4272-9138-f99709370657
2010-07-22 13:47:09 +00:00
Rafaël Carré
1ebdb8988f
as3525v1 USB: remove stubs if !defined(USE_ROCKBOX_USB)
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27519 a1c6a512-1295-4272-9138-f99709370657
2010-07-22 13:32:01 +00:00
Rafaël Carré
7d9cc0e2ce
CCU_BASE+0x20 is specific to AMSv2 -> move to as3525v2.h
...
Rename to simply 'CCU_USB'
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27518 a1c6a512-1295-4272-9138-f99709370657
2010-07-22 13:07:56 +00:00
Rafaël Carré
bd78dc7693
The new Fuzev2 use the same FM chip than some Clip+
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27502 a1c6a512-1295-4272-9138-f99709370657
2010-07-20 06:26:39 +00:00
Rafaël Carré
ed616c604a
buttonlight for new fuzev2
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27501 a1c6a512-1295-4272-9138-f99709370657
2010-07-20 05:55:32 +00:00
Rafaël Carré
c6b838695c
Revert r26290
...
If the card is not actively deselected on newer Fuzev2, frequent
switches between internal storage and µSD will lock up.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27500 a1c6a512-1295-4272-9138-f99709370657
2010-07-20 04:34:21 +00:00
Rafaël Carré
c57ba97246
newer Fuzev2 doesn't seem to use B5 for button light
...
playing from µSD now works to some degree
database update or copy between the 2 drives lock up
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27496 a1c6a512-1295-4272-9138-f99709370657
2010-07-19 17:12:47 +00:00
Rafaël Carré
08c600ca07
sd-as3525.c: disable widebus again, it causes read corruptions
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27495 a1c6a512-1295-4272-9138-f99709370657
2010-07-19 16:08:57 +00:00
Rafaël Carré
b221d6d4d4
as3525*: use atomic bit manipulation for CCU_IO
...
fuzev2 button_read_device() runs in interrupt context so writes are atomic
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27494 a1c6a512-1295-4272-9138-f99709370657
2010-07-19 15:56:15 +00:00
Rafaël Carré
25491980d6
as3525*: disable_irq in system_reboot()
...
make sure CGU_PERI write is atomic
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27493 a1c6a512-1295-4272-9138-f99709370657
2010-07-19 15:56:10 +00:00
Rafaël Carré
e44b65c806
Support new Fuzev2 revisions (fuzev2_variant == 1)
...
- Revert BUTTON_HOME
- Modifications to SD driver (µSD not working yet)
TODO: µSD and FM radio
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27492 a1c6a512-1295-4272-9138-f99709370657
2010-07-19 15:29:28 +00:00
Rafaël Carré
81593e8e61
sd-as3525v2: remove unneeded prototypes
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27488 a1c6a512-1295-4272-9138-f99709370657
2010-07-19 04:41:07 +00:00
Rafaël Carré
9dbdd8fd5d
Fuze*/e200v2: remove unused lcd_set_contrast()
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27413 a1c6a512-1295-4272-9138-f99709370657
2010-07-14 06:48:36 +00:00
Rafaël Carré
9a471e603e
Clip+ LCD: support devices with a different controller
...
The new controller framebuffer (different from what is in clipv1/clipv2 and some clip+) has 128 columns, the old has 132 columns and is centered on the screen.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27257 a1c6a512-1295-4272-9138-f99709370657
2010-07-03 18:50:07 +00:00
Michael Sevakis
3f4dfe5c03
pl081: Fix r27236 warnings. Need system.h.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27237 a1c6a512-1295-4272-9138-f99709370657
2010-07-02 06:07:42 +00:00
Michael Sevakis
0f47ffe0e4
AMS SoC's: Some register bit changes need interrupt protection: timer API and CGU_PERI.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27236 a1c6a512-1295-4272-9138-f99709370657
2010-07-02 06:00:00 +00:00
Tobias Diedrich
f4a00174b5
sd-as3525.c: handle acmd retries correctly
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27187 a1c6a512-1295-4272-9138-f99709370657
2010-06-29 21:49:20 +00:00
Amaury Pouly
f641fc62d8
as3525v2-usb: fix yellow
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27181 a1c6a512-1295-4272-9138-f99709370657
2010-06-29 19:24:39 +00:00
Tobias Diedrich
23cf76c2af
mutex_lock/unlock must be moved up a level to make the verify code in sd-as3525.c safe
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27180 a1c6a512-1295-4272-9138-f99709370657
2010-06-29 19:12:57 +00:00
Rafaël Carré
cdf27ae121
usb-drv-as3525v2.c: fix compilation (typo)
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27179 a1c6a512-1295-4272-9138-f99709370657
2010-06-29 19:02:51 +00:00
Amaury Pouly
8ac77fe466
as3525v2-usb: fix bug in ep listing macro, rewrite EP0 handling using a state
...
There was a stupid bug in endpoint listing which caused random cancelling of EP0 transfers. The new scheme to handle EP0 transfers should avoid an unexpected setup packet which might cause a deadlock or confuse the core.
There is still an issue with the cancel_transfers function is still.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27178 a1c6a512-1295-4272-9138-f99709370657
2010-06-29 18:58:09 +00:00
Tobias Diedrich
31cf6d5013
Enable HID support, clean up usb-drv-as3525.c a bit, add a workaround for weird Linux behaviour (don't have Windows to test with), we don't need to set up USB_PHY_EPx_INFO (OF doesn't bother either).
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27164 a1c6a512-1295-4272-9138-f99709370657
2010-06-28 09:46:13 +00:00
Amaury Pouly
48b3de028e
as3525v2-usb: rework ep listing&xfers cancelling, implement speed reporting, first try at implementing disconnection
...
There is still a problem after the set address request which makes the driver working randomly.
I still didn't manage do get a proper disconnect interrupt.
From time to time, when unplugging cable, neither rockbox nor usb driver reports disconnect even.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27161 a1c6a512-1295-4272-9138-f99709370657
2010-06-27 22:06:30 +00:00
Tobias Diedrich
04f9aa8e55
Include usb-target.h for usb_remove_int().
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27150 a1c6a512-1295-4272-9138-f99709370657
2010-06-27 03:10:20 +00:00
Tobias Diedrich
d538db0259
Add one second timeout for USB enumeration, so we don't get stuck in USB mode if it's just a charger.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27149 a1c6a512-1295-4272-9138-f99709370657
2010-06-27 03:04:44 +00:00
Tobias Diedrich
eefe273ce6
DBOP noise on C200v2 goes away if we precharge long enough.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27148 a1c6a512-1295-4272-9138-f99709370657
2010-06-27 02:50:24 +00:00
Tobias Diedrich
c9bbff571b
Add transfer timeout, remove unused buf field
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27115 a1c6a512-1295-4272-9138-f99709370657
2010-06-24 19:14:47 +00:00
Tobias Diedrich
a035ed4cb0
Fix sd-as3525.c build for non-multidrive targets
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27114 a1c6a512-1295-4272-9138-f99709370657
2010-06-24 19:12:14 +00:00
Tobias Diedrich
90602ae076
Fix the pesky write corruption bug in 4bit mode.
...
On tx underruns, a write is aborted early, leaving the dma channel active.
We didn't explicitly disable it, so there were still 4 words in the dma
controller fifo, corrupting the retried write.
To chase this bug I added verify after write, if no one sees write errors in
the next week or so this can be removed.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27113 a1c6a512-1295-4272-9138-f99709370657
2010-06-24 18:57:11 +00:00
Amaury Pouly
0ff522dbe9
as3525v2-usb: beginning of a real driver. Setup packet and control transfers work. There is still a problem with the set address request. Still much work to be done.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27099 a1c6a512-1295-4272-9138-f99709370657
2010-06-23 22:04:04 +00:00
Amaury Pouly
237d9666cc
as3525v2-usb: define number of enpoints correctly, write interrupt handler
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27098 a1c6a512-1295-4272-9138-f99709370657
2010-06-23 22:03:31 +00:00
Rafaël Carré
cf9bba7102
sd-as3525.c: get rid of MCI_ARG
...
We always need to write MCI_ARGUMENT register so if the command expects
no argument just set the function argument to 0
Code is now similar to as3525v2
hint: merging the 2 and/or all the SD drivers would be nice
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27088 a1c6a512-1295-4272-9138-f99709370657
2010-06-23 13:40:25 +00:00
Rafaël Carré
b4ce43f5cc
sd-as3525.c: disable wide bus, it corrupts writes
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27087 a1c6a512-1295-4272-9138-f99709370657
2010-06-23 13:33:07 +00:00
Rafaël Carré
a937b8ba05
as3525*: initialize cpu_frequency correctly
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27082 a1c6a512-1295-4272-9138-f99709370657
2010-06-23 07:06:06 +00:00
Rafaël Carré
28bcc17dde
revert r27044 (which was a revert of r26953 & r26954)
...
The bug was in playback.c and was fixed in previous commit
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27074 a1c6a512-1295-4272-9138-f99709370657
2010-06-23 04:34:23 +00:00
Tobias Diedrich
1396c335ac
The mci_delay()s should be unnecessary if we properly tell the controller to wait for the response these commands send back to the host.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27066 a1c6a512-1295-4272-9138-f99709370657
2010-06-22 21:49:33 +00:00
Tobias Diedrich
6e45f87e0f
Give 4-bit mode another chance on AMSv1 since other bugs were fixed.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27065 a1c6a512-1295-4272-9138-f99709370657
2010-06-22 21:44:42 +00:00
Bertrik Sikken
20d92bb7f3
Fix wrong comments in tuner-clipplus.c
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27056 a1c6a512-1295-4272-9138-f99709370657
2010-06-22 16:13:16 +00:00
Tobias Diedrich
826508029b
Unconditionally boost cpu and remove CNAK retry panic
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27054 a1c6a512-1295-4272-9138-f99709370657
2010-06-22 13:58:34 +00:00
Tobias Diedrich
7ce6802b48
Remove '\n' from panicf
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27053 a1c6a512-1295-4272-9138-f99709370657
2010-06-22 13:44:10 +00:00