Womit testest du denn? Ich kann dir definitiv sagen, dass der Treiber auf mindestens zwei OSen läuft, wenigstens unter qemu und Virtualbox.
Meine Vermutung ist, dass deine Implementierung des CDI-Interfaces für Interrupts ein Problem hat, obwohl ich es auf den ersten Blick nicht sehe. Ein paar printfs sollten dir näheres verraten, warum nichts beim Treiber ankommt.