Module Name:    src
Committed By:   riastradh
Date:           Tue Apr 16 14:34:03 UTC 2024

Modified Files:
        src/sys/external/bsd/drm2/amdgpu: files.amdgpu
        src/sys/external/bsd/drm2/dist/drm/amd/amdgpu: amdgpu.h amdgpu_acpi.c
        src/sys/external/bsd/drm2/dist/drm/amd/powerplay/hwmgr: amdgpu_hwmgr.c
            amdgpu_smu7_hwmgr.c
        src/sys/external/bsd/drm2/dist/drm/i915: i915_drv.h
        src/sys/external/bsd/drm2/dist/drm/i915/display: intel_acpi.h
            intel_opregion.h
        src/sys/external/bsd/drm2/dist/drm/nouveau: nouveau_acpi.c
            nouveau_acpi.h nouveau_display.c nouveau_drv.h
        src/sys/external/bsd/drm2/dist/drm/nouveau/include/nvkm/core: device.h
        src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device:
            nouveau_nvkm_engine_device_acpi.c nouveau_nvkm_engine_device_base.c
            nouveau_nvkm_engine_device_pci.c nouveau_nvkm_engine_device_tegra.c
            priv.h
        src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/bios:
            nouveau_nvkm_subdev_bios_shadowacpi.c
        src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mxm:
            nouveau_nvkm_subdev_mxm_base.c
        src/sys/external/bsd/drm2/dist/drm/radeon: radeon.h radeon_acpi.c
            radeon_bios.c radeon_drv.h
        src/sys/external/bsd/drm2/include/acpi: video.h
        src/sys/external/bsd/drm2/include/linux: acpi.h nbsd-namespace-acpi.h
        src/sys/external/bsd/drm2/nouveau: files.nouveau
        src/sys/external/bsd/drm2/radeon: files.radeon
        src/sys/modules/amdgpu: Makefile
Added Files:
        src/sys/external/bsd/drm2/include/acpi: acpi_bus.h
        src/sys/external/bsd/drm2/include/linux: mxm-wmi.h

Log Message:
drm: Set CONFIG_ACPI in linux/acpi.h and make it build.

Leave a little ACPI-related functionality disabled for now, like
getting EDID out of ACPI -- needs a bit more work to make this work,
and I don't have hardware to work on that.

Should help with failures of the forms:

- unable to locate a BIOS ROM
- bios: unable to locate usable image

on various machines.


To generate a diff of this commit:
cvs rdiff -u -r1.30 -r1.31 src/sys/external/bsd/drm2/amdgpu/files.amdgpu
cvs rdiff -u -r1.8 -r1.9 \
    src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu.h
cvs rdiff -u -r1.5 -r1.6 \
    src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_acpi.c
cvs rdiff -u -r1.2 -r1.3 \
    src/sys/external/bsd/drm2/dist/drm/amd/powerplay/hwmgr/amdgpu_hwmgr.c
cvs rdiff -u -r1.4 -r1.5 \
    src/sys/external/bsd/drm2/dist/drm/amd/powerplay/hwmgr/amdgpu_smu7_hwmgr.c
cvs rdiff -u -r1.48 -r1.49 src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.h
cvs rdiff -u -r1.4 -r1.5 \
    src/sys/external/bsd/drm2/dist/drm/i915/display/intel_acpi.h
cvs rdiff -u -r1.5 -r1.6 \
    src/sys/external/bsd/drm2/dist/drm/i915/display/intel_opregion.h
cvs rdiff -u -r1.4 -r1.5 \
    src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_acpi.c \
    src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_drv.h
cvs rdiff -u -r1.3 -r1.4 \
    src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_acpi.h
cvs rdiff -u -r1.5 -r1.6 \
    src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_display.c
cvs rdiff -u -r1.9 -r1.10 \
    src/sys/external/bsd/drm2/dist/drm/nouveau/include/nvkm/core/device.h
cvs rdiff -u -r1.3 -r1.4 \
    
src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device/nouveau_nvkm_engine_device_acpi.c
 \
    
src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device/nouveau_nvkm_engine_device_tegra.c
 \
    src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device/priv.h
cvs rdiff -u -r1.12 -r1.13 \
    
src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device/nouveau_nvkm_engine_device_base.c
cvs rdiff -u -r1.11 -r1.12 \
    
src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device/nouveau_nvkm_engine_device_pci.c
cvs rdiff -u -r1.3 -r1.4 \
    
src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/bios/nouveau_nvkm_subdev_bios_shadowacpi.c
cvs rdiff -u -r1.4 -r1.5 \
    
src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mxm/nouveau_nvkm_subdev_mxm_base.c
cvs rdiff -u -r1.11 -r1.12 src/sys/external/bsd/drm2/dist/drm/radeon/radeon.h
cvs rdiff -u -r1.4 -r1.5 \
    src/sys/external/bsd/drm2/dist/drm/radeon/radeon_acpi.c \
    src/sys/external/bsd/drm2/dist/drm/radeon/radeon_drv.h
cvs rdiff -u -r1.13 -r1.14 \
    src/sys/external/bsd/drm2/dist/drm/radeon/radeon_bios.c
cvs rdiff -u -r0 -r1.1 src/sys/external/bsd/drm2/include/acpi/acpi_bus.h
cvs rdiff -u -r1.2 -r1.3 src/sys/external/bsd/drm2/include/acpi/video.h
cvs rdiff -u -r1.10 -r1.11 src/sys/external/bsd/drm2/include/linux/acpi.h
cvs rdiff -u -r0 -r1.1 src/sys/external/bsd/drm2/include/linux/mxm-wmi.h
cvs rdiff -u -r1.1 -r1.2 \
    src/sys/external/bsd/drm2/include/linux/nbsd-namespace-acpi.h
cvs rdiff -u -r1.39 -r1.40 src/sys/external/bsd/drm2/nouveau/files.nouveau
cvs rdiff -u -r1.39 -r1.40 src/sys/external/bsd/drm2/radeon/files.radeon
cvs rdiff -u -r1.8 -r1.9 src/sys/modules/amdgpu/Makefile

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/amdgpu/files.amdgpu
diff -u src/sys/external/bsd/drm2/amdgpu/files.amdgpu:1.30 src/sys/external/bsd/drm2/amdgpu/files.amdgpu:1.31
--- src/sys/external/bsd/drm2/amdgpu/files.amdgpu:1.30	Fri Jul 14 13:05:59 2023
+++ src/sys/external/bsd/drm2/amdgpu/files.amdgpu	Tue Apr 16 14:34:01 2024
@@ -1,4 +1,4 @@
-#	$NetBSD: files.amdgpu,v 1.30 2023/07/14 13:05:59 riastradh Exp $
+#	$NetBSD: files.amdgpu,v 1.31 2024/04/16 14:34:01 riastradh Exp $
 
 version	20180827
 
@@ -354,7 +354,7 @@ file	external/bsd/drm2/dist/drm/amd/amdg
 file	external/bsd/drm2/dist/drm/amd/amdgpu/../powerplay/smumgr/amdgpu_vega20_smumgr.c	amdgpu
 file	external/bsd/drm2/dist/drm/amd/amdgpu/../powerplay/smumgr/amdgpu_vegam_smumgr.c	amdgpu
 file	external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_acp.c	amdgpu
-#file	external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_acpi.c	amdgpu
+file	external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_acpi.c	amdgpu
 file	external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_afmt.c	amdgpu
 file	external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_amdkfd.c	amdgpu
 file	external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_arct_reg_init.c	amdgpu

Index: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu.h
diff -u src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu.h:1.8 src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu.h:1.9
--- src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu.h:1.8	Sat Oct  8 19:06:30 2022
+++ src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu.h	Tue Apr 16 14:34:01 2024
@@ -1,4 +1,4 @@
-/*	$NetBSD: amdgpu.h,v 1.8 2022/10/08 19:06:30 riastradh Exp $	*/
+/*	$NetBSD: amdgpu.h,v 1.9 2024/04/16 14:34:01 riastradh Exp $	*/
 
 /*
  * Copyright 2008 Advanced Micro Devices, Inc.
@@ -46,6 +46,7 @@
 #include <linux/rbtree.h>
 #include <linux/hashtable.h>
 #include <linux/dma-fence.h>
+#include <linux/acpi.h>
 
 #include <drm/ttm/ttm_bo_api.h>
 #include <drm/ttm/ttm_bo_driver.h>

Index: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_acpi.c
diff -u src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_acpi.c:1.5 src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_acpi.c:1.6
--- src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_acpi.c:1.5	Sun Feb 27 14:24:26 2022
+++ src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_acpi.c	Tue Apr 16 14:34:01 2024
@@ -1,4 +1,4 @@
-/*	$NetBSD: amdgpu_acpi.c,v 1.5 2022/02/27 14:24:26 riastradh Exp $	*/
+/*	$NetBSD: amdgpu_acpi.c,v 1.6 2024/04/16 14:34:01 riastradh Exp $	*/
 
 /*
  * Copyright 2012 Advanced Micro Devices, Inc.
@@ -24,7 +24,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: amdgpu_acpi.c,v 1.5 2022/02/27 14:24:26 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: amdgpu_acpi.c,v 1.6 2024/04/16 14:34:01 riastradh Exp $");
 
 #include <linux/pci.h>
 #include <linux/acpi.h>
@@ -40,6 +40,14 @@ __KERNEL_RCSID(0, "$NetBSD: amdgpu_acpi.
 #include "amd_acpi.h"
 #include "atom.h"
 
+#ifdef __NetBSD__
+#include <dev/acpi/acpi_pci.h>
+#include <dev/acpi/acpireg.h>
+#define	_COMPONENT	ACPI_DISPLAY_COMPONENT
+ACPI_MODULE_NAME("radeon_acpi")
+#include <linux/nbsd-namespace-acpi.h>
+#endif
+
 struct amdgpu_atif_notification_cfg {
 	bool enabled;
 	int command_code;
@@ -362,6 +370,8 @@ out:
 	return err;
 }
 
+#ifndef __NetBSD__		/* XXX amdgpu acpi */
+
 /**
  * amdgpu_atif_get_sbios_requests - get requested sbios event
  *
@@ -488,6 +498,8 @@ static int amdgpu_atif_handler(struct am
 	return NOTIFY_BAD;
 }
 
+#endif	/* __NetBSD__ */
+
 /* Call the ATCS method
  */
 /**
@@ -635,7 +647,17 @@ int amdgpu_acpi_pcie_notify_device_ready
 	struct amdgpu_atcs *atcs = &adev->atcs;
 
 	/* Get the device handle */
+#ifdef __NetBSD__
+	const struct pci_attach_args *pa = &adev->pdev->pd_pa;
+	struct acpi_devnode *const d =
+	    acpi_pcidev_find(pci_get_segment(pa->pa_pc),
+		pa->pa_bus, pa->pa_device, pa->pa_function);
+	if (d == NULL)
+		return -EINVAL;
+	handle = d->ad_handle;
+#else
 	handle = ACPI_HANDLE(&adev->pdev->dev);
+#endif
 	if (!handle)
 		return -EINVAL;
 
@@ -678,7 +700,17 @@ int amdgpu_acpi_pcie_performance_request
 		return -EINVAL;
 
 	/* Get the device handle */
+#ifdef __NetBSD__
+	const struct pci_attach_args *pa = &adev->pdev->pd_pa;
+	struct acpi_devnode *const d =
+	    acpi_pcidev_find(pci_get_segment(pa->pa_pc),
+		pa->pa_bus, pa->pa_device, pa->pa_function);
+	if (d == NULL)
+		return -EINVAL;
+	handle = d->ad_handle;
+#else
 	handle = ACPI_HANDLE(&adev->pdev->dev);
+#endif
 	if (!handle)
 		return -EINVAL;
 
@@ -743,6 +775,7 @@ int amdgpu_acpi_pcie_performance_request
  * acpi events.
  * Returns NOTIFY code
  */
+#ifndef __NetBSD__		/* XXX amdgpu acpi */
 static int amdgpu_acpi_event(struct notifier_block *nb,
 			     unsigned long val,
 			     void *data)
@@ -762,6 +795,7 @@ static int amdgpu_acpi_event(struct noti
 	/* Check for pending SBIOS requests */
 	return amdgpu_atif_handler(adev, entry);
 }
+#endif
 
 /* Call all ACPI methods here */
 /**
@@ -781,7 +815,17 @@ int amdgpu_acpi_init(struct amdgpu_devic
 	int ret;
 
 	/* Get the device handle */
+#ifdef __NetBSD__
+	const struct pci_attach_args *pa = &adev->pdev->pd_pa;
+	struct acpi_devnode *const d =
+	    acpi_pcidev_find(pci_get_segment(pa->pa_pc),
+		pa->pa_bus, pa->pa_device, pa->pa_function);
+	if (d == NULL)
+		return -EINVAL;
+	handle = d->ad_handle;
+#else
 	handle = ACPI_HANDLE(&adev->pdev->dev);
+#endif
 
 	if (!adev->bios || !handle)
 		return 0;
@@ -862,8 +906,10 @@ int amdgpu_acpi_init(struct amdgpu_devic
 	}
 
 out:
+#ifndef __NetBSD__		/* XXX amdgpu acpi */
 	adev->acpi_nb.notifier_call = amdgpu_acpi_event;
 	register_acpi_notifier(&adev->acpi_nb);
+#endif
 
 	return ret;
 }
@@ -889,6 +935,8 @@ void amdgpu_acpi_get_backlight_caps(stru
  */
 void amdgpu_acpi_fini(struct amdgpu_device *adev)
 {
+#ifndef __NetBSD__		/* XXX radeon acpi */
 	unregister_acpi_notifier(&adev->acpi_nb);
+#endif
 	kfree(adev->atif);
 }

Index: src/sys/external/bsd/drm2/dist/drm/amd/powerplay/hwmgr/amdgpu_hwmgr.c
diff -u src/sys/external/bsd/drm2/dist/drm/amd/powerplay/hwmgr/amdgpu_hwmgr.c:1.2 src/sys/external/bsd/drm2/dist/drm/amd/powerplay/hwmgr/amdgpu_hwmgr.c:1.3
--- src/sys/external/bsd/drm2/dist/drm/amd/powerplay/hwmgr/amdgpu_hwmgr.c:1.2	Sat Dec 18 23:45:26 2021
+++ src/sys/external/bsd/drm2/dist/drm/amd/powerplay/hwmgr/amdgpu_hwmgr.c	Tue Apr 16 14:34:01 2024
@@ -1,4 +1,4 @@
-/*	$NetBSD: amdgpu_hwmgr.c,v 1.2 2021/12/18 23:45:26 riastradh Exp $	*/
+/*	$NetBSD: amdgpu_hwmgr.c,v 1.3 2024/04/16 14:34:01 riastradh Exp $	*/
 
 /*
  * Copyright 2015 Advanced Micro Devices, Inc.
@@ -24,7 +24,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: amdgpu_hwmgr.c,v 1.2 2021/12/18 23:45:26 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: amdgpu_hwmgr.c,v 1.3 2024/04/16 14:34:01 riastradh Exp $");
 
 #include "pp_debug.h"
 #include <linux/delay.h>
@@ -32,6 +32,7 @@ __KERNEL_RCSID(0, "$NetBSD: amdgpu_hwmgr
 #include <linux/slab.h>
 #include <linux/types.h>
 #include <linux/pci.h>
+#include <linux/acpi.h>
 #include <drm/amdgpu_drm.h>
 #include "power_state.h"
 #include "hwmgr.h"

Index: src/sys/external/bsd/drm2/dist/drm/amd/powerplay/hwmgr/amdgpu_smu7_hwmgr.c
diff -u src/sys/external/bsd/drm2/dist/drm/amd/powerplay/hwmgr/amdgpu_smu7_hwmgr.c:1.4 src/sys/external/bsd/drm2/dist/drm/amd/powerplay/hwmgr/amdgpu_smu7_hwmgr.c:1.5
--- src/sys/external/bsd/drm2/dist/drm/amd/powerplay/hwmgr/amdgpu_smu7_hwmgr.c:1.4	Sun Dec 19 12:37:54 2021
+++ src/sys/external/bsd/drm2/dist/drm/amd/powerplay/hwmgr/amdgpu_smu7_hwmgr.c	Tue Apr 16 14:34:01 2024
@@ -1,4 +1,4 @@
-/*	$NetBSD: amdgpu_smu7_hwmgr.c,v 1.4 2021/12/19 12:37:54 riastradh Exp $	*/
+/*	$NetBSD: amdgpu_smu7_hwmgr.c,v 1.5 2024/04/16 14:34:01 riastradh Exp $	*/
 
 /*
  * Copyright 2015 Advanced Micro Devices, Inc.
@@ -23,7 +23,7 @@
  *
  */
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: amdgpu_smu7_hwmgr.c,v 1.4 2021/12/19 12:37:54 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: amdgpu_smu7_hwmgr.c,v 1.5 2024/04/16 14:34:01 riastradh Exp $");
 
 #include "pp_debug.h"
 #include <linux/delay.h>
@@ -31,6 +31,7 @@ __KERNEL_RCSID(0, "$NetBSD: amdgpu_smu7_
 #include <linux/module.h>
 #include <linux/pci.h>
 #include <linux/slab.h>
+#include <linux/acpi.h>
 #include <asm/div64.h>
 #include <drm/amdgpu_drm.h>
 #include "ppatomctrl.h"

Index: src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.h
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.h:1.48 src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.h:1.49
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.h:1.48	Thu Sep 22 14:37:38 2022
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.h	Tue Apr 16 14:34:02 2024
@@ -1,4 +1,4 @@
-/*	$NetBSD: i915_drv.h,v 1.48 2022/09/22 14:37:38 riastradh Exp $	*/
+/*	$NetBSD: i915_drv.h,v 1.49 2024/04/16 14:34:02 riastradh Exp $	*/
 
 /* i915_drv.h -- Private header for the I915 driver -*- linux-c -*-
  */
@@ -32,15 +32,6 @@
 #ifndef _I915_DRV_H_
 #define _I915_DRV_H_
 
-#if defined(__NetBSD__)
-#ifdef _KERNEL_OPT
-#include "acpica.h"
-#endif	/* _KERNEL_OPT */
-#if (NACPICA > 0)
-#define CONFIG_ACPI
-#endif	/* NACPICA > 0 */
-#endif	/* __NetBSD__ */
-
 #include <uapi/drm/i915_drm.h>
 #include <uapi/drm/drm_fourcc.h>
 
@@ -59,6 +50,7 @@
 #include <linux/stackdepot.h>
 #include <linux/xarray.h>
 #include <linux/uuid.h>
+#include <linux/acpi.h>
 
 #include <drm/intel-gtt.h>
 #include <drm/drm_legacy.h> /* for struct drm_dma_handle */

Index: src/sys/external/bsd/drm2/dist/drm/i915/display/intel_acpi.h
diff -u src/sys/external/bsd/drm2/dist/drm/i915/display/intel_acpi.h:1.4 src/sys/external/bsd/drm2/dist/drm/i915/display/intel_acpi.h:1.5
--- src/sys/external/bsd/drm2/dist/drm/i915/display/intel_acpi.h:1.4	Sun Dec 19 11:16:17 2021
+++ src/sys/external/bsd/drm2/dist/drm/i915/display/intel_acpi.h	Tue Apr 16 14:34:01 2024
@@ -1,4 +1,4 @@
-/*	$NetBSD: intel_acpi.h,v 1.4 2021/12/19 11:16:17 riastradh Exp $	*/
+/*	$NetBSD: intel_acpi.h,v 1.5 2024/04/16 14:34:01 riastradh Exp $	*/
 
 /* SPDX-License-Identifier: MIT */
 /*
@@ -8,6 +8,8 @@
 #ifndef __INTEL_ACPI_H__
 #define __INTEL_ACPI_H__
 
+#include <linux/acpi.h>
+
 struct drm_i915_private;
 
 #ifdef CONFIG_ACPI

Index: src/sys/external/bsd/drm2/dist/drm/i915/display/intel_opregion.h
diff -u src/sys/external/bsd/drm2/dist/drm/i915/display/intel_opregion.h:1.5 src/sys/external/bsd/drm2/dist/drm/i915/display/intel_opregion.h:1.6
--- src/sys/external/bsd/drm2/dist/drm/i915/display/intel_opregion.h:1.5	Sun Feb 27 21:22:01 2022
+++ src/sys/external/bsd/drm2/dist/drm/i915/display/intel_opregion.h	Tue Apr 16 14:34:01 2024
@@ -1,4 +1,4 @@
-/*	$NetBSD: intel_opregion.h,v 1.5 2022/02/27 21:22:01 riastradh Exp $	*/
+/*	$NetBSD: intel_opregion.h,v 1.6 2024/04/16 14:34:01 riastradh Exp $	*/
 
 /*
  * Copyright © 2008-2017 Intel Corporation
@@ -29,6 +29,7 @@
 
 #include <linux/workqueue.h>
 #include <linux/pci.h>
+#include <linux/acpi.h>
 
 struct drm_i915_private;
 struct intel_encoder;

Index: src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_acpi.c
diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_acpi.c:1.4 src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_acpi.c:1.5
--- src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_acpi.c:1.4	Sun Feb 27 14:24:27 2022
+++ src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_acpi.c	Tue Apr 16 14:34:02 2024
@@ -1,8 +1,8 @@
-/*	$NetBSD: nouveau_acpi.c,v 1.4 2022/02/27 14:24:27 riastradh Exp $	*/
+/*	$NetBSD: nouveau_acpi.c,v 1.5 2024/04/16 14:34:02 riastradh Exp $	*/
 
 // SPDX-License-Identifier: MIT
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: nouveau_acpi.c,v 1.4 2022/02/27 14:24:27 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: nouveau_acpi.c,v 1.5 2024/04/16 14:34:02 riastradh Exp $");
 
 #include <linux/pci.h>
 #include <linux/acpi.h>
@@ -15,6 +15,13 @@ __KERNEL_RCSID(0, "$NetBSD: nouveau_acpi
 #include "nouveau_drv.h"
 #include "nouveau_acpi.h"
 
+#ifdef __NetBSD__
+#include <dev/acpi/acpireg.h>
+#define	_COMPONENT	ACPI_DISPLAY_COMPONENT
+ACPI_MODULE_NAME("nouveau_acpi")
+#include <linux/nbsd-namespace-acpi.h>
+#endif
+
 #define NOUVEAU_DSM_LED 0x02
 #define NOUVEAU_DSM_LED_STATE 0x00
 #define NOUVEAU_DSM_LED_OFF 0x10
@@ -256,7 +263,11 @@ static void nouveau_dsm_pci_probe(struct
 	bool supports_mux;
 	int optimus_funcs;
 
+#ifdef __NetBSD__
+	dhandle = pdev->pd_ad->ad_handle;
+#else
 	dhandle = ACPI_HANDLE(&pdev->dev);
+#endif
 	if (!dhandle)
 		return;
 
@@ -421,12 +432,20 @@ static int nouveau_rom_call(acpi_handle 
 	return len;
 }
 
+#ifdef __NetBSD__
+bool nouveau_acpi_rom_supported(struct acpi_devnode *acpidev)
+#else
 bool nouveau_acpi_rom_supported(struct device *dev)
+#endif
 {
 	acpi_status status;
 	acpi_handle dhandle, rom_handle;
 
+#ifdef __NetBSD__
+	dhandle = (acpidev ? acpidev->ad_handle : NULL);
+#else
 	dhandle = ACPI_HANDLE(dev);
+#endif
 	if (!dhandle)
 		return false;
 
@@ -446,6 +465,9 @@ int nouveau_acpi_get_bios_chunk(uint8_t 
 void *
 nouveau_acpi_edid(struct drm_device *dev, struct drm_connector *connector)
 {
+#ifdef __NetBSD__		/* XXX nouveau acpi video */
+	return NULL;
+#else
 	struct acpi_device *acpidev;
 	acpi_handle handle;
 	int type, ret;
@@ -460,7 +482,11 @@ nouveau_acpi_edid(struct drm_device *dev
 		return NULL;
 	}
 
+#ifdef __NetBSD__
+	handle = (dev->pdev->pd_ad ? dev->pdev->pd_ad->ad_handle : NULL);
+#else
 	handle = ACPI_HANDLE(&dev->pdev->dev);
+#endif
 	if (!handle)
 		return NULL;
 
@@ -473,4 +499,5 @@ nouveau_acpi_edid(struct drm_device *dev
 		return NULL;
 
 	return kmemdup(edid, EDID_LENGTH, GFP_KERNEL);
+#endif
 }
Index: src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_drv.h
diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_drv.h:1.4 src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_drv.h:1.5
--- src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_drv.h:1.4	Sat May 21 17:50:21 2022
+++ src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_drv.h	Tue Apr 16 14:34:02 2024
@@ -1,4 +1,4 @@
-/*	$NetBSD: nouveau_drv.h,v 1.4 2022/05/21 17:50:21 riastradh Exp $	*/
+/*	$NetBSD: nouveau_drv.h,v 1.5 2024/04/16 14:34:02 riastradh Exp $	*/
 
 /* SPDX-License-Identifier: MIT */
 #ifndef __NOUVEAU_DRV_H__
@@ -40,6 +40,7 @@
  *      - implemented limited ABI16/NVIF interop
  */
 
+#include <linux/acpi.h>
 #include <linux/notifier.h>
 
 #include <nvif/client.h>

Index: src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_acpi.h
diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_acpi.h:1.3 src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_acpi.h:1.4
--- src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_acpi.h:1.3	Sat Dec 18 23:45:32 2021
+++ src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_acpi.h	Tue Apr 16 14:34:02 2024
@@ -1,9 +1,11 @@
-/*	$NetBSD: nouveau_acpi.h,v 1.3 2021/12/18 23:45:32 riastradh Exp $	*/
+/*	$NetBSD: nouveau_acpi.h,v 1.4 2024/04/16 14:34:02 riastradh Exp $	*/
 
 /* SPDX-License-Identifier: MIT */
 #ifndef __NOUVEAU_ACPI_H__
 #define __NOUVEAU_ACPI_H__
 
+#include <linux/acpi.h>
+
 #define ROM_BIOS_PAGE 4096
 
 #if defined(CONFIG_ACPI) && defined(CONFIG_X86)
@@ -13,7 +15,11 @@ void nouveau_register_dsm_handler(void);
 void nouveau_unregister_dsm_handler(void);
 void nouveau_switcheroo_optimus_dsm(void);
 int nouveau_acpi_get_bios_chunk(uint8_t *bios, int offset, int len);
+#ifdef __NetBSD__
+bool nouveau_acpi_rom_supported(struct acpi_devnode *);
+#else
 bool nouveau_acpi_rom_supported(struct device *);
+#endif
 void *nouveau_acpi_edid(struct drm_device *, struct drm_connector *);
 #else
 static inline bool nouveau_is_optimus(void) { return false; };
@@ -21,7 +27,11 @@ static inline bool nouveau_is_v1_dsm(voi
 static inline void nouveau_register_dsm_handler(void) {}
 static inline void nouveau_unregister_dsm_handler(void) {}
 static inline void nouveau_switcheroo_optimus_dsm(void) {}
+#ifdef __NetBSD__
+static inline bool nouveau_acpi_rom_supported(struct acpi_devnode *acpidev) { return false; }
+#else
 static inline bool nouveau_acpi_rom_supported(struct device *dev) { return false; }
+#endif
 static inline int nouveau_acpi_get_bios_chunk(uint8_t *bios, int offset, int len) { return -EINVAL; }
 static inline void *nouveau_acpi_edid(struct drm_device *dev, struct drm_connector *connector) { return NULL; }
 #endif

Index: src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_display.c
diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_display.c:1.5 src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_display.c:1.6
--- src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_display.c:1.5	Sat Dec 18 23:45:32 2021
+++ src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_display.c	Tue Apr 16 14:34:02 2024
@@ -1,4 +1,4 @@
-/*	$NetBSD: nouveau_display.c,v 1.5 2021/12/18 23:45:32 riastradh Exp $	*/
+/*	$NetBSD: nouveau_display.c,v 1.6 2024/04/16 14:34:02 riastradh Exp $	*/
 
 /*
  * Copyright (C) 2008 Maarten Maathuis.
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: nouveau_display.c,v 1.5 2021/12/18 23:45:32 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: nouveau_display.c,v 1.6 2024/04/16 14:34:02 riastradh Exp $");
 
 #include <acpi/video.h>
 
@@ -49,6 +49,11 @@ __KERNEL_RCSID(0, "$NetBSD: nouveau_disp
 #include <nvif/cl0046.h>
 #include <nvif/event.h>
 
+#ifdef __NetBSD__
+/* Used only for runtime power management, not in NetBSD for now.  */
+#undef	CONFIG_ACPI
+#endif
+
 static int
 nouveau_display_vblank_handler(struct nvif_notify *notify)
 {

Index: src/sys/external/bsd/drm2/dist/drm/nouveau/include/nvkm/core/device.h
diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/include/nvkm/core/device.h:1.9 src/sys/external/bsd/drm2/dist/drm/nouveau/include/nvkm/core/device.h:1.10
--- src/sys/external/bsd/drm2/dist/drm/nouveau/include/nvkm/core/device.h:1.9	Sat Dec 18 23:45:33 2021
+++ src/sys/external/bsd/drm2/dist/drm/nouveau/include/nvkm/core/device.h	Tue Apr 16 14:34:02 2024
@@ -1,4 +1,4 @@
-/*	$NetBSD: device.h,v 1.9 2021/12/18 23:45:33 riastradh Exp $	*/
+/*	$NetBSD: device.h,v 1.10 2024/04/16 14:34:02 riastradh Exp $	*/
 
 /* SPDX-License-Identifier: MIT */
 #ifndef __NVKM_DEVICE_H__
@@ -92,6 +92,9 @@ struct nvkm_device {
 	struct device *dev;
 	enum nvkm_device_type type;
 	u64 handle;
+#ifdef __NetBSD__
+	struct acpi_devnode *acpidev;
+#endif
 	const char *name;
 	const char *cfgopt;
 	const char *dbgopt;

Index: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device/nouveau_nvkm_engine_device_acpi.c
diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device/nouveau_nvkm_engine_device_acpi.c:1.3 src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device/nouveau_nvkm_engine_device_acpi.c:1.4
--- src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device/nouveau_nvkm_engine_device_acpi.c:1.3	Sat Dec 18 23:45:34 2021
+++ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device/nouveau_nvkm_engine_device_acpi.c	Tue Apr 16 14:34:02 2024
@@ -1,4 +1,4 @@
-/*	$NetBSD: nouveau_nvkm_engine_device_acpi.c,v 1.3 2021/12/18 23:45:34 riastradh Exp $	*/
+/*	$NetBSD: nouveau_nvkm_engine_device_acpi.c,v 1.4 2024/04/16 14:34:02 riastradh Exp $	*/
 
 /*
  * Copyright 2014 Red Hat Inc.
@@ -24,12 +24,17 @@
  * Authors: Ben Skeggs
  */
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_engine_device_acpi.c,v 1.3 2021/12/18 23:45:34 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_engine_device_acpi.c,v 1.4 2024/04/16 14:34:02 riastradh Exp $");
 
 #include "acpi.h"
 
 #include <core/device.h>
 
+#ifdef __NetBSD__
+/* This should be a PMF hook, not an ACPI notifier.  */
+#undef	CONFIG_ACPI
+#endif
+
 #ifdef CONFIG_ACPI
 static int
 nvkm_acpi_ntfy(struct notifier_block *nb, unsigned long val, void *data)
Index: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device/nouveau_nvkm_engine_device_tegra.c
diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device/nouveau_nvkm_engine_device_tegra.c:1.3 src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device/nouveau_nvkm_engine_device_tegra.c:1.4
--- src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device/nouveau_nvkm_engine_device_tegra.c:1.3	Sat Dec 18 23:45:34 2021
+++ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device/nouveau_nvkm_engine_device_tegra.c	Tue Apr 16 14:34:02 2024
@@ -1,4 +1,4 @@
-/*	$NetBSD: nouveau_nvkm_engine_device_tegra.c,v 1.3 2021/12/18 23:45:34 riastradh Exp $	*/
+/*	$NetBSD: nouveau_nvkm_engine_device_tegra.c,v 1.4 2024/04/16 14:34:02 riastradh Exp $	*/
 
 /*
  * Copyright (c) 2014, NVIDIA CORPORATION. All rights reserved.
@@ -22,7 +22,7 @@
  * DEALINGS IN THE SOFTWARE.
  */
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_engine_device_tegra.c,v 1.3 2021/12/18 23:45:34 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_engine_device_tegra.c,v 1.4 2024/04/16 14:34:02 riastradh Exp $");
 
 #include <core/tegra.h>
 #ifdef CONFIG_NOUVEAU_PLATFORM_DRIVER
@@ -364,7 +364,11 @@ nvkm_device_tegra_new(const struct nvkm_
 	tdev->gpu_speedo = tegra_sku_info.gpu_speedo_value;
 	tdev->gpu_speedo_id = tegra_sku_info.gpu_speedo_id;
 	ret = nvkm_device_ctor(&nvkm_device_tegra_func, NULL, &pdev->dev,
-			       NVKM_DEVICE_TEGRA, pdev->id, NULL,
+			       NVKM_DEVICE_TEGRA, pdev->id,
+#ifdef __NetBSD__
+			       /*acpidev*/NULL,
+#endif
+			       /*name*/NULL,
 			       cfg, dbg, detect, mmio, subdev_mask,
 			       &tdev->device);
 	if (ret)
Index: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device/priv.h
diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device/priv.h:1.3 src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device/priv.h:1.4
--- src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device/priv.h:1.3	Sat Dec 18 23:45:34 2021
+++ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device/priv.h	Tue Apr 16 14:34:02 2024
@@ -1,4 +1,4 @@
-/*	$NetBSD: priv.h,v 1.3 2021/12/18 23:45:34 riastradh Exp $	*/
+/*	$NetBSD: priv.h,v 1.4 2024/04/16 14:34:02 riastradh Exp $	*/
 
 /* SPDX-License-Identifier: MIT */
 #ifndef __NVKM_DEVICE_PRIV_H__
@@ -54,6 +54,9 @@
 int  nvkm_device_ctor(const struct nvkm_device_func *,
 		      const struct nvkm_device_quirk *,
 		      struct device *, enum nvkm_device_type, u64 handle,
+#ifdef __NetBSD__		/* XXX nouveau acpi */
+		      struct acpi_devnode *acpidev,
+#endif
 		      const char *name, const char *cfg, const char *dbg,
 		      bool detect, bool mmio, u64 subdev_mask,
 		      struct nvkm_device *);

Index: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device/nouveau_nvkm_engine_device_base.c
diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device/nouveau_nvkm_engine_device_base.c:1.12 src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device/nouveau_nvkm_engine_device_base.c:1.13
--- src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device/nouveau_nvkm_engine_device_base.c:1.12	Sun Dec 19 10:50:22 2021
+++ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device/nouveau_nvkm_engine_device_base.c	Tue Apr 16 14:34:02 2024
@@ -1,4 +1,4 @@
-/*	$NetBSD: nouveau_nvkm_engine_device_base.c,v 1.12 2021/12/19 10:50:22 riastradh Exp $	*/
+/*	$NetBSD: nouveau_nvkm_engine_device_base.c,v 1.13 2024/04/16 14:34:02 riastradh Exp $	*/
 
 /*
  * Copyright 2012 Red Hat Inc.
@@ -24,7 +24,7 @@
  * Authors: Ben Skeggs
  */
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_engine_device_base.c,v 1.12 2021/12/19 10:50:22 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_engine_device_base.c,v 1.13 2024/04/16 14:34:02 riastradh Exp $");
 
 #include "priv.h"
 #include "acpi.h"
@@ -2961,6 +2961,9 @@ int
 nvkm_device_ctor(const struct nvkm_device_func *func,
 		 const struct nvkm_device_quirk *quirk,
 		 struct device *dev, enum nvkm_device_type type, u64 handle,
+#ifdef __NetBSD__		/* XXX nouveau acpi */
+		 struct acpi_devnode *acpidev,
+#endif
 		 const char *name, const char *cfg, const char *dbg,
 		 bool detect, bool mmio, u64 subdev_mask,
 		 struct nvkm_device *device)
@@ -2986,6 +2989,9 @@ nvkm_device_ctor(const struct nvkm_devic
 	device->dev = dev;
 	device->type = type;
 	device->handle = handle;
+#ifdef __NetBSD__		/* XXX nouveau acpi */
+	device->acpidev = acpidev;
+#endif
 	device->cfgopt = cfg;
 	device->dbgopt = dbg;
 	device->name = name;

Index: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device/nouveau_nvkm_engine_device_pci.c
diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device/nouveau_nvkm_engine_device_pci.c:1.11 src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device/nouveau_nvkm_engine_device_pci.c:1.12
--- src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device/nouveau_nvkm_engine_device_pci.c:1.11	Sun Dec 19 10:51:57 2021
+++ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device/nouveau_nvkm_engine_device_pci.c	Tue Apr 16 14:34:02 2024
@@ -1,4 +1,4 @@
-/*	$NetBSD: nouveau_nvkm_engine_device_pci.c,v 1.11 2021/12/19 10:51:57 riastradh Exp $	*/
+/*	$NetBSD: nouveau_nvkm_engine_device_pci.c,v 1.12 2024/04/16 14:34:02 riastradh Exp $	*/
 
 /*
  * Copyright 2015 Red Hat Inc.
@@ -24,7 +24,7 @@
  * Authors: Ben Skeggs <bske...@redhat.com>
  */
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_engine_device_pci.c,v 1.11 2021/12/19 10:51:57 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_engine_device_pci.c,v 1.12 2024/04/16 14:34:02 riastradh Exp $");
 
 #include <core/pci.h>
 #include "priv.h"
@@ -1721,7 +1721,11 @@ nvkm_device_pci_new(struct pci_dev *pci_
 			       (u64)pci_domain_nr(pci_dev->bus) << 32 |
 				    pci_dev->bus->number << 16 |
 				    PCI_SLOT(pci_dev->devfn) << 8 |
-				    PCI_FUNC(pci_dev->devfn), name,
+				    PCI_FUNC(pci_dev->devfn),
+#ifdef __NetBSD__
+			       /*acpidev*/pci_dev->pd_ad,
+#endif
+			       name,
 			       cfg, dbg, detect, mmio, subdev_mask,
 			       &pdev->device);
 

Index: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/bios/nouveau_nvkm_subdev_bios_shadowacpi.c
diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/bios/nouveau_nvkm_subdev_bios_shadowacpi.c:1.3 src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/bios/nouveau_nvkm_subdev_bios_shadowacpi.c:1.4
--- src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/bios/nouveau_nvkm_subdev_bios_shadowacpi.c:1.3	Sat Dec 18 23:45:38 2021
+++ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/bios/nouveau_nvkm_subdev_bios_shadowacpi.c	Tue Apr 16 14:34:02 2024
@@ -1,4 +1,4 @@
-/*	$NetBSD: nouveau_nvkm_subdev_bios_shadowacpi.c,v 1.3 2021/12/18 23:45:38 riastradh Exp $	*/
+/*	$NetBSD: nouveau_nvkm_subdev_bios_shadowacpi.c,v 1.4 2024/04/16 14:34:02 riastradh Exp $	*/
 
 /*
  * Copyright 2012 Red Hat Inc.
@@ -23,16 +23,24 @@
  *
  */
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_bios_shadowacpi.c,v 1.3 2021/12/18 23:45:38 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_bios_shadowacpi.c,v 1.4 2024/04/16 14:34:02 riastradh Exp $");
 
 #include "priv.h"
 
 #if defined(CONFIG_ACPI) && defined(CONFIG_X86)
 int nouveau_acpi_get_bios_chunk(uint8_t *bios, int offset, int len);
+#ifdef __NetBSD__
+bool nouveau_acpi_rom_supported(struct acpi_devnode *);
+#else
 bool nouveau_acpi_rom_supported(struct device *);
+#endif
 #else
 static inline bool
+#ifdef __NetBSD__
+nouveau_acpi_rom_supported(struct acpi_devnode *dev)
+#else
 nouveau_acpi_rom_supported(struct device *dev)
+#endif
 {
 	return false;
 }
@@ -93,7 +101,7 @@ acpi_read_slow(void *data, u32 offset, u
 static void *
 acpi_init(struct nvkm_bios *bios, const char *name)
 {
-	if (!nouveau_acpi_rom_supported(bios->subdev.device->dev))
+	if (!nouveau_acpi_rom_supported(bios->subdev.device->acpidev))
 		return ERR_PTR(-ENODEV);
 	return NULL;
 }

Index: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mxm/nouveau_nvkm_subdev_mxm_base.c
diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mxm/nouveau_nvkm_subdev_mxm_base.c:1.4 src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mxm/nouveau_nvkm_subdev_mxm_base.c:1.5
--- src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mxm/nouveau_nvkm_subdev_mxm_base.c:1.4	Sun Feb 27 14:24:27 2022
+++ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mxm/nouveau_nvkm_subdev_mxm_base.c	Tue Apr 16 14:34:02 2024
@@ -1,4 +1,4 @@
-/*	$NetBSD: nouveau_nvkm_subdev_mxm_base.c,v 1.4 2022/02/27 14:24:27 riastradh Exp $	*/
+/*	$NetBSD: nouveau_nvkm_subdev_mxm_base.c,v 1.5 2024/04/16 14:34:02 riastradh Exp $	*/
 
 /*
  * Copyright 2011 Red Hat Inc.
@@ -24,7 +24,7 @@
  * Authors: Ben Skeggs
  */
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_mxm_base.c,v 1.4 2022/02/27 14:24:27 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_mxm_base.c,v 1.5 2024/04/16 14:34:02 riastradh Exp $");
 
 #include "mxms.h"
 
@@ -33,6 +33,15 @@ __KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm
 #include <subdev/bios/mxm.h>
 #include <subdev/i2c.h>
 
+#ifdef __NetBSD__
+#ifdef CONFIG_ACPI
+#include <dev/acpi/acpireg.h>
+#define	_COMPONENT	ACPI_DISPLAY_COMPONENT
+ACPI_MODULE_NAME("nouveau_nvkm_subdev_mxm_base")
+#include <linux/nbsd-namespace-acpi.h>
+#endif
+#endif
+
 static bool
 mxm_shadow_rom_fetch(struct nvkm_i2c_bus *bus, u8 addr,
 		     u8 offset, u8 size, u8 *data)
@@ -99,7 +108,11 @@ mxm_shadow_dsm(struct nvkm_mxm *mxm, u8 
 	acpi_handle handle;
 	int rev;
 
+#ifdef __NetBSD__
+	handle = (device->acpidev ? device->acpidev->ad_handle : NULL);
+#else
 	handle = ACPI_HANDLE(device->dev);
+#endif
 	if (!handle)
 		return false;
 

Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon.h
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon.h:1.11 src/sys/external/bsd/drm2/dist/drm/radeon/radeon.h:1.12
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon.h:1.11	Sun Dec 19 11:52:38 2021
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon.h	Tue Apr 16 14:34:02 2024
@@ -1,4 +1,4 @@
-/*	$NetBSD: radeon.h,v 1.11 2021/12/19 11:52:38 riastradh Exp $	*/
+/*	$NetBSD: radeon.h,v 1.12 2024/04/16 14:34:02 riastradh Exp $	*/
 
 /*
  * Copyright 2008 Advanced Micro Devices, Inc.
@@ -69,6 +69,7 @@
 #include <linux/interval_tree.h>
 #include <linux/hashtable.h>
 #include <linux/dma-fence.h>
+#include <linux/acpi.h>
 
 #ifdef CONFIG_MMU_NOTIFIER
 #include <linux/mmu_notifier.h>

Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_acpi.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_acpi.c:1.4 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_acpi.c:1.5
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_acpi.c:1.4	Sun Feb 27 14:24:27 2022
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_acpi.c	Tue Apr 16 14:34:02 2024
@@ -1,4 +1,4 @@
-/*	$NetBSD: radeon_acpi.c,v 1.4 2022/02/27 14:24:27 riastradh Exp $	*/
+/*	$NetBSD: radeon_acpi.c,v 1.5 2024/04/16 14:34:02 riastradh Exp $	*/
 
 /*
  * Copyright 2012 Advanced Micro Devices, Inc.
@@ -24,7 +24,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: radeon_acpi.c,v 1.4 2022/02/27 14:24:27 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: radeon_acpi.c,v 1.5 2024/04/16 14:34:02 riastradh Exp $");
 
 #include <linux/acpi.h>
 #include <linux/pci.h>
@@ -42,6 +42,14 @@ __KERNEL_RCSID(0, "$NetBSD: radeon_acpi.
 #include "radeon.h"
 #include "radeon_acpi.h"
 
+#ifdef __NetBSD__
+#include <dev/acpi/acpi_pci.h>
+#include <dev/acpi/acpireg.h>
+#define	_COMPONENT	ACPI_DISPLAY_COMPONENT
+ACPI_MODULE_NAME("radeon_acpi")
+#include <linux/nbsd-namespace-acpi.h>
+#endif
+
 #if defined(CONFIG_VGA_SWITCHEROO)
 bool radeon_atpx_dgpu_req_power_for_displays(void);
 #else
@@ -310,6 +318,8 @@ out:
 	return err;
 }
 
+#ifndef __NetBSD__		/* XXX radeon acpi */
+
 /**
  * radeon_atif_get_sbios_requests - get requested sbios event
  *
@@ -430,6 +440,8 @@ static int radeon_atif_handler(struct ra
 	return NOTIFY_BAD;
 }
 
+#endif	/* __NetBSD__ */
+
 /* Call the ATCS method
  */
 /**
@@ -577,7 +589,17 @@ int radeon_acpi_pcie_notify_device_ready
 	struct radeon_atcs *atcs = &rdev->atcs;
 
 	/* Get the device handle */
+#ifdef __NetBSD__
+	const struct pci_attach_args *pa = &rdev->pdev->pd_pa;
+	struct acpi_devnode *const d =
+	    acpi_pcidev_find(pci_get_segment(pa->pa_pc),
+		pa->pa_bus, pa->pa_device, pa->pa_function);
+	if (d == NULL)
+		return -EINVAL;
+	handle = d->ad_handle;
+#else
 	handle = ACPI_HANDLE(&rdev->pdev->dev);
+#endif
 	if (!handle)
 		return -EINVAL;
 
@@ -617,7 +639,17 @@ int radeon_acpi_pcie_performance_request
 	u32 retry = 3;
 
 	/* Get the device handle */
+#ifdef __NetBSD__
+	const struct pci_attach_args *pa = &rdev->pdev->pd_pa;
+	struct acpi_devnode *const d =
+	    acpi_pcidev_find(pci_get_segment(pa->pa_pc),
+		pa->pa_bus, pa->pa_device, pa->pa_function);
+	if (d == NULL)
+		return -EINVAL;
+	handle = d->ad_handle;
+#else
 	handle = ACPI_HANDLE(&rdev->pdev->dev);
+#endif
 	if (!handle)
 		return -EINVAL;
 
@@ -682,6 +714,7 @@ int radeon_acpi_pcie_performance_request
  * acpi events.
  * Returns NOTIFY code
  */
+#ifndef __NetBSD__		/* XXX radeon acpi */
 static int radeon_acpi_event(struct notifier_block *nb,
 			     unsigned long val,
 			     void *data)
@@ -701,6 +734,7 @@ static int radeon_acpi_event(struct noti
 	/* Check for pending SBIOS requests */
 	return radeon_atif_handler(rdev, entry);
 }
+#endif
 
 /* Call all ACPI methods here */
 /**
@@ -720,7 +754,17 @@ int radeon_acpi_init(struct radeon_devic
 	int ret;
 
 	/* Get the device handle */
+#ifdef __NetBSD__
+	const struct pci_attach_args *pa = &rdev->pdev->pd_pa;
+	struct acpi_devnode *const d =
+	    acpi_pcidev_find(pci_get_segment(pa->pa_pc),
+		pa->pa_bus, pa->pa_device, pa->pa_function);
+	if (d == NULL)
+		return -EINVAL;
+	handle = d->ad_handle;
+#else
 	handle = ACPI_HANDLE(&rdev->pdev->dev);
+#endif
 
 	/* No need to proceed if we're sure that ATIF is not supported */
 	if (!ASIC_IS_AVIVO(rdev) || !rdev->bios || !handle)
@@ -789,8 +833,10 @@ int radeon_acpi_init(struct radeon_devic
 	}
 
 out:
+#ifndef __NetBSD__		/* XXX radeon acpi */
 	rdev->acpi_nb.notifier_call = radeon_acpi_event;
 	register_acpi_notifier(&rdev->acpi_nb);
+#endif
 
 	return ret;
 }
@@ -804,5 +850,7 @@ out:
  */
 void radeon_acpi_fini(struct radeon_device *rdev)
 {
+#ifndef __NetBSD__		/* XXX radeon acpi */
 	unregister_acpi_notifier(&rdev->acpi_nb);
+#endif
 }
Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_drv.h
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_drv.h:1.4 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_drv.h:1.5
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_drv.h:1.4	Sat May 28 01:07:47 2022
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_drv.h	Tue Apr 16 14:34:02 2024
@@ -1,4 +1,4 @@
-/*	$NetBSD: radeon_drv.h,v 1.4 2022/05/28 01:07:47 manu Exp $	*/
+/*	$NetBSD: radeon_drv.h,v 1.5 2024/04/16 14:34:02 riastradh Exp $	*/
 
 /* radeon_drv.h -- Private header for radeon driver -*- linux-c -*-
  *
@@ -33,15 +33,6 @@
 #ifndef __RADEON_DRV_H__
 #define __RADEON_DRV_H__
 
-#if defined(__NetBSD__)
-#ifdef _KERNEL_OPT
-#include "acpica.h"
-#endif  /* _KERNEL_OPT */
-#if (NACPICA > 0)
-#define CONFIG_ACPI
-#endif  /* NACPICA > 0 */
-#endif  /* __NetBSD__ */
-
 #include <linux/firmware.h>
 #include <linux/platform_device.h>
 #include <drm/drm_legacy.h>

Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_bios.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_bios.c:1.13 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_bios.c:1.14
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_bios.c:1.13	Mon Nov  6 14:33:51 2023
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_bios.c	Tue Apr 16 14:34:02 2024
@@ -1,4 +1,4 @@
-/*	$NetBSD: radeon_bios.c,v 1.13 2023/11/06 14:33:51 tnn Exp $	*/
+/*	$NetBSD: radeon_bios.c,v 1.14 2024/04/16 14:34:02 riastradh Exp $	*/
 
 /*
  * Copyright 2008 Advanced Micro Devices, Inc.
@@ -29,7 +29,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: radeon_bios.c,v 1.13 2023/11/06 14:33:51 tnn Exp $");
+__KERNEL_RCSID(0, "$NetBSD: radeon_bios.c,v 1.14 2024/04/16 14:34:02 riastradh Exp $");
 
 #include <linux/acpi.h>
 #include <linux/pci.h>
@@ -41,8 +41,7 @@ __KERNEL_RCSID(0, "$NetBSD: radeon_bios.
 #include "radeon.h"
 #include "radeon_reg.h"
 
-#if defined(__NetBSD__) && NACPICA > 0
-#define CONFIG_ACPI
+#if defined(__NetBSD__) && defined(CONFIG_ACPI)
 #include <dev/acpi/acpireg.h>
 #define	_COMPONENT	ACPI_DISPLAY_COMPONENT
 ACPI_MODULE_NAME("radeon_acpi")

Index: src/sys/external/bsd/drm2/include/acpi/video.h
diff -u src/sys/external/bsd/drm2/include/acpi/video.h:1.2 src/sys/external/bsd/drm2/include/acpi/video.h:1.3
--- src/sys/external/bsd/drm2/include/acpi/video.h:1.2	Tue Mar 18 18:20:42 2014
+++ src/sys/external/bsd/drm2/include/acpi/video.h	Tue Apr 16 14:34:03 2024
@@ -1,4 +1,4 @@
-/*	$NetBSD: video.h,v 1.2 2014/03/18 18:20:42 riastradh Exp $	*/
+/*	$NetBSD: video.h,v 1.3 2024/04/16 14:34:03 riastradh Exp $	*/
 
 /*-
  * Copyright (c) 2013 The NetBSD Foundation, Inc.
@@ -32,6 +32,8 @@
 #ifndef _DRM2_COMPAT_ACPI_VIDEO_H_
 #define _DRM2_COMPAT_ACPI_VIDEO_H_
 
+#include <linux/acpi.h>
+
 static inline void
 acpi_video_register(void)
 {

Index: src/sys/external/bsd/drm2/include/linux/acpi.h
diff -u src/sys/external/bsd/drm2/include/linux/acpi.h:1.10 src/sys/external/bsd/drm2/include/linux/acpi.h:1.11
--- src/sys/external/bsd/drm2/include/linux/acpi.h:1.10	Sat May 28 01:07:47 2022
+++ src/sys/external/bsd/drm2/include/linux/acpi.h	Tue Apr 16 14:34:03 2024
@@ -1,4 +1,4 @@
-/*	$NetBSD: acpi.h,v 1.10 2022/05/28 01:07:47 manu Exp $	*/
+/*	$NetBSD: acpi.h,v 1.11 2024/04/16 14:34:03 riastradh Exp $	*/
 
 /*-
  * Copyright (c) 2013 The NetBSD Foundation, Inc.
@@ -37,6 +37,9 @@
 #endif
 
 #if NACPICA > 0
+
+#define	CONFIG_ACPI	1
+
 #include <dev/acpi/acpivar.h>
 
 #include <linux/types.h>
@@ -58,4 +61,5 @@ union acpi_object *acpi_evaluate_dsm_typ
 bool acpi_check_dsm(acpi_handle, const guid_t *, uint64_t, uint64_t);
 
 #endif	/* NACPICA > 0 */
+
 #endif  /* _LINUX_ACPI_H_ */

Index: src/sys/external/bsd/drm2/include/linux/nbsd-namespace-acpi.h
diff -u src/sys/external/bsd/drm2/include/linux/nbsd-namespace-acpi.h:1.1 src/sys/external/bsd/drm2/include/linux/nbsd-namespace-acpi.h:1.2
--- src/sys/external/bsd/drm2/include/linux/nbsd-namespace-acpi.h:1.1	Sun Feb 27 14:22:42 2022
+++ src/sys/external/bsd/drm2/include/linux/nbsd-namespace-acpi.h	Tue Apr 16 14:34:03 2024
@@ -1,4 +1,4 @@
-/*	$NetBSD: nbsd-namespace-acpi.h,v 1.1 2022/02/27 14:22:42 riastradh Exp $	*/
+/*	$NetBSD: nbsd-namespace-acpi.h,v 1.2 2024/04/16 14:34:03 riastradh Exp $	*/
 
 /*-
  * Copyright (c) 2022 The NetBSD Foundation, Inc.
@@ -40,6 +40,7 @@
 #define	value		Value
 
 #define	acpi_get_handle		AcpiGetHandle
+#define	acpi_get_name		AcpiGetName
 #define	acpi_get_table		AcpiGetTable
 #define	acpi_evaluate_object	AcpiEvaluateObject
 #define	acpi_format_exception	AcpiFormatException

Index: src/sys/external/bsd/drm2/nouveau/files.nouveau
diff -u src/sys/external/bsd/drm2/nouveau/files.nouveau:1.39 src/sys/external/bsd/drm2/nouveau/files.nouveau:1.40
--- src/sys/external/bsd/drm2/nouveau/files.nouveau:1.39	Sat Jun  3 21:30:22 2023
+++ src/sys/external/bsd/drm2/nouveau/files.nouveau	Tue Apr 16 14:34:03 2024
@@ -1,4 +1,4 @@
-#	$NetBSD: files.nouveau,v 1.39 2023/06/03 21:30:22 lukem Exp $
+#	$NetBSD: files.nouveau,v 1.40 2024/04/16 14:34:03 riastradh Exp $
 
 version	20180827
 
@@ -99,6 +99,7 @@ file	external/bsd/drm2/dist/drm/nouveau/
 file	external/bsd/drm2/dist/drm/nouveau/dispnv50/nouveau_dispnv50_wndwc37e.c	nouveau
 file	external/bsd/drm2/dist/drm/nouveau/dispnv50/nouveau_dispnv50_wndwc57e.c	nouveau
 file	external/bsd/drm2/dist/drm/nouveau/nouveau_abi16.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/nouveau_acpi.c	nouveau & acpi
 file	external/bsd/drm2/dist/drm/nouveau/nouveau_bios.c	nouveau
 file	external/bsd/drm2/dist/drm/nouveau/nouveau_bo.c	nouveau
 file	external/bsd/drm2/dist/drm/nouveau/nouveau_chan.c	nouveau

Index: src/sys/external/bsd/drm2/radeon/files.radeon
diff -u src/sys/external/bsd/drm2/radeon/files.radeon:1.39 src/sys/external/bsd/drm2/radeon/files.radeon:1.40
--- src/sys/external/bsd/drm2/radeon/files.radeon:1.39	Sat Jun  3 21:31:47 2023
+++ src/sys/external/bsd/drm2/radeon/files.radeon	Tue Apr 16 14:34:03 2024
@@ -1,4 +1,4 @@
-#	$NetBSD: files.radeon,v 1.39 2023/06/03 21:31:47 lukem Exp $
+#	$NetBSD: files.radeon,v 1.40 2024/04/16 14:34:03 riastradh Exp $
 
 version	20180827
 
@@ -48,7 +48,7 @@ file	external/bsd/drm2/radeon/radeon_pci
 file	external/bsd/drm2/radeon/radeondrmkmsfb.c		radeondrmkmsfb
 
 # Generated from radeon2netbsd.
-#file	external/bsd/drm2/dist/drm/radeon/radeon_acpi.c	radeon
+file	external/bsd/drm2/dist/drm/radeon/radeon_acpi.c	radeon
 file	external/bsd/drm2/dist/drm/radeon/radeon_agp.c	radeon
 file	external/bsd/drm2/dist/drm/radeon/radeon_asic.c	radeon
 file	external/bsd/drm2/dist/drm/radeon/radeon_atom.c	radeon

Index: src/sys/modules/amdgpu/Makefile
diff -u src/sys/modules/amdgpu/Makefile:1.8 src/sys/modules/amdgpu/Makefile:1.9
--- src/sys/modules/amdgpu/Makefile:1.8	Sun Sep 10 15:12:39 2023
+++ src/sys/modules/amdgpu/Makefile	Tue Apr 16 14:34:03 2024
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.8 2023/09/10 15:12:39 mrg Exp $
+# $NetBSD: Makefile,v 1.9 2024/04/16 14:34:03 riastradh Exp $
 
 .include "../Makefile.inc"
 .include "../drmkms/Makefile.inc"
@@ -15,6 +15,11 @@ COPTS.amdgpu_float+=	${${ACTIVE_CC} == "
 COPTS.amdgpu_float+=	-march=armv8-a
 .endif
 
+.if ${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "x86_64" || \
+	${MACHINE_CPU} == "arm" || ${MACHINE_CPU} == "aarch64"
+CPPFLAGS+=	-DNACPICA=1
+.endif
+
 # sed -ne 's,^makeoptions	amdgpu	"\([^.]*\)\.amdgpu"+="\(.*\)",\1+=	\2,gp' <files.amdgpu | sed -e 's,\$S,${S},g'
 # Note: order of includes is significant.
 CPPFLAGS+=	-I${S}/external/bsd/drm2/dist/drm/amd/include/asic_reg
@@ -145,6 +150,7 @@ COPTS.amdgpu_rn_clk_mgr.c+=	${COPTS.amdg
 # sed -ne 's,^file	external/bsd/drm2/.*/\([^/ 	]*\)	.*,SRCS+=	\1,gp' <files.amdgpu | sort -u
 SRCS+=	amdgpu_acp.c
 SRCS+=	amdgpu_acp_hw.c
+SRCS+=	amdgpu_acpi.c
 SRCS+=	amdgpu_afmt.c
 SRCS+=	amdgpu_amd_powerplay.c
 SRCS+=	amdgpu_amdkfd.c

Added files:



Reply via email to