diff --git a/src/add-ons/kernel/drivers/audio/ac97/ich/ac97.c b/src/add-ons/kernel/drivers/audio/ac97/ich/ac97.c index 11780fbc03..f7cae69825 100644 --- a/src/add-ons/kernel/drivers/audio/ac97/ich/ac97.c +++ b/src/add-ons/kernel/drivers/audio/ac97/ich/ac97.c @@ -27,6 +27,7 @@ */ #include #include +#include #include #include "ac97.h" #include "debug.h" @@ -437,11 +438,11 @@ ac97_detect_capabilities(ac97_dev *dev) dev->capabilities |= CAP_LFE_DAC; if (val & EXID_AMAP) dev->capabilities |= CAP_AMAP; - if (val & (EXID_REV0 | EXID_REV1) == 0) + if ((val & (EXID_REV0 | EXID_REV1)) == 0) dev->capabilities |= CAP_REV21; - if (val & (EXID_REV0 | EXID_REV1) == EXID_REV0) + if ((val & (EXID_REV0 | EXID_REV1)) == EXID_REV0) dev->capabilities |= CAP_REV22; - if (val & (EXID_REV0 | EXID_REV1) == EXID_REV1) + if ((val & (EXID_REV0 | EXID_REV1)) == EXID_REV1) dev->capabilities |= CAP_REV23; ac97_detect_rates(dev); diff --git a/src/add-ons/kernel/drivers/audio/ac97/ich/config.c b/src/add-ons/kernel/drivers/audio/ac97/ich/config.c index 392af4dee8..70b2c237f8 100644 --- a/src/add-ons/kernel/drivers/audio/ac97/ich/config.c +++ b/src/add-ons/kernel/drivers/audio/ac97/ich/config.c @@ -90,6 +90,9 @@ status_t probe_device(void) } else if (pciinfo->vendor_id == 0x8086 && pciinfo->device_id == 0x24C5) { /* verified */ config->name = "Intel 82801DB (ICH4)"; config->type = TYPE_ICH4; + } else if (pciinfo->vendor_id == 0x8086 && pciinfo->device_id == 0x24D5) { /* verified */ + config->name = "Intel 82801EB (ICH5), Intel 82801ER (ICH5R)"; + config->type = TYPE_ICH4; // ICH5 works like ICH4 } else if (pciinfo->vendor_id == 0x1039 && pciinfo->device_id == 0x7012) { /* verified */ config->name = "SiS SI7012"; config->type = TYPE_SIS7012; diff --git a/src/add-ons/kernel/drivers/audio/ac97/ich/ich.h b/src/add-ons/kernel/drivers/audio/ac97/ich/ich.h index 9f9d030cc9..4e21b20e7a 100644 --- a/src/add-ons/kernel/drivers/audio/ac97/ich/ich.h +++ b/src/add-ons/kernel/drivers/audio/ac97/ich/ich.h @@ -31,7 +31,7 @@ #include "debug.h" #include "hardware.h" -#define VERSION_NUMBER "1.6" +#define VERSION_NUMBER "1.6a" #if DEBUG #define VERSION_DEBUG " (DEBUG)" diff --git a/src/add-ons/kernel/drivers/audio/ac97/ich/util.c b/src/add-ons/kernel/drivers/audio/ac97/ich/util.c index d70754ee3c..a56634e517 100644 --- a/src/add-ons/kernel/drivers/audio/ac97/ich/util.c +++ b/src/add-ons/kernel/drivers/audio/ac97/ich/util.c @@ -101,10 +101,10 @@ area_id map_mem(void **log, void *phy, size_t size, const char *name) LOG(("mapping physical address %p with %#x bytes for %s\n",phy,size,name)); offset = (uint32)phy & (B_PAGE_SIZE - 1); - phyadr = phy - offset; + phyadr = (char *)phy - offset; size = round_to_pagesize(size + offset); area = map_physical_memory(name, phyadr, size, B_ANY_KERNEL_BLOCK_ADDRESS, B_READ_AREA | B_WRITE_AREA, &mapadr); - *log = mapadr + offset; + *log = (char *)mapadr + offset; LOG(("physical = %p, logical = %p, offset = %#x, phyadr = %p, mapadr = %p, size = %#x, area = %#x\n", phy, *log, offset, phyadr, mapadr, size, area));