* Arnd Bergmann <a...@arndb.de> [120921 02:19]: > On Thursday 20 September 2012, Tony Lindgren wrote: > > > /* use PIO for small transfers, avoiding DMA setup/teardown overhead and > > > @@ -798,14 +801,26 @@ static int omap2_mcspi_request_dma(struct > > > spi_device *spi) > > > dma_cap_zero(mask); > > > dma_cap_set(DMA_SLAVE, mask); > > > sig = mcspi_dma->dma_rx_sync_dev; > > > - mcspi_dma->dma_rx = dma_request_channel(mask, omap_dma_filter_fn, > > > &sig); > > > + if (spi->dev.of_node) > > > + mcspi_dma->dma_rx = > > > + dma_request_slave_channel(&master->dev, > > > + > > > mcspi_dma->dma_rx_ch_name); > > > + else > > > + mcspi_dma->dma_rx = > > > + dma_request_channel(mask, omap_dma_filter_fn, &sig); > > > if (!mcspi_dma->dma_rx) { > > > dev_err(&spi->dev, "no RX DMA engine channel for McSPI\n"); > > > return -EAGAIN; > > > } > > > > > > > Hmm this does not look nice.. We should be able to somehow not to care about > > the configuration at the mcspi driver level. > > I agree, but as far as I understand Vinod's plans, we would actually move > all drivers over to dma_request_slave_channel() when we have an interface > to register the lookup tables from platform code. > > I think the above is ok for a transitional phase and we can remove the > fallback path when we have converted all platforms using this driver > to either use DT or move to the new style way of passing the channel > configuration.
Can't we come up with a version of dma_request_slave_channel that works both ways for now: mcspi_dma->dma_rx = dma_request_slave_channel_compat(mask, omap_dma_filter_fn, &sig, &master->dev, mcspi_dma->dma_rx_ch_name); ... Then it's just question of patching away two lines later on rather than having to add all this if else to all the drivers first, then patching it away again. Regards, Tony _______________________________________________ Davinci-linux-open-source mailing list Davinci-linux-open-source@linux.davincidsp.com http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source