Fallback to the known fec irq number on imx.6 if the fdt
authorjsg <jsg@openbsd.org>
Fri, 22 Jul 2016 13:20:30 +0000 (13:20 +0000)
committerjsg <jsg@openbsd.org>
Fri, 22 Jul 2016 13:20:30 +0000 (13:20 +0000)
interrupts-extended property is missing or not the size we expect.

Some dtbs implement a workaround for "ERR006687 ENET: Only the ENET
wake-up interrupt request can wake the system from Wait mode" suggested
by the IMX6DQCE errata document to set an undocumented gpio mux mode and
handle the interrupt via gpio.

We don't support gpio interrupts yet, hopefully this change is enough
to make interrupts work on wandboard and sabre lite again till we do.

Discussed with kettenis and patrick, tested on sabre lite by patrick.

sys/arch/armv7/imx/if_fec.c

index 54df485..d9ef8a5 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: if_fec.c,v 1.8 2016/07/21 02:32:23 jsg Exp $ */
+/* $OpenBSD: if_fec.c,v 1.9 2016/07/22 13:20:30 jsg Exp $ */
 /*
  * Copyright (c) 2012-2013 Patrick Wildt <patrick@blueri.se>
  *
@@ -303,7 +303,7 @@ fec_attach(struct device *parent, struct device *self, void *aux)
 
        if (OF_getpropintarray(faa->fa_node, "interrupts-extended",
            intr, sizeof(intr)) < sizeof(intr))
-               return;
+               intr[2] = 0x76;
 
        sc->sc_node = faa->fa_node;
        sc->sc_iot = faa->fa_iot;