From 4b423e21f697afa3841ac4ae75d830e0d8c70c27 Mon Sep 17 00:00:00 2001 From: Solomon Peachy Date: Fri, 12 Apr 2024 08:25:35 -0400 Subject: 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 --- firmware/target/arm/pp/ata-pp5020.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) (limited to 'firmware/target/arm/pp/ata-pp5020.c') 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) { return false; /* Writes only need to be word-aligned, but by default DMA - * is not used for writing as it appears to be slower. + * is not used for writing on non-SSDs as it appears to be slower. */ -#ifdef ATA_DMA_WRITES - if (write && ((unsigned long)addr & 3)) + if (!ata_disk_isssd()) return false; -#else - if (write) + + if (write && ((unsigned long)addr & 3)) return false; -#endif #if ATA_MAX_UDMA > 2 if (dma_needs_boost && !dma_boosted) { -- cgit v1.2.3