Commit 47821186 authored by Piotr Wojtaszczyk's avatar Piotr Wojtaszczyk Committed by Miquel Raynal
Browse files

mtd: rawnand: lpx32xx: Request DMA channels using DT entries

parent 14427d4b
Loading
Loading
Loading
Loading
+15 −11
Original line number Diff line number Diff line
@@ -574,6 +574,9 @@ static int lpc32xx_dma_setup(struct lpc32xx_nand_host *host)
	struct mtd_info *mtd = nand_to_mtd(&host->nand_chip);
	dma_cap_mask_t mask;

	host->dma_chan = dma_request_chan(mtd->dev.parent, "rx-tx");
	if (!host->dma_chan) {
		/* fallback to request using platform data */
		if (!host->pdata || !host->pdata->dma_filter) {
			dev_err(mtd->dev.parent, "no DMA platform data\n");
			return -ENOENT;
@@ -581,12 +584,13 @@ static int lpc32xx_dma_setup(struct lpc32xx_nand_host *host)

		dma_cap_zero(mask);
		dma_cap_set(DMA_SLAVE, mask);
	host->dma_chan = dma_request_channel(mask, host->pdata->dma_filter,
					     "nand-mlc");
		host->dma_chan = dma_request_channel(mask, host->pdata->dma_filter, "nand-mlc");

		if (!host->dma_chan) {
			dev_err(mtd->dev.parent, "Failed to request DMA channel\n");
			return -EBUSY;
		}
	}

	/*
	 * Set direction to a sensible value even if the dmaengine driver
+15 −11
Original line number Diff line number Diff line
@@ -721,6 +721,9 @@ static int lpc32xx_nand_dma_setup(struct lpc32xx_nand_host *host)
	struct mtd_info *mtd = nand_to_mtd(&host->nand_chip);
	dma_cap_mask_t mask;

	host->dma_chan = dma_request_chan(mtd->dev.parent, "rx-tx");
	if (!host->dma_chan) {
		/* fallback to request using platform data */
		if (!host->pdata || !host->pdata->dma_filter) {
			dev_err(mtd->dev.parent, "no DMA platform data\n");
			return -ENOENT;
@@ -728,12 +731,13 @@ static int lpc32xx_nand_dma_setup(struct lpc32xx_nand_host *host)

		dma_cap_zero(mask);
		dma_cap_set(DMA_SLAVE, mask);
	host->dma_chan = dma_request_channel(mask, host->pdata->dma_filter,
					     "nand-slc");
		host->dma_chan = dma_request_channel(mask, host->pdata->dma_filter, "nand-slc");

		if (!host->dma_chan) {
			dev_err(mtd->dev.parent, "Failed to request DMA channel\n");
			return -EBUSY;
		}
	}

	return 0;
}