• Status Closed
  • Percent Complete
  • Task Type Patches
  • Category Operating System/Drivers
  • Assigned To No-one
  • Operating System All players
  • Severity Low
  • Priority Very Low
  • Reported Version Daily build (which?)
  • Due in Version Undecided
  • Due Date Undecided
  • Votes
  • Private
Attached to Project: Rockbox
Opened by torne - 2009-11-21
Last edited by torne - 2009-11-24

FS#10798 - Unify ata_read_sectors and ata_write_sectors

This patch unifies the ATA driver's read/write sector implementation. This should have no effect on reading, but has several functional changes to writing:

1) Writes will be retried if they fail, with the same timeout as reads.
2) Write errors which previously caused panics now return regular error codes (but the FAT code will panic anyway when it sees the error).
3) PIO writes are now done with multi-sector transfers, which should be a little faster.

This is intended to be a precursor, or perhaps a substitute, to submitting  FS#9721 .

This affects all players with regular ATA hard disks (anything that uses firmware/drivers/ata.c) and thus I'd like to see some test results from a number of players before committing it - testing with/without LBA48, with/without large physical sectors, and with/without DMA at a minimum…

Commentary on the actual code would also be welcomed…

Closed by  torne
2009-11-24 18:04
Reason for closing:  Fixed
Additional comments about closing:   Warning: Undefined array key "typography" in /home/rockbox/flyspray/plugins/dokuwiki/inc/parserutils.php on line 371 Warning: Undefined array key "camelcase" in /home/rockbox/flyspray/plugins/dokuwiki/inc/parserutils.php on line 407


torne commented on 2009-11-22 23:42

Renamed _readwrite_sectors to ata_transfer_sectors, and removed the extra layer of shim functions _read_sectors and _write_sectors on large physical sector builds, since they are already wrapped. No functional changes.

torne commented on 2009-11-23 00:03

Oops, spoke too soon, this version actually compiles on non-large-physical-sector builds.


Available keyboard shortcuts


Task Details

Task Editing