Module Name: src Committed By: jruoho Date: Thu Jan 13 05:58:05 UTC 2011
Modified Files: src/sys/dev/acpi: acpi.c Log Message: Clean-up acpi_print(). XXX: The 'acpiverbose' module is still broken... To generate a diff of this commit: cvs rdiff -u -r1.232 -r1.233 src/sys/dev/acpi/acpi.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/dev/acpi/acpi.c diff -u src/sys/dev/acpi/acpi.c:1.232 src/sys/dev/acpi/acpi.c:1.233 --- src/sys/dev/acpi/acpi.c:1.232 Thu Jan 13 05:14:48 2011 +++ src/sys/dev/acpi/acpi.c Thu Jan 13 05:58:05 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: acpi.c,v 1.232 2011/01/13 05:14:48 jruoho Exp $ */ +/* $NetBSD: acpi.c,v 1.233 2011/01/13 05:58:05 jruoho Exp $ */ /*- * Copyright (c) 2003, 2007 The NetBSD Foundation, Inc. @@ -100,7 +100,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: acpi.c,v 1.232 2011/01/13 05:14:48 jruoho Exp $"); +__KERNEL_RCSID(0, "$NetBSD: acpi.c,v 1.233 2011/01/13 05:58:05 jruoho Exp $"); #include "opt_acpi.h" #include "opt_pcifixup.h" @@ -963,62 +963,53 @@ acpi_print(void *aux, const char *pnp) { struct acpi_attach_args *aa = aux; - ACPI_STATUS rv; + struct acpi_devnode *ad; + const char *hid, *uid; + ACPI_DEVICE_INFO *di; + + ad = aa->aa_node; + di = ad->ad_devinfo; + + hid = di->HardwareId.String; + uid = di->UniqueId.String; + + if (pnp != NULL) { + + if (di->Type != ACPI_TYPE_DEVICE) { + + aprint_normal("%s (ACPI Object Type '%s') at %s", + ad->ad_name, AcpiUtGetTypeName(ad->ad_type), pnp); + + return UNCONF; + } - if (pnp) { - if (aa->aa_node->ad_devinfo->Valid & ACPI_VALID_HID) { - char *pnpstr = - aa->aa_node->ad_devinfo->HardwareId.String; - ACPI_BUFFER buf; - - aprint_normal("%s (%s) ", aa->aa_node->ad_name, - pnpstr); - - rv = acpi_eval_struct(aa->aa_node->ad_handle, - "_STR", &buf); - if (ACPI_SUCCESS(rv)) { - ACPI_OBJECT *obj = buf.Pointer; - switch (obj->Type) { - case ACPI_TYPE_STRING: - aprint_normal("[%s] ", obj->String.Pointer); - break; - case ACPI_TYPE_BUFFER: - aprint_normal("buffer %p ", obj->Buffer.Pointer); - break; - default: - aprint_normal("type %u ",obj->Type); - break; - } - ACPI_FREE(buf.Pointer); - } - else - acpi_print_dev(pnpstr); - - aprint_normal("at %s", pnp); - } else if (aa->aa_node->ad_devinfo->Type != ACPI_TYPE_DEVICE) { - aprint_normal("%s (ACPI Object Type '%s' " - "[0x%02x]) ", aa->aa_node->ad_name, - AcpiUtGetTypeName(aa->aa_node->ad_devinfo->Type), - aa->aa_node->ad_devinfo->Type); - aprint_normal("at %s", pnp); - } else + if ((di->Valid & ACPI_VALID_HID) == 0 || hid == NULL) return 0; - } else { - aprint_normal(" (%s", aa->aa_node->ad_name); - if (aa->aa_node->ad_devinfo->Valid & ACPI_VALID_HID) { - aprint_normal(", %s", aa->aa_node->ad_devinfo->HardwareId.String); - if (aa->aa_node->ad_devinfo->Valid & ACPI_VALID_UID) { - const char *uid; - - uid = aa->aa_node->ad_devinfo->UniqueId.String; - if (uid[0] == '\0') - uid = "<null>"; - aprint_normal("-%s", uid); - } + + aprint_normal("%s (%s) ", ad->ad_name, hid); + acpi_print_dev(hid); + aprint_normal("at %s", pnp); + + return UNCONF; + } + + aprint_normal(" (%s", ad->ad_name); + + if ((di->Valid & ACPI_VALID_HID) != 0 && hid != NULL) { + + aprint_normal(", %s", hid); + + if ((di->Valid & ACPI_VALID_UID) != 0 && uid != NULL) { + + if (uid[0] == '\0') + uid = "<null>"; + + aprint_normal("-%s", uid); } - aprint_normal(")"); } + aprint_normal(")"); + return UNCONF; }