diff options
author | Solomon Peachy <pizza@shaftnet.org> | 2024-04-12 08:25:35 -0400 |
---|---|---|
committer | Solomon Peachy <pizza@shaftnet.org> | 2024-04-22 15:46:50 -0400 |
commit | 4b423e21f697afa3841ac4ae75d830e0d8c70c27 (patch) | |
tree | 04f8fcf49c0bb2ce7ae064b447e8b08b7f98ea55 | |
parent | 886060475e25d04b9eb1753dbbaea0db8b78a0d4 (diff) | |
download | rockbox-4b423e21f697afa3841ac4ae75d830e0d8c70c27.tar.gz rockbox-4b423e21f697afa3841ac4ae75d830e0d8c70c27.zip |
pp5020: Use DMA Writes by default for SSDs
It is likely that these things accept data far faster than the spinning
rust drives ever would, and while there is a question about PIO timings,
DMA timings seem to be solid.
Change-Id: I70644e0ad85a6ed429c8704e66ca7af91d78765c
-rw-r--r-- | firmware/target/arm/pp/ata-pp5020.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/firmware/target/arm/pp/ata-pp5020.c b/firmware/target/arm/pp/ata-pp5020.c index 77e77cae92..176e74993c 100644 --- a/firmware/target/arm/pp/ata-pp5020.c +++ b/firmware/target/arm/pp/ata-pp5020.c | |||
@@ -173,15 +173,13 @@ bool ata_dma_setup(void *addr, unsigned long bytes, bool write) { | |||
173 | return false; | 173 | return false; |
174 | 174 | ||
175 | /* Writes only need to be word-aligned, but by default DMA | 175 | /* Writes only need to be word-aligned, but by default DMA |
176 | * is not used for writing as it appears to be slower. | 176 | * is not used for writing on non-SSDs as it appears to be slower. |
177 | */ | 177 | */ |
178 | #ifdef ATA_DMA_WRITES | 178 | if (!ata_disk_isssd()) |
179 | if (write && ((unsigned long)addr & 3)) | ||
180 | return false; | 179 | return false; |
181 | #else | 180 | |
182 | if (write) | 181 | if (write && ((unsigned long)addr & 3)) |
183 | return false; | 182 | return false; |
184 | #endif | ||
185 | 183 | ||
186 | #if ATA_MAX_UDMA > 2 | 184 | #if ATA_MAX_UDMA > 2 |
187 | if (dma_needs_boost && !dma_boosted) { | 185 | if (dma_needs_boost && !dma_boosted) { |