I still don't see much evidence that interrupts are actually functioning here.I tried the patch, but a get a kernel panic on boot with it. I can try to get a screenshot of it tomorrow.
It would be good to see /proc/interrupts before/after libata tries to talk to it.
Let's assume for the moment that interrupts are b0rken.
The legacy IDE driver can talk to such devices completely without interrupts,
if the IDE polling patch (below) is applied.
So, Robert: could you try again with the old IDE driver,
except apply this patch to it first? This will give valuable info.