summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/dev/sound/pci/ich.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/sys/dev/sound/pci/ich.c b/sys/dev/sound/pci/ich.c
index e8edb98..f52bf87 100644
--- a/sys/dev/sound/pci/ich.c
+++ b/sys/dev/sound/pci/ich.c
@@ -44,6 +44,7 @@ SND_DECLARE_FILE("$FreeBSD$");
#define SIS7012ID 0x70121039 /* SiS 7012 needs special handling */
#define ICH4ID 0x24c58086 /* ICH4 needs special handling too */
#define ICH5ID 0x24d58086 /* ICH5 needs to be treated as ICH4 */
+#define ICH6ID 0x266e8086 /* ICH6 needs to be treated as ICH4 */
/* buffer descriptor */
struct ich_desc {
@@ -580,7 +581,8 @@ ich_init(struct sc_info *sc)
if ((stat & ICH_GLOB_STA_PCR) == 0) {
/* ICH4/ICH5 may fail when busmastering is enabled. Continue */
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;
}
}
@@ -636,6 +638,10 @@ ich_pci_probe(device_t dev)
device_set_desc(dev, "Intel ICH5 (82801EB)");
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:
device_set_desc(dev, "SiS 7012");
return 0;
@@ -717,7 +723,7 @@ ich_pci_attach(device_t 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->nabmbarid = PCIR_MBBAR;
sc->regtype = SYS_RES_MEMORY;
OpenPOWER on IntegriCloud