summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
Diffstat (limited to 'sys')
-rw-r--r--sys/dev/acpi/acpivideo.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/sys/dev/acpi/acpivideo.c b/sys/dev/acpi/acpivideo.c
index a1728a08737..a23430cc946 100644
--- a/sys/dev/acpi/acpivideo.c
+++ b/sys/dev/acpi/acpivideo.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: acpivideo.c,v 1.3 2009/06/03 00:36:59 pirofti Exp $ */
+/* $OpenBSD: acpivideo.c,v 1.4 2009/06/04 04:50:08 pirofti Exp $ */
/*
* Copyright (c) 2008 Federico G. Schwindt <fgsch@openbsd.org>
*
@@ -97,6 +97,7 @@ acpivideo_attach(struct device *parent, struct device *self, void *aux)
acpivideo_get_dod(sc);
aml_find_node(aaa->aaa_node, "_DCS", acpi_foundvout, sc);
+ aml_find_node(aaa->aaa_node, "_BCL", acpi_foundvout, sc);
}
int
@@ -170,6 +171,11 @@ acpi_foundvout(struct aml_node *node, void *arg)
av.aaa.aaa_node = node->parent;
av.aaa.aaa_name = "acpivout";
av.dod = sc->sc_dod[i];
+ /*
+ * Make sure we don't attach twice if both _BCL and
+ * _DCS methods are found by zeroing the DOD address.
+ */
+ sc->sc_dod[i] = 0;
config_found(self, &av, acpivideo_print);
}