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