summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSolomon Peachy <pizza@shaftnet.org>2024-07-16 13:36:02 -0400
committerSolomon Peachy <pizza@shaftnet.org>2024-07-16 13:37:14 -0400
commit9c53fa1b0ad35c314c5b18775856032fb200bcbb (patch)
tree0c28331007fc7c44441d7bce782e7f10c221bbfa
parenta6f0044d4078cb6be44d271fb618e8d8e7ce5bb7 (diff)
downloadrockbox-9c53fa1b0ad35c314c5b18775856032fb200bcbb.tar.gz
rockbox-9c53fa1b0ad35c314c5b18775856032fb200bcbb.zip
pp5020: It's okay to use DMA reads on non-SSDs
Fixes a regression introduced in 4b423e21f697af Change-Id: Ief4a4a562840524b98ad5988999bac87586dec41
-rw-r--r--firmware/target/arm/pp/ata-pp5020.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/firmware/target/arm/pp/ata-pp5020.c b/firmware/target/arm/pp/ata-pp5020.c
index 176e74993c..f247a44171 100644
--- a/firmware/target/arm/pp/ata-pp5020.c
+++ b/firmware/target/arm/pp/ata-pp5020.c
@@ -175,11 +175,12 @@ bool ata_dma_setup(void *addr, unsigned long bytes, bool write) {
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 on non-SSDs as it appears to be slower. 176 * is not used for writing on non-SSDs as it appears to be slower.
177 */ 177 */
178 if (!ata_disk_isssd()) 178 if (write) {
179 return false; 179 if ((unsigned long)addr & 3)
180 180 return false;
181 if (write && ((unsigned long)addr & 3)) 181 if (!ata_disk_isssd())
182 return false; 182 return false;
183 }
183 184
184#if ATA_MAX_UDMA > 2 185#if ATA_MAX_UDMA > 2
185 if (dma_needs_boost && !dma_boosted) { 186 if (dma_needs_boost && !dma_boosted) {