> > Unsurprisingly, I also couldn't get the mode switching between DMA and > > PIOQUEUE to work :( > > I'd say more work should be invested into this. I ran out of ideas. Next thing I'd do is to ask FSL if this is possible at all. Yet, I'd like to have some solution for 3.7. > Besides, what about rather > trying PIO + DMA instead of PIOQ + DMA? That could also be a solution. > > However, I did come up with an idea how to select DMA or PIOQUEUE per > > bus via devicetree. If we change the view from "I want PIOQUEUE" to "I > > don't want DMA", we could simply override the default DMA configuration > > in the devicetree with, e.g.: > > > > i2c0: i2c@80058000 { > > ... > > fsl,i2c-dma-channel = <>; > > }; > > > > So, no DMA channel set up will fall back to PIOQUEUE. This is more > > generic than a custom binding, because if one doesn't want DMA, don't > > configure it. That should also work with other devices which can fall > > back to something. I think this is worth trying, another advantage is > > that it doesn't expose something new to the user. So, there is no legacy > > support needed in case there will be a better way of configuration. > > Ewww ... that's such an ad-hoc hack. Please give reasons. > Besides, someone might simply forget to add the binding, you'd need to > print a warning. ? It is "on" by default because of the entry in the dtsi. And the status of DMA will be printed. > > + dev_info(dev, "registered. DMA: %s\n", i2c->dma_mode ? "on" : "off"); > > dev_debug() ? Yup. -- Pengutronix e.K. | Wolfram Sang | Industrial Linux Solutions | http://www.pengutronix.de/ |