summaryrefslogtreecommitdiff
path: root/firmware/target/arm/pp/ata-pp5020.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/target/arm/pp/ata-pp5020.c')
-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) {