On 11/04/2013 02:29 PM, Jason Gunthorpe wrote: > On Mon, Nov 04, 2013 at 09:43:22PM +0100, Arnd Bergmann wrote: > >> /* >> * this lists all properties we access from the driver. The list >> * is interpreted by devm_probe() and can be programmatically >> * verified to match the binding. >> */ >> static const struct devm_probe foo_probe_list[] = { >> DEVM_ALLOC(foo_priv), >> DEVM_IOMAP(foo_priv, regs, 0, 0), >> DEVM_PROP_BOOL(foo_priv, oldstyle_dma, "foo,oldstyle-dma"), >> DEVM_DMA_SLAVE(foo_priv, rxdma, "rx"); >> DEVM_DMA_SLAVE(foo_priv, txdma, "tx"); >> DEVM_GPIO(foo_priv, gpio, 0); >> DEVM_IRQ_NAMED(foo_priv, irq, foo_irq_handler, "fifo", IRQF_SHARED), >> {}, >> }; > > Drivers are required to gain control of, and disable the device before > they bind and enable things like DMA or interrupts. > > At the very least the action list above needs an explicit callback to > do that step.. For IRQs, it looks like Arnd's code was simply parsing the IRQ specifier, and converting it to the Linux-internal number. The actual request of the IRQ was presumably left to probe(). I think theren's no issue here. For DMA, it does look like Arnd's code was requesting it too, but that should also be fine; as long as no transactions are actually issued against that DMA slave channel, then the HW state shouldn't matter? -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html