diff options
author | Conrad Meyer <cem@FreeBSD.org> | 2019-12-18 06:22:28 +0000 |
---|---|---|
committer | Conrad Meyer <cem@FreeBSD.org> | 2019-12-18 06:22:28 +0000 |
commit | 359a5f96a1685f6779e7ddbe5daafd67e73a066e (patch) | |
tree | 95ac52c303c921ea9b6f0b425e6e4c2854473327 /sys | |
parent | 32a44e1e53312adbcfb91ea16410f7d5da86b2e0 (diff) | |
download | src-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.c | 7 |
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); |