aboutsummaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorConrad Meyer <cem@FreeBSD.org>2019-12-18 06:22:28 +0000
committerConrad Meyer <cem@FreeBSD.org>2019-12-18 06:22:28 +0000
commit359a5f96a1685f6779e7ddbe5daafd67e73a066e (patch)
tree95ac52c303c921ea9b6f0b425e6e4c2854473327 /sys
parent32a44e1e53312adbcfb91ea16410f7d5da86b2e0 (diff)
downloadsrc-359a5f96a1685f6779e7ddbe5daafd67e73a066e.tar.gz
src-359a5f96a1685f6779e7ddbe5daafd67e73a066e.zip
acpi(4): Add _CID to PNP info string
While a given ACPI device may have 0-N compatibility IDs, in practice most seem to have 0 or 1. If one is present, emit it as part of the PNP info string associated with a device. This could enable MODULE_PNP_INFO-based automatic kldload for ACPI drivers associated with a given _CID (but without a good _HID or _UID identifier). Reviewed by: imp, jhb Differential Revision: https://reviews.freebsd.org/D22846
Notes
Notes: svn path=/head/; revision=355876
Diffstat (limited to 'sys')
-rw-r--r--sys/dev/acpica/acpi.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/sys/dev/acpica/acpi.c b/sys/dev/acpica/acpi.c
index 382d139617de..517ebb8e98b3 100644
--- a/sys/dev/acpica/acpi.c
+++ b/sys/dev/acpica/acpi.c
@@ -884,11 +884,14 @@ acpi_child_pnpinfo_str_method(device_t cbdev, device_t child, char *buf,
return (0);
}
- snprintf(buf, buflen, "_HID=%s _UID=%lu",
+ snprintf(buf, buflen, "_HID=%s _UID=%lu _CID=%s",
(adinfo->Valid & ACPI_VALID_HID) ?
adinfo->HardwareId.String : "none",
(adinfo->Valid & ACPI_VALID_UID) ?
- strtoul(adinfo->UniqueId.String, NULL, 10) : 0UL);
+ strtoul(adinfo->UniqueId.String, NULL, 10) : 0UL,
+ ((adinfo->Valid & ACPI_VALID_CID) &&
+ adinfo->CompatibleIdList.Count > 0) ?
+ adinfo->CompatibleIdList.Ids[0].String : "none");
AcpiOsFree(adinfo);
return (0);