Commit graph

118 commits

Author SHA1 Message Date
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