Module Name: src
Committed By: jruoho
Date: Tue Mar 9 18:15:22 UTC 2010
Modified Files:
src/sys/dev/acpi: acpi.c acpi_pci.c acpi_wakedev.c acpivar.h
Log Message:
Remove the namespace scopes.
These are neither used nor useful beyond the parser and interpreter.
ok jmcneill@, joerg@
To generate a diff of this commit:
cvs rdiff -u -r1.156 -r1.157 src/sys/dev/acpi/acpi.c
cvs rdiff -u -r1.3 -r1.4 src/sys/dev/acpi/acpi_pci.c
cvs rdiff -u -r1.5 -r1.6 src/sys/dev/acpi/acpi_wakedev.c
cvs rdiff -u -r1.41 -r1.42 src/sys/dev/acpi/acpivar.h
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.156 src/sys/dev/acpi/acpi.c:1.157
--- src/sys/dev/acpi/acpi.c:1.156 Fri Mar 5 21:01:44 2010
+++ src/sys/dev/acpi/acpi.c Tue Mar 9 18:15:21 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: acpi.c,v 1.156 2010/03/05 21:01:44 jruoho Exp $ */
+/* $NetBSD: acpi.c,v 1.157 2010/03/09 18:15:21 jruoho Exp $ */
/*-
* Copyright (c) 2003, 2007 The NetBSD Foundation, Inc.
@@ -70,7 +70,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: acpi.c,v 1.156 2010/03/05 21:01:44 jruoho Exp $");
+__KERNEL_RCSID(0, "$NetBSD: acpi.c,v 1.157 2010/03/09 18:15:21 jruoho Exp $");
#include "opt_acpi.h"
#include "opt_pcifixup.h"
@@ -402,17 +402,15 @@
acpi_childdet(device_t self, device_t child)
{
struct acpi_softc *sc = device_private(self);
- struct acpi_scope *as;
struct acpi_devnode *ad;
if (sc->sc_apmbus == child)
sc->sc_apmbus = NULL;
- TAILQ_FOREACH(as, &sc->sc_scopes, as_list) {
- TAILQ_FOREACH(ad, &as->as_devnodes, ad_list) {
- if (ad->ad_device == child)
- ad->ad_device = NULL;
- }
+ SIMPLEQ_FOREACH(ad, &sc->sc_devnodes, ad_list) {
+
+ if (ad->ad_device == child)
+ ad->ad_device = NULL;
}
}
@@ -450,6 +448,7 @@
rsdt->AslCompilerId, rsdt->AslCompilerRevision);
} else
aprint_error_dev(self, "X/RSDT: Not found\n");
+
acpi_unmap_rsdt(rsdt);
sc->sc_dev = self;
@@ -461,6 +460,8 @@
sc->sc_pciflags = aa->aa_pciflags;
sc->sc_ic = aa->aa_ic;
+ SIMPLEQ_INIT(&sc->sc_devnodes);
+
acpi_softc = sc;
/*
@@ -661,11 +662,6 @@
}
#endif
-struct acpi_make_devnode_state {
- struct acpi_softc *softc;
- struct acpi_scope *scope;
-};
-
/*
* acpi_build_tree:
*
@@ -676,46 +672,27 @@
acpi_build_tree(struct acpi_softc *sc)
{
static const char *scopes[] = {
- "\\_PR_", /* ACPI 1.0 processor namespace */
- "\\_SB_", /* system bus namespace */
- "\\_SI_", /* system indicator namespace */
- "\\_TZ_", /* ACPI 1.0 thermal zone namespace */
- NULL,
+ "\\_PR_", "\\_SB_", "\\_SI_", "\\_TZ_", NULL
};
- struct acpi_make_devnode_state state;
- struct acpi_scope *as;
+
ACPI_HANDLE parent;
ACPI_STATUS rv;
int i;
- TAILQ_INIT(&sc->sc_scopes);
-
- state.softc = sc;
-
/*
- * Scan the namespace and build our tree.
+ * Scan the namespace and build our device tree.
*/
for (i = 0; scopes[i] != NULL; i++) {
- as = malloc(sizeof(*as), M_ACPI, M_WAITOK);
- as->as_name = scopes[i];
- TAILQ_INIT(&as->as_devnodes);
-
- TAILQ_INSERT_TAIL(&sc->sc_scopes, as, as_list);
-
- state.scope = as;
-
- rv = AcpiGetHandle(ACPI_ROOT_OBJECT, scopes[i],
- &parent);
- if (ACPI_SUCCESS(rv)) {
- AcpiWalkNamespace(ACPI_TYPE_ANY, parent, 100,
- acpi_make_devnode, &state, NULL);
- }
+
+ rv = AcpiGetHandle(ACPI_ROOT_OBJECT, scopes[i], &parent);
+
+ if (ACPI_SUCCESS(rv))
+ (void)AcpiWalkNamespace(ACPI_TYPE_ANY, parent, 100,
+ acpi_make_devnode, sc, NULL);
}
acpi_rescan1(sc, NULL, NULL);
-
acpi_wakedev_scan(sc);
-
acpi_pcidev_scan(sc);
}
@@ -743,73 +720,68 @@
static void
acpi_rescan_nodes(struct acpi_softc *sc)
{
- struct acpi_scope *as;
-
- TAILQ_FOREACH(as, &sc->sc_scopes, as_list) {
- struct acpi_devnode *ad;
+ struct acpi_attach_args aa;
+ struct acpi_devnode *ad;
- /* Now, for this namespace, try to attach the devices. */
- TAILQ_FOREACH(ad, &as->as_devnodes, ad_list) {
- struct acpi_attach_args aa;
+ SIMPLEQ_FOREACH(ad, &sc->sc_devnodes, ad_list) {
- if (ad->ad_device != NULL)
- continue;
+ if (ad->ad_device != NULL)
+ continue;
- aa.aa_node = ad;
- aa.aa_iot = sc->sc_iot;
- aa.aa_memt = sc->sc_memt;
- aa.aa_pc = sc->sc_pc;
- aa.aa_pciflags = sc->sc_pciflags;
- aa.aa_ic = sc->sc_ic;
-
- if (ad->ad_devinfo->Type == ACPI_TYPE_DEVICE) {
- /*
- * XXX We only attach devices which are:
- *
- * - present
- * - enabled
- * - functioning properly
- *
- * However, if enabled, it's decoding resources,
- * so we should claim them, if possible.
- * Requires changes to bus_space(9).
- */
- if ((ad->ad_devinfo->Valid & ACPI_VALID_STA) ==
- ACPI_VALID_STA &&
- (ad->ad_devinfo->CurrentStatus &
- (ACPI_STA_DEV_PRESENT|ACPI_STA_DEV_ENABLED|
- ACPI_STA_DEV_OK)) !=
- (ACPI_STA_DEV_PRESENT|ACPI_STA_DEV_ENABLED|
- ACPI_STA_DEV_OK))
- continue;
- }
+ aa.aa_node = ad;
+ aa.aa_iot = sc->sc_iot;
+ aa.aa_memt = sc->sc_memt;
+ aa.aa_pc = sc->sc_pc;
+ aa.aa_pciflags = sc->sc_pciflags;
+ aa.aa_ic = sc->sc_ic;
+ if (ad->ad_devinfo->Type == ACPI_TYPE_DEVICE) {
/*
- * XXX Same problem as above...
+ * XXX We only attach devices which are:
*
- * Do this check only for devices, as e.g.
- * a Thermal Zone doesn't have a HID.
- */
- if (ad->ad_devinfo->Type == ACPI_TYPE_DEVICE &&
- (ad->ad_devinfo->Valid & ACPI_VALID_HID) == 0)
- continue;
-
- /*
- * Handled internally
+ * - present
+ * - enabled
+ * - functioning properly
+ *
+ * However, if enabled, it's decoding resources,
+ * so we should claim them, if possible.
+ * Requires changes to bus_space(9).
*/
- if (ad->ad_devinfo->Type == ACPI_TYPE_PROCESSOR ||
- ad->ad_devinfo->Type == ACPI_TYPE_POWER)
+ if ((ad->ad_devinfo->Valid & ACPI_VALID_STA) ==
+ ACPI_VALID_STA &&
+ (ad->ad_devinfo->CurrentStatus &
+ (ACPI_STA_DEV_PRESENT|ACPI_STA_DEV_ENABLED|
+ ACPI_STA_DEV_OK)) !=
+ (ACPI_STA_DEV_PRESENT|ACPI_STA_DEV_ENABLED|
+ ACPI_STA_DEV_OK))
continue;
+ }
- /*
- * Skip ignored HIDs
- */
- if (acpi_match_hid(ad->ad_devinfo, acpi_ignored_ids))
- continue;
+ /*
+ * XXX Same problem as above...
+ *
+ * Do this check only for devices, as e.g.
+ * a Thermal Zone doesn't have a HID.
+ */
+ if (ad->ad_devinfo->Type == ACPI_TYPE_DEVICE &&
+ (ad->ad_devinfo->Valid & ACPI_VALID_HID) == 0)
+ continue;
+
+ /*
+ * Handled internally.
+ */
+ if (ad->ad_devinfo->Type == ACPI_TYPE_PROCESSOR ||
+ ad->ad_devinfo->Type == ACPI_TYPE_POWER)
+ continue;
+
+ /*
+ * Skip ignored HIDs.
+ */
+ if (acpi_match_hid(ad->ad_devinfo, acpi_ignored_ids))
+ continue;
- ad->ad_device = config_found_ia(sc->sc_dev,
- "acpinodebus", &aa, acpi_print);
- }
+ ad->ad_device = config_found_ia(sc->sc_dev,
+ "acpinodebus", &aa, acpi_print);
}
}
@@ -854,9 +826,7 @@
acpi_make_devnode(ACPI_HANDLE handle, uint32_t level,
void *context, void **status)
{
- struct acpi_make_devnode_state *state = context;
- struct acpi_softc *sc = state->softc;
- struct acpi_scope *as = state->scope;
+ struct acpi_softc *sc = context;
struct acpi_devnode *ad;
ACPI_DEVICE_INFO *devinfo;
ACPI_OBJECT_TYPE type;
@@ -901,10 +871,9 @@
if (ad == NULL)
return AE_NO_MEMORY;
+ ad->ad_parent = sc->sc_dev;
ad->ad_devinfo = devinfo;
ad->ad_handle = handle;
- ad->ad_level = level;
- ad->ad_scope = as;
ad->ad_type = type;
anu = (ACPI_NAME_UNION *)&devinfo->Name;
@@ -923,7 +892,7 @@
if (ad->ad_name[0] == '\0')
ad->ad_name[0] = '_';
- TAILQ_INSERT_TAIL(&as->as_devnodes, ad, ad_list);
+ SIMPLEQ_INSERT_TAIL(&sc->sc_devnodes, ad, ad_list);
if (type != ACPI_TYPE_DEVICE)
return AE_OK;
@@ -932,10 +901,8 @@
return AE_OK;
#ifdef ACPIVERBOSE
- aprint_normal_dev(sc->sc_dev,
- "HID %s found in scope %s level %d\n",
- ad->ad_devinfo->HardwareId.String,
- as->as_name, ad->ad_level);
+ aprint_normal(" HID %s\n",
+ ad->ad_devinfo->HardwareId.String);
if (ad->ad_devinfo->Valid & ACPI_VALID_UID)
aprint_normal(" UID %s\n",
Index: src/sys/dev/acpi/acpi_pci.c
diff -u src/sys/dev/acpi/acpi_pci.c:1.3 src/sys/dev/acpi/acpi_pci.c:1.4
--- src/sys/dev/acpi/acpi_pci.c:1.3 Fri Mar 5 14:00:17 2010
+++ src/sys/dev/acpi/acpi_pci.c Tue Mar 9 18:15:22 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: acpi_pci.c,v 1.3 2010/03/05 14:00:17 jruoho Exp $ */
+/* $NetBSD: acpi_pci.c,v 1.4 2010/03/09 18:15:22 jruoho Exp $ */
/*
* Copyright (c) 2009 The NetBSD Foundation, Inc.
@@ -33,7 +33,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: acpi_pci.c,v 1.3 2010/03/05 14:00:17 jruoho Exp $");
+__KERNEL_RCSID(0, "$NetBSD: acpi_pci.c,v 1.4 2010/03/09 18:15:22 jruoho Exp $");
#include <sys/param.h>
#include <sys/device.h>
@@ -139,7 +139,6 @@
int
acpi_pcidev_scan(struct acpi_softc *sc)
{
- struct acpi_scope *as;
struct acpi_devnode *ad;
struct acpi_pcidev *ap;
ACPI_DEVICE_INFO *di;
@@ -148,18 +147,20 @@
#define ACPI_STA_DEV_VALID \
(ACPI_STA_DEV_PRESENT|ACPI_STA_DEV_ENABLED|ACPI_STA_DEV_OK)
- TAILQ_FOREACH(as, &sc->sc_scopes, as_list) {
- TAILQ_FOREACH(ad, &as->as_devnodes, ad_list) {
- di = ad->ad_devinfo;
- if (di->Type != ACPI_TYPE_DEVICE)
- continue;
- if ((di->Valid & ACPI_VALID_STA) != 0 &&
- (di->CurrentStatus & ACPI_STA_DEV_VALID) !=
- ACPI_STA_DEV_VALID)
- continue;
- if (acpi_pcidev_add(sc, ad) == true)
- ++count;
- }
+ SIMPLEQ_FOREACH(ad, &sc->sc_devnodes, ad_list) {
+
+ di = ad->ad_devinfo;
+
+ if (di->Type != ACPI_TYPE_DEVICE)
+ continue;
+
+ if ((di->Valid & ACPI_VALID_STA) != 0 &&
+ (di->CurrentStatus & ACPI_STA_DEV_VALID) !=
+ ACPI_STA_DEV_VALID)
+ continue;
+
+ if (acpi_pcidev_add(sc, ad) == true)
+ ++count;
}
#undef ACPI_STA_DEV_VALID
Index: src/sys/dev/acpi/acpi_wakedev.c
diff -u src/sys/dev/acpi/acpi_wakedev.c:1.5 src/sys/dev/acpi/acpi_wakedev.c:1.6
--- src/sys/dev/acpi/acpi_wakedev.c:1.5 Fri Mar 5 22:00:11 2010
+++ src/sys/dev/acpi/acpi_wakedev.c Tue Mar 9 18:15:22 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: acpi_wakedev.c,v 1.5 2010/03/05 22:00:11 jruoho Exp $ */
+/* $NetBSD: acpi_wakedev.c,v 1.6 2010/03/09 18:15:22 jruoho Exp $ */
/*-
* Copyright (c) 2009 Jared D. McNeill <[email protected]>
@@ -27,7 +27,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: acpi_wakedev.c,v 1.5 2010/03/05 22:00:11 jruoho Exp $");
+__KERNEL_RCSID(0, "$NetBSD: acpi_wakedev.c,v 1.6 2010/03/09 18:15:22 jruoho Exp $");
#include <sys/param.h>
#include <sys/device.h>
@@ -145,7 +145,6 @@
int
acpi_wakedev_scan(struct acpi_softc *sc)
{
- struct acpi_scope *as;
struct acpi_devnode *ad;
struct acpi_wakedev *aw;
ACPI_DEVICE_INFO *di;
@@ -154,18 +153,21 @@
#define ACPI_STA_DEV_VALID \
(ACPI_STA_DEV_PRESENT|ACPI_STA_DEV_ENABLED|ACPI_STA_DEV_OK)
- TAILQ_FOREACH(as, &sc->sc_scopes, as_list)
- TAILQ_FOREACH(ad, &as->as_devnodes, ad_list) {
- di = ad->ad_devinfo;
- if (di->Type != ACPI_TYPE_DEVICE)
- continue;
- if ((di->Valid & ACPI_VALID_STA) != 0 &&
- (di->CurrentStatus & ACPI_STA_DEV_VALID) !=
- ACPI_STA_DEV_VALID)
- continue;
- if (acpi_wakedev_add(sc, ad) == true)
- ++count;
- }
+ SIMPLEQ_FOREACH(ad, &sc->sc_devnodes, ad_list) {
+
+ di = ad->ad_devinfo;
+
+ if (di->Type != ACPI_TYPE_DEVICE)
+ continue;
+
+ if ((di->Valid & ACPI_VALID_STA) != 0 &&
+ (di->CurrentStatus & ACPI_STA_DEV_VALID) !=
+ ACPI_STA_DEV_VALID)
+ continue;
+
+ if (acpi_wakedev_add(sc, ad) == true)
+ ++count;
+ }
#undef ACPI_STA_DEV_VALID
Index: src/sys/dev/acpi/acpivar.h
diff -u src/sys/dev/acpi/acpivar.h:1.41 src/sys/dev/acpi/acpivar.h:1.42
--- src/sys/dev/acpi/acpivar.h:1.41 Fri Mar 5 08:30:48 2010
+++ src/sys/dev/acpi/acpivar.h Tue Mar 9 18:15:22 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: acpivar.h,v 1.41 2010/03/05 08:30:48 jruoho Exp $ */
+/* $NetBSD: acpivar.h,v 1.42 2010/03/09 18:15:22 jruoho Exp $ */
/*
* Copyright 2001 Wasabi Systems, Inc.
@@ -79,28 +79,14 @@
* An ACPI device node.
*/
struct acpi_devnode {
- TAILQ_ENTRY(acpi_devnode) ad_list;
- ACPI_HANDLE ad_handle; /* our ACPI handle */
- uint32_t ad_level; /* ACPI level */
- uint32_t ad_type; /* ACPI object type */
- ACPI_DEVICE_INFO *ad_devinfo; /* our ACPI device info */
- struct acpi_scope *ad_scope; /* backpointer to scope */
- device_t ad_device; /* pointer to configured device */
- char ad_name[5]; /* Human-readable device name */
-};
+ device_t ad_device; /* Device */
+ device_t ad_parent; /* Backpointer to the parent */
+ ACPI_DEVICE_INFO *ad_devinfo; /* Device info */
+ ACPI_HANDLE ad_handle; /* Device handle */
+ char ad_name[5]; /* Device name */
+ uint32_t ad_type; /* Device type */
-/*
- * acpi_scope:
- *
- * Description of an ACPI scope.
- */
-struct acpi_scope {
- TAILQ_ENTRY(acpi_scope) as_list;
- const char *as_name; /* scope name */
- /*
- * Device nodes we manage.
- */
- TAILQ_HEAD(, acpi_devnode) as_devnodes;
+ SIMPLEQ_ENTRY(acpi_devnode) ad_list;
};
/*
@@ -135,11 +121,9 @@
int sc_quirks;
- /*
- * Scopes we manage.
- */
- TAILQ_HEAD(, acpi_scope) sc_scopes;
device_t sc_apmbus;
+
+ SIMPLEQ_HEAD(, acpi_devnode) sc_devnodes; /* devices */
};
/*