Jens Arnold
0ceaa5e365
Const policed pointer arguments to functions, part 2
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@4996 a1c6a512-1295-4272-9138-f99709370657
2004-08-17 01:45:48 +00:00
Jens Arnold
2b0694c694
More const policeing step 3
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@4982 a1c6a512-1295-4272-9138-f99709370657
2004-08-03 05:58:46 +00:00
Jens Arnold
b40591947d
Enabled assembler optimized disk reading and writing (approx. 2 times as fast)
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@4825 a1c6a512-1295-4272-9138-f99709370657
2004-07-05 13:44:53 +00:00
Jens Arnold
44e76cfa86
Disabled automatic disk spindown (by the drive). Updated comments regarding timing
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@4733 a1c6a512-1295-4272-9138-f99709370657
2004-06-11 06:56:51 +00:00
Jörg Hohensohn
9c52b24b00
patch #922836 by Jens: way faster disk writing, in assembler. The code is in, but yet disabled by #define PREFER_C_WRITING unless it's proven safe for all disks.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@4460 a1c6a512-1295-4272-9138-f99709370657
2004-04-01 05:46:31 +00:00
Linus Nielsen Feltzing
8bda0e1097
A hip shot trying to make the Red LED Death situation a little better
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@4409 a1c6a512-1295-4272-9138-f99709370657
2004-03-19 13:26:43 +00:00
Jörg Hohensohn
5fb1e1024f
- no second ata_hard_reset() call, saves ~2.5 seconds flash boot time (please test)
...
- Jens' new assembler code in copy_read_sectors(), but still disabled
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@4358 a1c6a512-1295-4272-9138-f99709370657
2004-03-10 14:15:14 +00:00
Linus Nielsen Feltzing
3a6e2f497b
Reverted the STANDBY fix from 2004-02-15, rev 1.106
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@4352 a1c6a512-1295-4272-9138-f99709370657
2004-03-09 08:52:14 +00:00
Linus Nielsen Feltzing
68331ffb08
Now sets the highest possible PIO mode in set_features()
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@4328 a1c6a512-1295-4272-9138-f99709370657
2004-03-02 09:55:23 +00:00
Linus Nielsen Feltzing
97955a714b
fixed compiling errors
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@4310 a1c6a512-1295-4272-9138-f99709370657
2004-02-17 01:31:50 +00:00
Linus Nielsen Feltzing
867415b3f8
set_features() is now called from ata_power_on()
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@4309 a1c6a512-1295-4272-9138-f99709370657
2004-02-17 01:30:25 +00:00
Linus Nielsen Feltzing
7bd92239ca
Silly me, I forgot to remove my debugging code
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@4308 a1c6a512-1295-4272-9138-f99709370657
2004-02-16 23:27:02 +00:00
Linus Nielsen Feltzing
c3b9720ab4
Bug 1: The STANDBY mode is now explicitly disabled, since it could be set to 30s at powerup. Bug 2: set_features() wasn't called in ata_power_on().
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@4307 a1c6a512-1295-4272-9138-f99709370657
2004-02-16 23:25:01 +00:00
Jörg Hohensohn
dee17f7102
Assembly code for copy_read_sectors() disabled: Tests with Trent showed that this is to blame for file system corruptions, even waitstates didn't fix it. No idea why, sorry...
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@4304 a1c6a512-1295-4272-9138-f99709370657
2004-02-15 08:44:02 +00:00
Jörg Hohensohn
b646d4f278
Assembly code for copy_read_sectors() reworked: I've spread the ATA reads apart by filling independent instructions inbetween, this is also slightly faster because of no pipeline stall. Hopefully this fixes the problem Kargatron had with it.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@4302 a1c6a512-1295-4272-9138-f99709370657
2004-02-09 08:24:25 +00:00
Jörg Hohensohn
bf4460e477
no code change, I just forgot to take my template disassembly out (a big comment block)
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@4282 a1c6a512-1295-4272-9138-f99709370657
2004-01-27 09:38:59 +00:00
Jörg Hohensohn
cb570b9263
Assembler optimized copy_read_sectors() gives another speedup of factor 1.4 for aligned and 1.2 for misaligned. Including my previous change the file reading is now nearly twice as fast compared to when I started this. -> Less disk uptime, longer battery life.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@4281 a1c6a512-1295-4272-9138-f99709370657
2004-01-27 09:12:51 +00:00
Jörg Hohensohn
862d2b5e3a
warning + obsolete variable removed
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@4248 a1c6a512-1295-4272-9138-f99709370657
2004-01-16 09:28:39 +00:00
Jörg Hohensohn
88faf38ef7
Optimized the sector read loop as much as C allows. I measured an overall speed improvement for file reading of 12.5% for 16-bit aligned and 35% for misaligned. I took the rest of ata_read_sectors() out of IRAM, it's sufficient if only the copy loop stays there.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@4247 a1c6a512-1295-4272-9138-f99709370657
2004-01-16 09:02:21 +00:00
Björn Stenberg
a53afc0330
Added acoustic management, power management and read look-ahead.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@4230 a1c6a512-1295-4272-9138-f99709370657
2004-01-14 13:15:19 +00:00
Björn Stenberg
1fe97ec54e
Improved timing in soft_reset. This hopefully cures spontaneous Red Led freezes.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@4161 a1c6a512-1295-4272-9138-f99709370657
2003-12-17 20:15:12 +00:00
Daniel Stenberg
006b2c1c25
adjustments for Neo
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@4130 a1c6a512-1295-4272-9138-f99709370657
2003-12-12 13:23:33 +00:00
Jörg Hohensohn
44298163ba
No more spinning disk while charging flashed FM+V2 (you need the new bootloader to utilize it). ToDo: remove now false voltage reading from charging screen.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@4095 a1c6a512-1295-4272-9138-f99709370657
2003-12-03 01:03:54 +00:00
Linus Nielsen Feltzing
bef7ab0c26
The code police strikes back
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@4024 a1c6a512-1295-4272-9138-f99709370657
2003-11-07 12:15:24 +00:00
Jörg Hohensohn
75bab49a54
set/clear port bits with atomic instructions instead of read-modify-write, saves time+space, allows port usage in ISR
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@4022 a1c6a512-1295-4272-9138-f99709370657
2003-11-06 01:34:50 +00:00
Jörg Hohensohn
118d45eb92
ATA io_address_detect() now doesn't probe any more, but uses the h/w mask. Probing failed for some flash users. I hope this works for everybody, we have to try to find out.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3946 a1c6a512-1295-4272-9138-f99709370657
2003-09-01 05:48:42 +00:00
Jörg Hohensohn
f4b677eb3c
report sleeping disk while not initialized, needed for changing before ata_init()
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3844 a1c6a512-1295-4272-9138-f99709370657
2003-07-18 21:55:06 +00:00
Björn Stenberg
9cb5e0e9f9
Initalize last_disk_activity
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3830 a1c6a512-1295-4272-9138-f99709370657
2003-07-11 19:11:06 +00:00
Björn Stenberg
c695f26c9f
Fixed spindown bug: last_disk_activity was set 10 seconds into the future, which resulted in too long spindown delays.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3826 a1c6a512-1295-4272-9138-f99709370657
2003-07-10 13:32:15 +00:00
Björn Stenberg
9f372f1f59
Cold start fixes: master_slave_select() now checks for BSY as well as RDY (since disks are BSY during powerup). Also, wait_for_bsy() looks at ATA_STATUS instead of ATA_ALT_STATUS, since the address of ATA_ALT_STATUS is not determined until later.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3822 a1c6a512-1295-4272-9138-f99709370657
2003-07-09 22:04:31 +00:00
Björn Stenberg
efd2f356c7
Removed warnings
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3821 a1c6a512-1295-4272-9138-f99709370657
2003-07-09 16:46:46 +00:00
Jörg Hohensohn
bbfaf26e11
again different coldstart, ata_init() now has non-ambiguous return codes for better diagnostics
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3820 a1c6a512-1295-4272-9138-f99709370657
2003-07-09 07:18:47 +00:00
Jörg Hohensohn
adef8fb17e
better place and method for the spinup wait code, still I'd welcome comments on this
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3815 a1c6a512-1295-4272-9138-f99709370657
2003-07-08 06:33:30 +00:00
Jörg Hohensohn
d1a3a3e148
When starting from flash, we have to wait for the disk to get ready. (Quite a new situation ;-)
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3803 a1c6a512-1295-4272-9138-f99709370657
2003-07-03 00:02:15 +00:00
Jörg Hohensohn
545efb6c28
port inits for cold start ability
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3764 a1c6a512-1295-4272-9138-f99709370657
2003-06-26 21:29:13 +00:00
Linus Nielsen Feltzing
159d04d3f9
Experiment: enable ATA STANDBY when switching to USB mode
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3668 a1c6a512-1295-4272-9138-f99709370657
2003-05-10 01:55:23 +00:00
Björn Stenberg
674b632df8
Corrected wrong write return code.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3623 a1c6a512-1295-4272-9138-f99709370657
2003-04-28 12:02:14 +00:00
Linus Nielsen Feltzing
b5401749cb
ata_write_sectors() didn't handle odd buffer addresses
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3544 a1c6a512-1295-4272-9138-f99709370657
2003-04-12 23:02:58 +00:00
Björn Stenberg
cf92db153f
Don't enter cpu sleep during disk operations
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3530 a1c6a512-1295-4272-9138-f99709370657
2003-04-11 07:43:04 +00:00
Linus Nielsen Feltzing
4502e982af
The newest ATA driver fixes broke the ata_spinup_time information
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3515 a1c6a512-1295-4272-9138-f99709370657
2003-04-05 22:25:21 +00:00
Björn Stenberg
fd9ce90a4c
Better led control. Added status read delay. Fixed potential last_disk_activity race.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3501 a1c6a512-1295-4272-9138-f99709370657
2003-03-31 14:14:07 +00:00
Björn Stenberg
aa78324fde
Another attempt to stop the red led dead.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3498 a1c6a512-1295-4272-9138-f99709370657
2003-03-24 16:19:54 +00:00
Björn Stenberg
7682d46713
Don't spin down disk while retrying
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3457 a1c6a512-1295-4272-9138-f99709370657
2003-03-17 13:42:30 +00:00
Björn Stenberg
bb6e51aa0d
Moved read code around a bit to more strictly obey the ATA specification.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3444 a1c6a512-1295-4272-9138-f99709370657
2003-03-14 16:06:09 +00:00
Björn Stenberg
b12401b4d4
Initialize return code at start of loop, not at the end.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3440 a1c6a512-1295-4272-9138-f99709370657
2003-03-13 15:45:38 +00:00
Björn Stenberg
6a58106e97
An attempt to get rid of the "red freeze" problem: Perform a soft reset on read error.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3351 a1c6a512-1295-4272-9138-f99709370657
2003-02-27 13:26:09 +00:00
Björn Stenberg
c4d8d970f6
The power-saving SLEEP patch by Simon Elén.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3259 a1c6a512-1295-4272-9138-f99709370657
2003-02-14 09:44:34 +00:00
Björn Stenberg
efd90770a0
Bug fix: Don't cut the power during spinup...
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@2959 a1c6a512-1295-4272-9138-f99709370657
2002-12-06 15:17:30 +00:00
Björn Stenberg
bd0da0e822
Fixed a race condition between sleep thread and spinup code.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@2958 a1c6a512-1295-4272-9138-f99709370657
2002-12-06 13:08:42 +00:00
Björn Stenberg
ba0438e78d
Fixed spinup clocking. Also updating last_disk_activity more frequently, to avoid shutdown race condition.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@2935 a1c6a512-1295-4272-9138-f99709370657
2002-12-05 09:35:01 +00:00