diff options
author | Solomon Peachy <pizza@shaftnet.org> | 2024-07-16 13:36:02 -0400 |
---|---|---|
committer | Solomon Peachy <pizza@shaftnet.org> | 2024-07-16 13:37:14 -0400 |
commit | 9c53fa1b0ad35c314c5b18775856032fb200bcbb (patch) | |
tree | 0c28331007fc7c44441d7bce782e7f10c221bbfa /firmware/target/arm/pp | |
parent | a6f0044d4078cb6be44d271fb618e8d8e7ce5bb7 (diff) | |
download | rockbox-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
Diffstat (limited to 'firmware/target/arm/pp')
-rw-r--r-- | firmware/target/arm/pp/ata-pp5020.c | 11 |
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) { |