>So, after we found out that all, what happens there? And how can that 
be fixed?

Someone has to write and debug code for any peculiarities of this chip. For 
instance,
in the NetBSD driver you mention:

        if ((sc->sc_pp->ide_product == PCI_PRODUCT_TRIONES_HPT366 &&
            (revision == HPT370_REV || revision == HPT370A_REV ||
             revision == HPT372_REV)) ||
            sc->sc_pp->ide_product == PCI_PRODUCT_TRIONES_HPT302 ||
            sc->sc_pp->ide_product == PCI_PRODUCT_TRIONES_HPT371 ||
            sc->sc_pp->ide_product == PCI_PRODUCT_TRIONES_HPT372A ||
            sc->sc_pp->ide_product == PCI_PRODUCT_TRIONES_HPT374) {
                /*
                 * HPT370_REV and highter has a bit to disable interrupts,
                 * make sure to clear it
                 */
                pciide_pci_write(sc->sc_pc, sc->sc_tag, HPT_CSEL,
                    pciide_pci_read(sc->sc_pc, sc->sc_tag, HPT_CSEL) &
                    ~HPT_CSEL_IRQDIS);
        }

--jim

Reply via email to