What are you talking about?
You have no clue about how the b44 hardware works, do you?
Please explain in detail how ssb is wrong.
I tested this code on _all_ of my machines. These include:
Big-Endian powerpc machine.
Little-Endian i386 machine.
OpenWRT router device (ssb is capable of booting this device,
with some additional code, which is in the OpenWRT tree).
So, now I count the machines (not that this number matters AT ALL):
One, two, three. Oh, there we go. What a surprise...
No, explain why.
In fact, it's considered to be a very elegant solution by various
developers who actually have a clue about how the hardware works.
ssb scales from a small MIPS embedded device to real big machines.
On your architecture, perhaps. I don't know.
Ok, now I show you the code which determines the IRQ number in ssb:
sdev->irq = bus->host_pci->irq;
That's simple, isn't it?
It simply copies the IRQ number from the original PCI device.
I bet your bug is _not_ caused by ssb, but by some other breakage
in another subsystem. Maybe ACPI or APIC is broken? Try to boot
the machine without ACPI and/or APIC.
I just downloaded latest -mm to test it on my machine, but the machine
keeps freezing with that kernel. But I get IRQ 21 for the b44 device.
--
Greetings Michael.
-