Add ICH6 support.

This commit is contained in:
Paul Saab 2004-09-28 01:32:58 +00:00
parent e5e7825cc3
commit c6eadeaa66

View File

@ -44,6 +44,7 @@ SND_DECLARE_FILE("$FreeBSD$");
#define SIS7012ID 0x70121039 /* SiS 7012 needs special handling */ #define SIS7012ID 0x70121039 /* SiS 7012 needs special handling */
#define ICH4ID 0x24c58086 /* ICH4 needs special handling too */ #define ICH4ID 0x24c58086 /* ICH4 needs special handling too */
#define ICH5ID 0x24d58086 /* ICH5 needs to be treated as ICH4 */ #define ICH5ID 0x24d58086 /* ICH5 needs to be treated as ICH4 */
#define ICH6ID 0x266e8086 /* ICH6 needs to be treated as ICH4 */
/* buffer descriptor */ /* buffer descriptor */
struct ich_desc { struct ich_desc {
@ -580,7 +581,8 @@ ich_init(struct sc_info *sc)
if ((stat & ICH_GLOB_STA_PCR) == 0) { if ((stat & ICH_GLOB_STA_PCR) == 0) {
/* ICH4/ICH5 may fail when busmastering is enabled. Continue */ /* ICH4/ICH5 may fail when busmastering is enabled. Continue */
if ((pci_get_devid(sc->dev) != ICH4ID) && if ((pci_get_devid(sc->dev) != ICH4ID) &&
(pci_get_devid(sc->dev) != ICH5ID)) { (pci_get_devid(sc->dev) != ICH5ID) &&
(pci_get_devid(sc->dev) != ICH6ID)) {
return ENXIO; return ENXIO;
} }
} }
@ -636,6 +638,10 @@ ich_pci_probe(device_t dev)
device_set_desc(dev, "Intel ICH5 (82801EB)"); device_set_desc(dev, "Intel ICH5 (82801EB)");
return -1000; /* allow a better driver to override us */ return -1000; /* allow a better driver to override us */
case ICH6ID:
device_set_desc(dev, "Intel ICH6 (82801FB)");
return -1000; /* allow a better driver to override us */
case SIS7012ID: case SIS7012ID:
device_set_desc(dev, "SiS 7012"); device_set_desc(dev, "SiS 7012");
return 0; return 0;
@ -717,7 +723,7 @@ ich_pci_attach(device_t dev)
*/ */
pci_enable_busmaster(dev); pci_enable_busmaster(dev);
if (pci_get_devid(dev) == ICH5ID) { if (pci_get_devid(dev) == ICH5ID || pci_get_devid(dev) == ICH6ID) {
sc->nambarid = PCIR_MMBAR; sc->nambarid = PCIR_MMBAR;
sc->nabmbarid = PCIR_MBBAR; sc->nabmbarid = PCIR_MBBAR;
sc->regtype = SYS_RES_MEMORY; sc->regtype = SYS_RES_MEMORY;