summaryrefslogtreecommitdiff
path: root/firmware/target/arm/pp/ata-pp5020.c
diff options
context:
space:
mode:
authorSolomon Peachy <pizza@shaftnet.org>2024-04-12 08:25:35 -0400
committerSolomon Peachy <pizza@shaftnet.org>2024-04-22 15:46:50 -0400
commit4b423e21f697afa3841ac4ae75d830e0d8c70c27 (patch)
tree04f8fcf49c0bb2ce7ae064b447e8b08b7f98ea55 /firmware/target/arm/pp/ata-pp5020.c
parent886060475e25d04b9eb1753dbbaea0db8b78a0d4 (diff)
downloadrockbox-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
Diffstat (limited to 'firmware/target/arm/pp/ata-pp5020.c')
-rw-r--r--firmware/target/arm/pp/ata-pp5020.c10
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) {