[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20120921183729.GI16522@beef>
Date: Fri, 21 Sep 2012 14:37:29 -0400
From: Matt Porter <mporter@...com>
To: Tony Lindgren <tony@...mide.com>
Cc: Arnd Bergmann <arnd@...db.de>,
Linux DaVinci Kernel List
<davinci-linux-open-source@...ux.davincidsp.com>,
Linux OMAP List <linux-omap@...r.kernel.org>,
Russell King <linux@....linux.org.uk>,
Benoit Cousson <b-cousson@...com>,
Linux Documentation List <linux-doc@...r.kernel.org>,
Vinod Koul <vinod.koul@...el.com>,
Linux MMC List <linux-mmc@...r.kernel.org>,
Devicetree Discuss <devicetree-discuss@...ts.ozlabs.org>,
Mark Brown <broonie@...nsource.wolfsonmicro.com>,
Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
Rob Herring <rob.herring@...xeda.com>,
Grant Likely <grant.likely@...retlab.ca>,
Rob Landley <rob@...dley.net>, Dan Williams <djbw@...com>,
Linux SPI Devel List
<spi-devel-general@...ts.sourceforge.net>,
Chris Ball <cjb@...top.org>,
Linux ARM Kernel List <linux-arm-kernel@...ts.infradead.org>
Subject: Re: [RFC PATCH 10/13] spi: omap2-mcspi: dma_request_slave_channel()
support for DT platforms
On Fri, Sep 21, 2012 at 08:42:47AM -0700, Tony Lindgren wrote:
> * Arnd Bergmann <arnd@...db.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.
I think that something like that is workable with the implementation
simply checking for of_node to do the right thing.
-Matt
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists