-/* $OpenBSD: nvme_pci.c,v 1.5 2016/11/10 11:56:41 mpi Exp $ */
+/* $OpenBSD: nvme_pci.c,v 1.6 2017/07/03 23:27:53 dlg Exp $ */
/*
* Copyright (c) 2014 David Gwynne <dlg@openbsd.org>
return (0);
}
+static const struct pci_matchid nvme_msi_blacklist[] = {
+ { PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_OPTANE },
+};
+
void
nvme_pci_attach(struct device *parent, struct device *self, void *aux)
{
psc->psc_pc = pa->pa_pc;
sc->sc_dmat = pa->pa_dmat;
+ if (pci_matchbyid(pa, nvme_msi_blacklist, nitems(nvme_msi_blacklist)))
+ CLR(pa->pa_flags, PCI_FLAGS_MSI_ENABLED);
+
maptype = pci_mapreg_type(pa->pa_pc, pa->pa_tag, NVME_PCI_BAR);
if (pci_mapreg_map(pa, NVME_PCI_BAR, maptype, 0,
&sc->sc_iot, &sc->sc_ioh, NULL, &sc->sc_ios, 0) != 0) {