Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=6ba736a10e4ae63b38ccfee9f22b3263a6e5d050
Commit:     6ba736a10e4ae63b38ccfee9f22b3263a6e5d050
Parent:     c0f3b6c777af071063984fdbc4efb6c904f665f4
Author:     Pierre Ossman <[EMAIL PROTECTED]>
AuthorDate: Sun May 13 22:39:23 2007 +0200
Committer:  Pierre Ossman <[EMAIL PROTECTED]>
CommitDate: Mon May 14 18:51:37 2007 +0200

    sdhci: handle dma boundary interrupts
    
    When the device hits certain memory boundaries, it signals an
    interrupt and expects to be serviced. We don't need the feature
    but we need to make sure the device doesn't stall.
    
    Signed-off-by: Pierre Ossman <[EMAIL PROTECTED]>
---
 drivers/mmc/host/sdhci.c |    9 +++++++++
 1 files changed, 9 insertions(+), 0 deletions(-)

diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c
index ff5bf73..a359efd 100644
--- a/drivers/mmc/host/sdhci.c
+++ b/drivers/mmc/host/sdhci.c
@@ -963,6 +963,15 @@ static void sdhci_data_irq(struct sdhci_host *host, u32 
intmask)
                if (intmask & (SDHCI_INT_DATA_AVAIL | SDHCI_INT_SPACE_AVAIL))
                        sdhci_transfer_pio(host);
 
+               /*
+                * We currently don't do anything fancy with DMA
+                * boundaries, but as we can't disable the feature
+                * we need to at least restart the transfer.
+                */
+               if (intmask & SDHCI_INT_DMA_END)
+                       writel(readl(host->ioaddr + SDHCI_DMA_ADDRESS),
+                               host->ioaddr + SDHCI_DMA_ADDRESS);
+
                if (intmask & SDHCI_INT_DATA_END)
                        sdhci_finish_data(host);
        }
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to