Open pietrushnic opened 9 years ago
This seems to be the call chain:
device_initcall(pl011_dma_initcall);
(see bottom of wiki for when device_initcall is called)
pl011_dma_initcall->pl011_dma_probe_initcall->dma_request_slave_channel->dma_request_slave_channel_reason->of_dma_request_slave_channel:
count = of_property_count_strings(np, "dma-names");
if (count < 0) {
pr_err("%s: dma-names property of node '%s' missing or empty\n",
__func__, np->full_name);
return ERR_PTR(-ENODEV);
}
All of this is selected with (above pl011_dma_probe_initcall):
#ifdef CONFIG_DMA_ENGINE
So I guess it's not possible to loose this error?
Yes, I also saw that in that form error will alway occure, but the question is why we always assume that amba-pl011 will have DMA enabled. As life shows it is possible that i.e. RPi has pl011 and dma is not enabled. I don't heve expeirence with think kind of annoying erro messages.
I will write email to maintener.
I agree with you, that the driver should check (if possible) if DMA is enabled.
But in a first upstreaming run I would look for functionality, and in a second run I would invest time in such messages ...
Maybe adding this will silence the error message:
dma-names = "n/a";
This will let it past the property check, but since there is no such channel, it will still return ENODEV.
According to BCM2835 ARM Peripherals spec:
Despite that when we enable DMA we get:
This checks should be ommited if DMA is not supported. We should figure out if want to fix it ? If yes then how ?