diff options
author | Grigoriy Orlov <gluk@cvs.openbsd.org> | 2002-08-30 16:21:44 +0000 |
---|---|---|
committer | Grigoriy Orlov <gluk@cvs.openbsd.org> | 2002-08-30 16:21:44 +0000 |
commit | 2e38499cf7af3d26f705d646ba0fcafb43d71257 (patch) | |
tree | 558388ab0859995a6edacf1997ed285e2495b264 /sys | |
parent | 307bf53d7b9f1d9e1ea1f4b281bd2ae624cce60b (diff) |
Support for PDC20271 and PDC20276.
Enable UDMA6 for Ultra133 chips (PDC20269, PDC20271 and PDC20276).
PDC20271 and PDC20276 not tested, but Free/NetBSD's source code claims
that they works the same as the PDC20269.
from Alexander Yurchenko <grange@rt.mipt.ru>
csapuntz@ ok.
Diffstat (limited to 'sys')
-rw-r--r-- | sys/dev/pci/pciide.c | 26 |
1 files changed, 22 insertions, 4 deletions
diff --git a/sys/dev/pci/pciide.c b/sys/dev/pci/pciide.c index c733b9741ac..da5952d31e2 100644 --- a/sys/dev/pci/pciide.c +++ b/sys/dev/pci/pciide.c @@ -1,4 +1,4 @@ -/* $OpenBSD: pciide.c,v 1.89 2002/08/09 20:26:45 jsyn Exp $ */ +/* $OpenBSD: pciide.c,v 1.90 2002/08/30 16:21:43 gluk Exp $ */ /* $NetBSD: pciide.c,v 1.127 2001/08/03 01:31:08 tsutsui Exp $ */ /* @@ -467,6 +467,14 @@ const struct pciide_product_desc pciide_promise_products[] = { { PCI_PRODUCT_PROMISE_PDC20269, IDE_PCI_CLASS_OVERRIDE, pdc202xx_chip_map, + }, + { PCI_PRODUCT_PROMISE_PDC20271, + IDE_PCI_CLASS_OVERRIDE, + pdc202xx_chip_map, + }, + { PCI_PRODUCT_PROMISE_PDC20276, + IDE_PCI_CLASS_OVERRIDE, + pdc202xx_chip_map, } }; @@ -3732,11 +3740,19 @@ hpt_pci_intr(arg) (sc)->sc_pp->ide_product == PCI_PRODUCT_PROMISE_PDC20267 || \ (sc)->sc_pp->ide_product == PCI_PRODUCT_PROMISE_PDC20268 || \ (sc)->sc_pp->ide_product == PCI_PRODUCT_PROMISE_PDC20268R || \ - (sc)->sc_pp->ide_product == PCI_PRODUCT_PROMISE_PDC20269) + (sc)->sc_pp->ide_product == PCI_PRODUCT_PROMISE_PDC20269 || \ + (sc)->sc_pp->ide_product == PCI_PRODUCT_PROMISE_PDC20271 || \ + (sc)->sc_pp->ide_product == PCI_PRODUCT_PROMISE_PDC20276) #define PDC_IS_268(sc) \ ((sc)->sc_pp->ide_product == PCI_PRODUCT_PROMISE_PDC20268 || \ (sc)->sc_pp->ide_product == PCI_PRODUCT_PROMISE_PDC20268R || \ - (sc)->sc_pp->ide_product == PCI_PRODUCT_PROMISE_PDC20269) + (sc)->sc_pp->ide_product == PCI_PRODUCT_PROMISE_PDC20269 || \ + (sc)->sc_pp->ide_product == PCI_PRODUCT_PROMISE_PDC20271 || \ + (sc)->sc_pp->ide_product == PCI_PRODUCT_PROMISE_PDC20276) +#define PDC_IS_269(sc) \ + ((sc)->sc_pp->ide_product == PCI_PRODUCT_PROMISE_PDC20269 || \ + (sc)->sc_pp->ide_product == PCI_PRODUCT_PROMISE_PDC20271 || \ + (sc)->sc_pp->ide_product == PCI_PRODUCT_PROMISE_PDC20276) void pdc202xx_chip_map(sc, pa) @@ -3780,7 +3796,9 @@ pdc202xx_chip_map(sc, pa) } sc->sc_wdcdev.PIO_cap = 4; sc->sc_wdcdev.DMA_cap = 2; - if (PDC_IS_265(sc)) + if (PDC_IS_269(sc)) + sc->sc_wdcdev.UDMA_cap = 6; + else if (PDC_IS_265(sc)) sc->sc_wdcdev.UDMA_cap = 5; else if (PDC_IS_262(sc)) sc->sc_wdcdev.UDMA_cap = 4; |