xref: /dflybsd-src/sys/platform/pc64/acpica/acpi_machdep.c (revision db2ec6f86e5d12a98b74ffff0997864e1d17fdc3)
15db2f26eSSascha Wildner /*-
25db2f26eSSascha Wildner  * Copyright (c) 2001 Mitsuru IWASAKI
35db2f26eSSascha Wildner  * All rights reserved.
45db2f26eSSascha Wildner  *
55db2f26eSSascha Wildner  * Redistribution and use in source and binary forms, with or without
65db2f26eSSascha Wildner  * modification, are permitted provided that the following conditions
75db2f26eSSascha Wildner  * are met:
85db2f26eSSascha Wildner  * 1. Redistributions of source code must retain the above copyright
95db2f26eSSascha Wildner  *    notice, this list of conditions and the following disclaimer.
105db2f26eSSascha Wildner  * 2. Redistributions in binary form must reproduce the above copyright
115db2f26eSSascha Wildner  *    notice, this list of conditions and the following disclaimer in the
125db2f26eSSascha Wildner  *    documentation and/or other materials provided with the distribution.
135db2f26eSSascha Wildner  *
145db2f26eSSascha Wildner  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
155db2f26eSSascha Wildner  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
165db2f26eSSascha Wildner  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
175db2f26eSSascha Wildner  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
185db2f26eSSascha Wildner  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
195db2f26eSSascha Wildner  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
205db2f26eSSascha Wildner  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
215db2f26eSSascha Wildner  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
225db2f26eSSascha Wildner  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
235db2f26eSSascha Wildner  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
245db2f26eSSascha Wildner  * SUCH DAMAGE.
255db2f26eSSascha Wildner  *
265db2f26eSSascha Wildner  * $FreeBSD: src/sys/i386/acpica/acpi_machdep.c,v 1.20 2004/05/05 19:51:15 njl Exp $
275db2f26eSSascha Wildner  */
285db2f26eSSascha Wildner 
295db2f26eSSascha Wildner #include <sys/param.h>
305db2f26eSSascha Wildner #include <sys/bus.h>
315db2f26eSSascha Wildner #include <sys/conf.h>
325db2f26eSSascha Wildner #include <sys/device.h>
335db2f26eSSascha Wildner #include <sys/fcntl.h>
345db2f26eSSascha Wildner #include <sys/kernel.h>
355db2f26eSSascha Wildner #include <sys/sysctl.h>
365db2f26eSSascha Wildner #include <sys/uio.h>
375db2f26eSSascha Wildner 
385db2f26eSSascha Wildner #include "acpi.h"
395db2f26eSSascha Wildner #include <dev/acpica/acpivar.h>
405db2f26eSSascha Wildner #include <dev/acpica/acpiio.h>
415db2f26eSSascha Wildner 
425db2f26eSSascha Wildner static device_t	acpi_dev;
435db2f26eSSascha Wildner 
445db2f26eSSascha Wildner #include <sys/event.h>
455db2f26eSSascha Wildner 
465db2f26eSSascha Wildner #include <machine_base/apic/ioapic.h>
475db2f26eSSascha Wildner #include <machine/smp.h>
485db2f26eSSascha Wildner 
49*db2ec6f8SSascha Wildner static uint32_t acpi_reset_video = 1;
505db2f26eSSascha Wildner TUNABLE_INT("hw.acpi.reset_video", &acpi_reset_video);
515db2f26eSSascha Wildner 
525db2f26eSSascha Wildner int
acpi_machdep_init(device_t dev)535db2f26eSSascha Wildner acpi_machdep_init(device_t dev)
545db2f26eSSascha Wildner {
555db2f26eSSascha Wildner 	struct	acpi_softc *sc;
565db2f26eSSascha Wildner 
575db2f26eSSascha Wildner 	acpi_dev = dev;
585db2f26eSSascha Wildner 	sc = device_get_softc(acpi_dev);
595db2f26eSSascha Wildner 
605db2f26eSSascha Wildner 	acpi_install_wakeup_handler(sc);
615db2f26eSSascha Wildner 
625db2f26eSSascha Wildner 	if (ioapic_enable)
63fc71ae0eSSascha Wildner 		acpi_SetIntrModel(ACPI_INTR_APIC);
645db2f26eSSascha Wildner 
655db2f26eSSascha Wildner 	SYSCTL_ADD_UINT(&sc->acpi_sysctl_ctx,
665db2f26eSSascha Wildner 	    SYSCTL_CHILDREN(sc->acpi_sysctl_tree), OID_AUTO,
675db2f26eSSascha Wildner 	    "reset_video", CTLFLAG_RD | CTLFLAG_RW, &acpi_reset_video, 0,
685db2f26eSSascha Wildner 	    "Call the VESA reset BIOS vector on the resume path");
695db2f26eSSascha Wildner 
705db2f26eSSascha Wildner 	return (0);
715db2f26eSSascha Wildner }
72d2fa5f95SSascha Wildner 
73d2fa5f95SSascha Wildner int
acpi_machdep_quirks(int * quirks)74d2fa5f95SSascha Wildner acpi_machdep_quirks(int *quirks)
75d2fa5f95SSascha Wildner {
76d2fa5f95SSascha Wildner 	return (0);
77d2fa5f95SSascha Wildner }
78d2fa5f95SSascha Wildner 
79