> 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;
>       }

Reply via email to