Robert Jarzmik <robert.jarz...@free.fr> writes:

>> Have you seen this as well or do you know how exactly that should be
>> worked around?
> Hi Marcel,
>
> I haven't seen that before on my devicetree boards, I will try this evening on
> top of next-20160125.
>
> Could you activate the debug logs in drivers/of/irq.c please, and send me
> privately your boot dmesg ? And I'd like to see your board .dts file and your
> .config also, to compare with mine for the mioa701.
>
> I think in your dm9000 case we have this callstack :
>  - of_irq_get()
>      of_irq_parse_one() => fails, for an unknown reason to me
>                         => I would have expected it return 0
>                         => the following irq_find_host() would return
>                            -EPROBE_DEFER, that's what I'd expect
>      irq_create_of_mapping()
>        irq_create_fwspec_mapping()
>          => error message
>
> What is probable is that gpio-pxa was not probed yet, and this triggers the
> error. What I don't understand is why you don't end up with -EPROBE_DEFER,
> that's why I'd like to have your logs.

BTW, would you try also with the patch at the end of this mail applied ? Just to
verify a wild guess.

Cheers.

-- 
Robert

---8<---
diff --git a/drivers/net/ethernet/davicom/dm9000.c 
b/drivers/net/ethernet/davicom/dm9000.c
index cf94b72dbacd..2c532011ae8e 100644
--- a/drivers/net/ethernet/davicom/dm9000.c
+++ b/drivers/net/ethernet/davicom/dm9000.c
@@ -1509,6 +1509,10 @@ dm9000_probe(struct platform_device *pdev)
                goto out;
        }
 
+       ndev->irq = platform_get_irq(pdev, 0);
+       if (ndev->irq < 0)
+               return ndev->irq;
+
        db->irq_wake = platform_get_irq(pdev, 1);
        if (db->irq_wake >= 0) {
                dev_dbg(db->dev, "wakeup irq %d\n", db->irq_wake);
@@ -1570,7 +1574,6 @@ dm9000_probe(struct platform_device *pdev)
 
        /* fill in parameters for net-dev structure */
        ndev->base_addr = (unsigned long)db->io_addr;
-       ndev->irq       = db->irq_res->start;
 
        /* ensure at least we have a default set of IO routines */
        dm9000_set_io(db, iosize);

Reply via email to