Proper ICH8M IDE Controller support (missed in previous).
This commit is contained in:
parent
5f6ecf6711
commit
930907a507
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: piixide.c,v 1.39 2007/08/31 00:01:17 xtraeme Exp $ */
|
||||
/* $NetBSD: piixide.c,v 1.40 2007/08/31 01:35:07 xtraeme Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1999, 2000, 2001 Manuel Bouyer.
|
||||
|
@ -30,7 +30,7 @@
|
|||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: piixide.c,v 1.39 2007/08/31 00:01:17 xtraeme Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: piixide.c,v 1.40 2007/08/31 01:35:07 xtraeme Exp $");
|
||||
|
||||
#include <sys/param.h>
|
||||
#include <sys/systm.h>
|
||||
|
@ -347,6 +347,7 @@ piix_chip_map(struct pciide_softc *sc, struct pci_attach_args *pa)
|
|||
case PCI_PRODUCT_INTEL_6300ESB_IDE:
|
||||
case PCI_PRODUCT_INTEL_82801FB_IDE:
|
||||
case PCI_PRODUCT_INTEL_82801G_IDE:
|
||||
case PCI_PRODUCT_INTEL_82801HBM_IDE:
|
||||
sc->sc_wdcdev.sc_atac.atac_cap |= ATAC_CAP_UDMA;
|
||||
}
|
||||
}
|
||||
|
@ -366,6 +367,7 @@ piix_chip_map(struct pciide_softc *sc, struct pci_attach_args *pa)
|
|||
case PCI_PRODUCT_INTEL_6300ESB_IDE:
|
||||
case PCI_PRODUCT_INTEL_82801FB_IDE:
|
||||
case PCI_PRODUCT_INTEL_82801G_IDE:
|
||||
case PCI_PRODUCT_INTEL_82801HBM_IDE:
|
||||
sc->sc_wdcdev.sc_atac.atac_udma_cap = 5;
|
||||
break;
|
||||
default:
|
||||
|
@ -401,7 +403,8 @@ piix_chip_map(struct pciide_softc *sc, struct pci_attach_args *pa)
|
|||
sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801EB_IDE ||
|
||||
sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801FB_IDE ||
|
||||
sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_6300ESB_IDE ||
|
||||
sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801G_IDE) {
|
||||
sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801G_IDE ||
|
||||
sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801HBM_IDE) {
|
||||
ATADEBUG_PRINT((", IDE_CONTROL 0x%x",
|
||||
pci_conf_read(sc->sc_pc, sc->sc_tag, PIIX_CONFIG)),
|
||||
DEBUG_PROBE);
|
||||
|
@ -465,7 +468,8 @@ piix_chip_map(struct pciide_softc *sc, struct pci_attach_args *pa)
|
|||
sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801EB_IDE ||
|
||||
sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801FB_IDE ||
|
||||
sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_6300ESB_IDE ||
|
||||
sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801G_IDE) {
|
||||
sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801G_IDE ||
|
||||
sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801HBM_IDE) {
|
||||
ATADEBUG_PRINT((", IDE_CONTROL 0x%x",
|
||||
pci_conf_read(sc->sc_pc, sc->sc_tag, PIIX_CONFIG)),
|
||||
DEBUG_PROBE);
|
||||
|
@ -628,7 +632,8 @@ piix3_4_setup_channel(struct ata_channel *chp)
|
|||
sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801EB_IDE ||
|
||||
sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801FB_IDE ||
|
||||
sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_6300ESB_IDE ||
|
||||
sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801G_IDE) {
|
||||
sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801G_IDE ||
|
||||
sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801HBM_IDE) {
|
||||
ideconf |= PIIX_CONFIG_PINGPONG;
|
||||
}
|
||||
if (sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801BA_IDE ||
|
||||
|
@ -640,7 +645,8 @@ piix3_4_setup_channel(struct ata_channel *chp)
|
|||
sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801EB_IDE ||
|
||||
sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801FB_IDE ||
|
||||
sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_6300ESB_IDE ||
|
||||
sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801G_IDE) {
|
||||
sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801G_IDE ||
|
||||
sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801HBM_IDE) {
|
||||
/* setup Ultra/100 */
|
||||
if (drvp->UDMA_mode > 2 &&
|
||||
(ideconf & PIIX_CONFIG_CR(channel, drive)) == 0)
|
||||
|
|
Loading…
Reference in New Issue