Skip to content

Commit

Permalink
Fixed analog audio device detection on certain laptops with Insyde fi…
Browse files Browse the repository at this point in the history
…rmware
  • Loading branch information
vit9696 committed Mar 2, 2019
1 parent f953c88 commit 097278d
Show file tree
Hide file tree
Showing 4 changed files with 10 additions and 5 deletions.
3 changes: 3 additions & 0 deletions Changelog.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
Lilu Changelog
==============
#### v1.3.5
- Fixed analog audio device detection on certain laptops with Insyde firmware

#### v1.3.4
- Added implicit `eraseCoverageInstPrefix` to `routeMultiple`
- Fixed user patcher kernel panic when running process via `posix_spawn` without exec
Expand Down
6 changes: 3 additions & 3 deletions Lilu.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -907,7 +907,7 @@
MODULE_NAME = as.vit9696.Lilu;
MODULE_START = "$(PRODUCT_NAME)_kern_start";
MODULE_STOP = "$(PRODUCT_NAME)_kern_stop";
MODULE_VERSION = 1.3.4;
MODULE_VERSION = 1.3.5;
OTHER_CFLAGS = (
"-mmmx",
"-msse",
Expand Down Expand Up @@ -970,7 +970,7 @@
MODULE_NAME = as.vit9696.Lilu;
MODULE_START = "$(PRODUCT_NAME)_kern_start";
MODULE_STOP = "$(PRODUCT_NAME)_kern_stop";
MODULE_VERSION = 1.3.4;
MODULE_VERSION = 1.3.5;
OTHER_CFLAGS = (
"-mmmx",
"-msse",
Expand Down Expand Up @@ -1082,7 +1082,7 @@
MODULE_NAME = as.vit9696.Lilu;
MODULE_START = "$(PRODUCT_NAME)_kern_start";
MODULE_STOP = "$(PRODUCT_NAME)_kern_stop";
MODULE_VERSION = 1.3.4;
MODULE_VERSION = 1.3.5;
OTHER_CFLAGS = (
"-mmmx",
"-msse",
Expand Down
2 changes: 2 additions & 0 deletions Lilu/Headers/kern_iokit.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -157,6 +157,8 @@ namespace WIOKit {
Ex3DController = 0x030200,
DisplayController = 0x038000,
PCIBridge = 0x060400,
// HDA device on some laptops liek Acer Aspire VN7-592G (INSYDE)
HDAMmDevice = 0x040100,
// Watch out for PCISubclassMask, 0x040380 is common on laptops.
HDADevice = 0x040300,
// This does not seem to be documented. It works on Haswell at least.
Expand Down
4 changes: 2 additions & 2 deletions Lilu/Sources/kern_devinfo.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -239,7 +239,7 @@ void DeviceInfo::grabDevicesFromPciRoot(IORegistryEntry *pciRoot) {
DBGLOG("dev", "found IGPU device %s", safeString(name));
videoBuiltin = obj;
requestedExternalSwitchOff |= videoBuiltin->getProperty(RequestedExternalSwitchOffName) != nullptr;
} else if (code == WIOKit::ClassCode::HDADevice) {
} else if (code == WIOKit::ClassCode::HDADevice || code == WIOKit::ClassCode::HDAMmDevice) {
if (vendor == WIOKit::VendorID::Intel && name && (!strcmp(name, "HDAU") || !strcmp(name, "B0D3"))) {
DBGLOG("dev", "found HDAU device %s", safeString(name));
audioBuiltinDigital = obj;
Expand Down Expand Up @@ -273,7 +273,7 @@ void DeviceInfo::grabDevicesFromPciRoot(IORegistryEntry *pciRoot) {
safeString(pciobj->getName()), safeString(name), pcivendor);
v.video = pciobj;
v.vendor = pcivendor;
} else if (pcicode == WIOKit::ClassCode::HDADevice) {
} else if (pcicode == WIOKit::ClassCode::HDADevice || pcicode == WIOKit::ClassCode::HDAMmDevice) {
DBGLOG("dev", "found audio device %s at %s by %04X",
safeString(pciobj->getName()), safeString(name), pcivendor);
v.audio = pciobj;
Expand Down

0 comments on commit 097278d

Please sign in to comment.