Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/sys/dev/pci Use UDMA/100 on SiS 735 chipset.
details: https://anonhg.NetBSD.org/src/rev/f8846b4d05dd
branches: trunk
changeset: 516042:f8846b4d05dd
user: tron <tron%NetBSD.org@localhost>
date: Sun Oct 14 11:21:10 2001 +0000
description:
Use UDMA/100 on SiS 735 chipset.
diffstat:
sys/dev/pci/pciide.c | 29 ++++++++++++++++++++---------
1 files changed, 20 insertions(+), 9 deletions(-)
diffs (73 lines):
diff -r b1add9766fea -r f8846b4d05dd sys/dev/pci/pciide.c
--- a/sys/dev/pci/pciide.c Sun Oct 14 01:38:53 2001 +0000
+++ b/sys/dev/pci/pciide.c Sun Oct 14 11:21:10 2001 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: pciide.c,v 1.129 2001/09/24 20:03:47 bouyer Exp $ */
+/* $NetBSD: pciide.c,v 1.130 2001/10/14 11:21:10 tron Exp $ */
/*
@@ -180,11 +180,12 @@
void sis_chip_map __P((struct pciide_softc*, struct pci_attach_args*));
void sis_setup_channel __P((struct channel_softc*));
+static int sis_hostbr_match __P(( struct pci_attach_args *));
void acer_chip_map __P((struct pciide_softc*, struct pci_attach_args*));
void acer_setup_channel __P((struct channel_softc*));
int acer_pci_intr __P((void *));
-int acer_isabr_match __P(( struct pci_attach_args *));
+static int acer_isabr_match __P(( struct pci_attach_args *));
void pdc202xx_chip_map __P((struct pciide_softc*, struct pci_attach_args*));
void pdc202xx_setup_channel __P((struct channel_softc*));
@@ -2737,6 +2738,14 @@
}
}
+static int
+sis_hostbr_match(pa)
+ struct pci_attach_args *pa;
+{
+ return ((PCI_VENDOR(pa->pa_id) == PCI_VENDOR_SIS) &&
+ (PCI_PRODUCT(pa->pa_id) == PCI_PRODUCT_SIS_735));
+}
+
void
sis_chip_map(sc, pa)
struct pciide_softc *sc;
@@ -2782,7 +2791,12 @@
sc->sc_wdcdev.PIO_cap = 4;
sc->sc_wdcdev.DMA_cap = 2;
if (sc->sc_wdcdev.cap & WDC_CAPABILITY_UDMA)
- sc->sc_wdcdev.UDMA_cap = 2;
+ /*
+ * Use UDMA/100 on SiS 735 chipset and UDMA/33 on other
+ * chipsets.
+ */
+ sc->sc_wdcdev.UDMA_cap =
+ pci_find_device(pa, sis_hostbr_match) ? 5 : 2;
sc->sc_wdcdev.set_modes = sis_setup_channel;
sc->sc_wdcdev.channels = sc->wdc_chanarray;
@@ -2888,17 +2902,14 @@
pciide_print_modes(cp);
}
-int
+static int
acer_isabr_match(pa)
struct pci_attach_args *pa;
{
- if (PCI_VENDOR(pa->pa_id) == PCI_VENDOR_ALI &&
- PCI_PRODUCT(pa->pa_id) == PCI_PRODUCT_ALI_M1543)
- return 1;
- return 0;
+ return ((PCI_VENDOR(pa->pa_id) == PCI_VENDOR_ALI) &&
+ (PCI_PRODUCT(pa->pa_id) == PCI_PRODUCT_ALI_M1543));
}
-
void
acer_chip_map(sc, pa)
struct pciide_softc *sc;
Home |
Main Index |
Thread Index |
Old Index