ramips: mtk-mmc: don't advertise highmem support.
of_dma_configure() sets a default ->dma_mask of DMA_BIT_MASK(32), claiming devices can DMA from the full 32bit address space. The mtk-mmc driver does not support access to highmem pages, so it is really limited to the bottom 512M (actually 448M due to 64M of IO space). Setting ->dma_mask to NULL causes mmc_setup_queue() to fall-back to using BLK_BOUNCE_HIGH to tell the block layer to use a bounce-buffer for any highmem pages requiring IO. Signed-off-by: NeilBrown <neil@brown.name> Signed-off-by: Felix Fietkau <nbd@nbd.name>
This commit is contained in:
parent
1c37cbbbec
commit
f27336e115
2 changed files with 2 additions and 0 deletions
|
@ -2821,6 +2821,7 @@ static int msdc_drv_probe(struct platform_device *pdev)
|
||||||
|
|
||||||
host->dma.used_gpd = 0;
|
host->dma.used_gpd = 0;
|
||||||
host->dma.used_bd = 0;
|
host->dma.used_bd = 0;
|
||||||
|
mmc_dev(mmc)->dma_mask = NULL;
|
||||||
|
|
||||||
/* using dma_alloc_coherent*/ /* todo: using 1, for all 4 slots */
|
/* using dma_alloc_coherent*/ /* todo: using 1, for all 4 slots */
|
||||||
host->dma.gpd = dma_alloc_coherent(NULL, MAX_GPD_NUM * sizeof(gpd_t), &host->dma.gpd_addr, GFP_KERNEL);
|
host->dma.gpd = dma_alloc_coherent(NULL, MAX_GPD_NUM * sizeof(gpd_t), &host->dma.gpd_addr, GFP_KERNEL);
|
||||||
|
|
|
@ -2821,6 +2821,7 @@ static int msdc_drv_probe(struct platform_device *pdev)
|
||||||
|
|
||||||
host->dma.used_gpd = 0;
|
host->dma.used_gpd = 0;
|
||||||
host->dma.used_bd = 0;
|
host->dma.used_bd = 0;
|
||||||
|
mmc_dev(mmc)->dma_mask = NULL;
|
||||||
|
|
||||||
/* using dma_alloc_coherent*/ /* todo: using 1, for all 4 slots */
|
/* using dma_alloc_coherent*/ /* todo: using 1, for all 4 slots */
|
||||||
host->dma.gpd = dma_alloc_coherent(NULL, MAX_GPD_NUM * sizeof(gpd_t), &host->dma.gpd_addr, GFP_KERNEL);
|
host->dma.gpd = dma_alloc_coherent(NULL, MAX_GPD_NUM * sizeof(gpd_t), &host->dma.gpd_addr, GFP_KERNEL);
|
||||||
|
|
Loading…
Reference in a new issue