> Date: Wed, 1 Jun 2011 23:13:04 -0400
> From: Kenneth R Westerback <[email protected]>
>
> 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;
> }