From 1e1ea67e7304cff3891cc2d3f88777fdca66bafe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Duval?= Date: Sat, 11 Apr 2020 11:52:54 +0200 Subject: [PATCH] pch_i2c: add a few more ACPI HID for older chipsets MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit they should be compatible for I2C I/O Change-Id: Ifc2bed29813403ef845ca60c9cc22187e2cacc88 Reviewed-on: https://review.haiku-os.org/c/haiku/+/2469 Reviewed-by: X512 Reviewed-by: Jérôme Duval --- src/add-ons/kernel/busses/i2c/pch_i2c_acpi.cpp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/add-ons/kernel/busses/i2c/pch_i2c_acpi.cpp b/src/add-ons/kernel/busses/i2c/pch_i2c_acpi.cpp index 6553974a5d..eccdc9f523 100644 --- a/src/add-ons/kernel/busses/i2c/pch_i2c_acpi.cpp +++ b/src/add-ons/kernel/busses/i2c/pch_i2c_acpi.cpp @@ -120,6 +120,10 @@ init_device(device_node* node, void** device_cookie) ERROR("Error while getting I2C devices\n"); return status; } + if (crs.addr_bas == 0 || crs.addr_len == 0) { + TRACE("skipping non configured I2C devices\n"); + return B_BAD_VALUE; + } bus->info.base_addr = crs.addr_bas; bus->info.map_size = crs.addr_len; @@ -187,14 +191,20 @@ supports_device(device_node* parent) } TRACE("found an acpi device hid %s\n", name); - if (strcmp(name, "INT3442") == 0 + if (strcmp(name, "INT33C2") == 0 + || strcmp(name, "INT33C3") == 0 + || strcmp(name, "INT3432") == 0 + || strcmp(name, "INT3433") == 0 + || strcmp(name, "INT3442") == 0 || strcmp(name, "INT3443") == 0 || strcmp(name, "INT3444") == 0 || strcmp(name, "INT3445") == 0 || strcmp(name, "INT3446") == 0 || strcmp(name, "INT3447") == 0 || strcmp(name, "80860AAC") == 0 - || strcmp(name, "80865AAC") == 0) { + || strcmp(name, "80865AAC") == 0 + || strcmp(name, "80860F41") == 0 + || strcmp(name, "808622C1") == 0) { TRACE("PCH I2C device found! name %s\n", name); return 0.6f; }