summaryrefslogtreecommitdiff
path: root/sys/dev/pci/ahci.c
diff options
context:
space:
mode:
authorDavid Gwynne <dlg@cvs.openbsd.org>2007-03-30 06:59:47 +0000
committerDavid Gwynne <dlg@cvs.openbsd.org>2007-03-30 06:59:47 +0000
commitdd627cdfb8b2d281f7572534b6a3120b47ebd3a7 (patch)
tree7493025695a801a3f36ae1edbaac32ed3cfec9db /sys/dev/pci/ahci.c
parentf5fef1bd75714be116ca4531c3200ebfc25afa3f (diff)
the VT8251 SATA says it is ahci, but we aren't ready for it. we need to
quirk a few things before it will work. this blacklists that controller in ahci so pciide will be able to match it instead. found by jasper@
Diffstat (limited to 'sys/dev/pci/ahci.c')
-rw-r--r--sys/dev/pci/ahci.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/sys/dev/pci/ahci.c b/sys/dev/pci/ahci.c
index fdf049ef4c0..f2e51819903 100644
--- a/sys/dev/pci/ahci.c
+++ b/sys/dev/pci/ahci.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ahci.c,v 1.105 2007/03/29 07:40:10 pascoe Exp $ */
+/* $OpenBSD: ahci.c,v 1.106 2007/03/30 06:59:46 dlg Exp $ */
/*
* Copyright (c) 2006 David Gwynne <dlg@openbsd.org>
@@ -395,6 +395,7 @@ struct ahci_device {
const struct ahci_device *ahci_lookup_device(struct pci_attach_args *);
+int ahci_no_match(struct pci_attach_args *);
int ahci_jmicron_match(struct pci_attach_args *);
int ahci_jmicron_attach(struct pci_attach_args *);
@@ -408,7 +409,9 @@ static const struct ahci_device ahci_devices[] = {
{ PCI_VENDOR_JMICRON, PCI_PRODUCT_JMICRON_JMB365,
ahci_jmicron_match, ahci_jmicron_attach },
{ PCI_VENDOR_JMICRON, PCI_PRODUCT_JMICRON_JMB366,
- ahci_jmicron_match, ahci_jmicron_attach }
+ ahci_jmicron_match, ahci_jmicron_attach },
+ { PCI_VENDOR_VIATECH, PCI_PRODUCT_VIATECH_VT8251_SATA,
+ ahci_no_match, NULL }
};
int ahci_match(struct device *, void *, void *);
@@ -518,6 +521,12 @@ ahci_lookup_device(struct pci_attach_args *pa)
}
int
+ahci_no_match(struct pci_attach_args *pa)
+{
+ return (0);
+}
+
+int
ahci_jmicron_match(struct pci_attach_args *pa)
{
if (pa->pa_function != 0)