[RFC PATCH dtc] C-based DT schema checker integrated into dtc
Stephen Warren
swarren at wwwdotorg.org
Mon Nov 4 16:43:00 EST 2013
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?
More information about the linux-arm-kernel
mailing list