From d3e7688833e00cce046ac41351743aea4bedad5b Mon Sep 17 00:00:00 2001 From: Blue Swirl Date: Sat, 11 Sep 2010 16:39:32 +0000 Subject: [PATCH] Set DMA controller enable bit DMA should be enabled before using it. Signed-off-by: Blue Swirl git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@862 f158a5a8-5612-0410-a976-696ce0be7e32 --- drivers/esp.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/esp.c b/drivers/esp.c index 8196ffb..869421d 100644 --- a/drivers/esp.c +++ b/drivers/esp.c @@ -95,8 +95,8 @@ do_command(esp_private_t *esp, sd_private_t *sd, int cmdlen, int replylen) // Set DMA length esp->ll->regs[ESP_TCLOW] = cmdlen & 0xff; esp->ll->regs[ESP_TCMED] = (cmdlen >> 8) & 0xff; - // Set DMA direction - esp->espdma.regs->cond_reg = 0; + // Set DMA direction and enable DMA + esp->espdma.regs->cond_reg = DMA_ENABLE; // Set ATN, issue command esp->ll->regs[ESP_CMD] = ESP_CMD_SELA | ESP_CMD_DMA; // Wait for DMA to complete. Can this fail? @@ -121,7 +121,7 @@ do_command(esp_private_t *esp, sd_private_t *sd, int cmdlen, int replylen) esp->ll->regs[ESP_TCLOW] = replylen & 0xff; esp->ll->regs[ESP_TCMED] = (replylen >> 8) & 0xff; // Set DMA direction - esp->espdma.regs->cond_reg = DMA_ST_WRITE; + esp->espdma.regs->cond_reg = DMA_ST_WRITE | DMA_ENABLE; // Transfer esp->ll->regs[ESP_CMD] = ESP_CMD_TI | ESP_CMD_DMA; // Wait for DMA to complete