> Date: Wed, 1 Jun 2011 23:13:04 -0400 > From: Kenneth R Westerback <kwesterb...@rogers.com> > > Try msi and fallback to old intr mapping. Works on my box where the > ahci is on a non-msi bus.
In other words; ou didn't really test this ;) > ok? No. I've looked at the Linux code, and their code suggests there are some AHCI controllers where MSI is broken. > Index: ahci.c > =================================================================== > RCS file: /cvs/src/sys/dev/pci/ahci.c,v > retrieving revision 1.178 > diff -u -p -r1.178 ahci.c > --- ahci.c 8 May 2011 19:46:10 -0000 1.178 > +++ ahci.c 1 Jun 2011 14:53:05 -0000 > @@ -762,7 +762,7 @@ ahci_pci_attach(struct device *parent, s > } > } > > - if (pci_intr_map(pa, &ih) != 0) { > + if (pci_intr_map_msi(pa, &ih) != 0 && pci_intr_map(pa, &ih) != 0) { > printf(": unable to map interrupt\n"); > return; > }