Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 77553
b: refs/heads/master
c: 9a788c6
h: refs/heads/master
i:
  77551: 8a88a15
v: v3
  • Loading branch information
Bridge Wu authored and Russell King committed Jan 26, 2008
1 parent 423901a commit a03aba8
Show file tree
Hide file tree
Showing 3 changed files with 34 additions and 8 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 64eb036af42d3816364c4db49d93be3a4614389c
refs/heads/master: 9a788c6b78802b4a378be3f0d4c2da30da811620
10 changes: 10 additions & 0 deletions trunk/arch/arm/mach-pxa/generic.c
Original file line number Diff line number Diff line change
Expand Up @@ -259,6 +259,16 @@ static struct resource pxamci_resources[] = {
.end = IRQ_MMC,
.flags = IORESOURCE_IRQ,
},
[2] = {
.start = 21,
.end = 21,
.flags = IORESOURCE_DMA,
},
[3] = {
.start = 22,
.end = 22,
.flags = IORESOURCE_DMA,
},
};

static u64 pxamci_dmamask = 0xffffffffUL;
Expand Down
30 changes: 23 additions & 7 deletions trunk/drivers/mmc/host/pxamci.c
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,8 @@ struct pxamci_host {
unsigned int dma_len;

unsigned int dma_dir;
unsigned int dma_drcmrrx;
unsigned int dma_drcmrtx;
};

static void pxamci_stop_clock(struct pxamci_host *host)
Expand Down Expand Up @@ -131,13 +133,13 @@ static void pxamci_setup_data(struct pxamci_host *host, struct mmc_data *data)
if (data->flags & MMC_DATA_READ) {
host->dma_dir = DMA_FROM_DEVICE;
dcmd = DCMD_INCTRGADDR | DCMD_FLOWTRG;
DRCMRTXMMC = 0;
DRCMRRXMMC = host->dma | DRCMR_MAPVLD;
DRCMR(host->dma_drcmrtx) = 0;
DRCMR(host->dma_drcmrrx) = host->dma | DRCMR_MAPVLD;
} else {
host->dma_dir = DMA_TO_DEVICE;
dcmd = DCMD_INCSRCADDR | DCMD_FLOWSRC;
DRCMRRXMMC = 0;
DRCMRTXMMC = host->dma | DRCMR_MAPVLD;
DRCMR(host->dma_drcmrrx) = 0;
DRCMR(host->dma_drcmrtx) = host->dma | DRCMR_MAPVLD;
}

dcmd |= DCMD_BURST32 | DCMD_WIDTH1;
Expand Down Expand Up @@ -468,7 +470,7 @@ static int pxamci_probe(struct platform_device *pdev)
{
struct mmc_host *mmc;
struct pxamci_host *host = NULL;
struct resource *r;
struct resource *r, *dmarx, *dmatx;
int ret, irq;

r = platform_get_resource(pdev, IORESOURCE_MEM, 0);
Expand Down Expand Up @@ -583,6 +585,20 @@ static int pxamci_probe(struct platform_device *pdev)

platform_set_drvdata(pdev, mmc);

dmarx = platform_get_resource(pdev, IORESOURCE_DMA, 0);
if (!dmarx) {
ret = -ENXIO;
goto out;
}
host->dma_drcmrrx = dmarx->start;

dmatx = platform_get_resource(pdev, IORESOURCE_DMA, 1);
if (!dmatx) {
ret = -ENXIO;
goto out;
}
host->dma_drcmrtx = dmatx->start;

if (host->pdata && host->pdata->init)
host->pdata->init(&pdev->dev, pxamci_detect_irq, mmc);

Expand Down Expand Up @@ -626,8 +642,8 @@ static int pxamci_remove(struct platform_device *pdev)
END_CMD_RES|PRG_DONE|DATA_TRAN_DONE,
host->base + MMC_I_MASK);

DRCMRRXMMC = 0;
DRCMRTXMMC = 0;
DRCMR(host->dma_drcmrrx) = 0;
DRCMR(host->dma_drcmrtx) = 0;

free_irq(host->irq, host);
pxa_free_dma(host->dma);
Expand Down

0 comments on commit a03aba8

Please sign in to comment.