From f2f35aa2a1301782bc0c2ff23c7488e4842406b0 Mon Sep 17 00:00:00 2001 From: Grazvydas Ignotas Date: Sat, 24 Jan 2009 14:35:32 +0200 Subject: [PATCH] Fix DMA_WORKAROUND Use better way to detect non direct-mapped RAM to prevent crashes later on. --- sta_dk_4_0_4_32/pform/linux/src/tnetw_sdio.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/sta_dk_4_0_4_32/pform/linux/src/tnetw_sdio.c b/sta_dk_4_0_4_32/pform/linux/src/tnetw_sdio.c index bc88b9c..a8a535e 100755 --- a/sta_dk_4_0_4_32/pform/linux/src/tnetw_sdio.c +++ b/sta_dk_4_0_4_32/pform/linux/src/tnetw_sdio.c @@ -33,7 +33,6 @@ extern int sdio_reset_comm(struct mmc_card *card); static struct sdio_func *tiwlan_func = NULL; static int sdio_reset_flag = 0; #ifdef DM_DMA_WORKAROUND -#define DMA_THRESHOLD_SIZE 64 static void *sdio_dma_ptr = NULL; #endif /*-------------------------------------------------------------------*/ @@ -158,7 +157,7 @@ SDIO_Status SDIO_SyncRead(SDIO_Handle Handle, SDIO_Request_t *Req) while(retries) { if( retries > 2 ) #ifdef DM_DMA_WORKAROUND - if( Req->buffer_len < DMA_THRESHOLD_SIZE ) { + if( virt_addr_valid(Req->buffer) ) { rc = sdio_memcpy_fromio(func, Req->buffer, Req->peripheral_addr, Req->buffer_len); } else { @@ -203,7 +202,7 @@ SDIO_Status SDIO_SyncWrite(SDIO_Handle Handle, SDIO_Request_t *Req) while(retries) { if( retries > 2 ) { #ifdef DM_DMA_WORKAROUND - if( Req->buffer_len < DMA_THRESHOLD_SIZE ) { + if( virt_addr_valid(Req->buffer) ) { dma_ptr = Req->buffer; } else { -- 2.39.5