Module Name:    src
Committed By:   riastradh
Date:           Sun Dec 19 10:59:03 UTC 2021

Modified Files:
        src/sys/external/bsd/drm2/amdgpu: files.amdgpu
        src/sys/external/bsd/drm2/dist/drm/amd/amdgpu: amdgpu_acp.c
            amdgpu_amdkfd.c amdgpu_atombios.c amdgpu_bios.c amdgpu_bo_list.c
            amdgpu_cgs.c amdgpu_cik.c amdgpu_cs.c amdgpu_csa.c amdgpu_dma_buf.h
            amdgpu_ras.h amdgpu_ring.h amdgpu_ttm.h amdgpu_virt.h amdgpu_xgmi.c
            amdgpu_xgmi.h
        src/sys/external/bsd/drm2/dist/drm/amd/display/amdgpu_dm:
            amdgpu_dm_pp_smu.c
        src/sys/external/bsd/drm2/dist/drm/amd/display/dc: amdgpu_dc_helper.c
            dm_pp_smu.h
        src/sys/external/bsd/drm2/dist/drm/amd/display/dc/basics:
            amdgpu_conversion.c
        src/sys/external/bsd/drm2/dist/drm/amd/display/dc/bios:
            amdgpu_bios_parser.c amdgpu_command_table.c
        src/sys/external/bsd/drm2/dist/drm/amd/display/dc/core: amdgpu_dc.c
            amdgpu_dc_debug.c amdgpu_dc_hw_sequencer.c amdgpu_dc_link.c
            amdgpu_dc_link_dp.c amdgpu_dc_link_hwss.c amdgpu_dc_resource.c
        src/sys/external/bsd/drm2/dist/drm/amd/display/dc/dce: dce_audio.h
        src/sys/external/bsd/drm2/dist/drm/amd/display/dc/dce100:
            amdgpu_dce100_resource.c
        src/sys/external/bsd/drm2/dist/drm/amd/display/dc/dce110:
            amdgpu_dce110_compressor.c amdgpu_dce110_hw_sequencer.c
            amdgpu_dce110_mem_input_v.c amdgpu_dce110_timing_generator.c
        src/sys/external/bsd/drm2/dist/drm/amd/display/dc/dsc: amdgpu_dc_dsc.c
        src/sys/external/bsd/drm2/dist/drm/amd/display/dc/inc: link_hwss.h
        src/sys/external/bsd/drm2/dist/drm/amd/display/dmub/inc: dmub_rb.h
        src/sys/external/bsd/drm2/dist/drm/amd/display/include: fixed31_32.h
        src/sys/external/bsd/drm2/dist/drm/amd/include: amd_shared.h
            kgd_kfd_interface.h navi10_enum.h vega10_enum.h
        src/sys/external/bsd/drm2/dist/drm/amd/powerplay:
            amdgpu_amd_powerplay.c amdgpu_arcturus_ppt.c
        src/sys/external/bsd/drm2/dist/drm/amd/powerplay/inc: hwmgr.h
        src/sys/external/bsd/drm2/dist/drm/amd/powerplay/smumgr:
            amdgpu_ci_smumgr.c
        src/sys/external/bsd/drm2/dist/include/drm: gpu_scheduler.h

Log Message:
First whack at amdgpu. Long way to go.


To generate a diff of this commit:
cvs rdiff -u -r1.13 -r1.14 src/sys/external/bsd/drm2/amdgpu/files.amdgpu
cvs rdiff -u -r1.2 -r1.3 \
    src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_acp.c \
    src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_csa.c \
    src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_dma_buf.h \
    src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_ras.h \
    src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_ring.h \
    src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_ttm.h \
    src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_virt.h \
    src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_xgmi.c \
    src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_xgmi.h
cvs rdiff -u -r1.5 -r1.6 \
    src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_amdkfd.c \
    src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_cs.c
cvs rdiff -u -r1.6 -r1.7 \
    src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_atombios.c \
    src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_cgs.c
cvs rdiff -u -r1.4 -r1.5 \
    src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_bios.c \
    src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_cik.c
cvs rdiff -u -r1.7 -r1.8 \
    src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_bo_list.c
cvs rdiff -u -r1.2 -r1.3 \
    src/sys/external/bsd/drm2/dist/drm/amd/display/amdgpu_dm/amdgpu_dm_pp_smu.c
cvs rdiff -u -r1.3 -r1.4 \
    src/sys/external/bsd/drm2/dist/drm/amd/display/dc/amdgpu_dc_helper.c
cvs rdiff -u -r1.2 -r1.3 \
    src/sys/external/bsd/drm2/dist/drm/amd/display/dc/dm_pp_smu.h
cvs rdiff -u -r1.2 -r1.3 \
    src/sys/external/bsd/drm2/dist/drm/amd/display/dc/basics/amdgpu_conversion.c
cvs rdiff -u -r1.2 -r1.3 \
    src/sys/external/bsd/drm2/dist/drm/amd/display/dc/bios/amdgpu_bios_parser.c 
\
    
src/sys/external/bsd/drm2/dist/drm/amd/display/dc/bios/amdgpu_command_table.c
cvs rdiff -u -r1.2 -r1.3 \
    src/sys/external/bsd/drm2/dist/drm/amd/display/dc/core/amdgpu_dc.c \
    src/sys/external/bsd/drm2/dist/drm/amd/display/dc/core/amdgpu_dc_debug.c \
    
src/sys/external/bsd/drm2/dist/drm/amd/display/dc/core/amdgpu_dc_hw_sequencer.c 
\
    src/sys/external/bsd/drm2/dist/drm/amd/display/dc/core/amdgpu_dc_link.c \
    src/sys/external/bsd/drm2/dist/drm/amd/display/dc/core/amdgpu_dc_link_dp.c \
    
src/sys/external/bsd/drm2/dist/drm/amd/display/dc/core/amdgpu_dc_link_hwss.c \
    src/sys/external/bsd/drm2/dist/drm/amd/display/dc/core/amdgpu_dc_resource.c
cvs rdiff -u -r1.2 -r1.3 \
    src/sys/external/bsd/drm2/dist/drm/amd/display/dc/dce/dce_audio.h
cvs rdiff -u -r1.2 -r1.3 \
    
src/sys/external/bsd/drm2/dist/drm/amd/display/dc/dce100/amdgpu_dce100_resource.c
cvs rdiff -u -r1.2 -r1.3 \
    
src/sys/external/bsd/drm2/dist/drm/amd/display/dc/dce110/amdgpu_dce110_compressor.c
 \
    
src/sys/external/bsd/drm2/dist/drm/amd/display/dc/dce110/amdgpu_dce110_hw_sequencer.c
 \
    
src/sys/external/bsd/drm2/dist/drm/amd/display/dc/dce110/amdgpu_dce110_mem_input_v.c
 \
    
src/sys/external/bsd/drm2/dist/drm/amd/display/dc/dce110/amdgpu_dce110_timing_generator.c
cvs rdiff -u -r1.2 -r1.3 \
    src/sys/external/bsd/drm2/dist/drm/amd/display/dc/dsc/amdgpu_dc_dsc.c
cvs rdiff -u -r1.2 -r1.3 \
    src/sys/external/bsd/drm2/dist/drm/amd/display/dc/inc/link_hwss.h
cvs rdiff -u -r1.2 -r1.3 \
    src/sys/external/bsd/drm2/dist/drm/amd/display/dmub/inc/dmub_rb.h
cvs rdiff -u -r1.2 -r1.3 \
    src/sys/external/bsd/drm2/dist/drm/amd/display/include/fixed31_32.h
cvs rdiff -u -r1.3 -r1.4 \
    src/sys/external/bsd/drm2/dist/drm/amd/include/amd_shared.h \
    src/sys/external/bsd/drm2/dist/drm/amd/include/kgd_kfd_interface.h
cvs rdiff -u -r1.2 -r1.3 \
    src/sys/external/bsd/drm2/dist/drm/amd/include/navi10_enum.h \
    src/sys/external/bsd/drm2/dist/drm/amd/include/vega10_enum.h
cvs rdiff -u -r1.2 -r1.3 \
    src/sys/external/bsd/drm2/dist/drm/amd/powerplay/amdgpu_amd_powerplay.c \
    src/sys/external/bsd/drm2/dist/drm/amd/powerplay/amdgpu_arcturus_ppt.c
cvs rdiff -u -r1.2 -r1.3 \
    src/sys/external/bsd/drm2/dist/drm/amd/powerplay/inc/hwmgr.h
cvs rdiff -u -r1.2 -r1.3 \
    src/sys/external/bsd/drm2/dist/drm/amd/powerplay/smumgr/amdgpu_ci_smumgr.c
cvs rdiff -u -r1.2 -r1.3 \
    src/sys/external/bsd/drm2/dist/include/drm/gpu_scheduler.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/external/bsd/drm2/amdgpu/files.amdgpu
diff -u src/sys/external/bsd/drm2/amdgpu/files.amdgpu:1.13 src/sys/external/bsd/drm2/amdgpu/files.amdgpu:1.14
--- src/sys/external/bsd/drm2/amdgpu/files.amdgpu:1.13	Sun Dec 19 10:56:39 2021
+++ src/sys/external/bsd/drm2/amdgpu/files.amdgpu	Sun Dec 19 10:59:00 2021
@@ -1,4 +1,4 @@
-#	$NetBSD: files.amdgpu,v 1.13 2021/12/19 10:56:39 riastradh Exp $
+#	$NetBSD: files.amdgpu,v 1.14 2021/12/19 10:59:00 riastradh Exp $
 
 version	20180827
 
@@ -31,9 +31,20 @@ makeoptions	amdgpu	"CPPFLAGS.amdgpu"+="-
 makeoptions	amdgpu	"CPPFLAGS.amdgpu"+="-I$S/external/bsd/drm2/dist/drm/amd/display/amdgpu_dm"
 makeoptions	amdgpu	"CPPFLAGS.amdgpu"+="-I$S/external/bsd/drm2/dist/drm/amd/display/dmub/inc"
 
+makeoptions	amdgpu	"CPPFLAGS.amdgpu"+="-DCONFIG_DRM_AMD_ACP"
+
 makeoptions	amdgpu	"CWARNFLAGS.amdgpu"+="-Wno-missing-field-initializers"
 makeoptions	amdgpu	"CWARNFLAGS.amdgpu"+="-Wno-shadow"
 makeoptions	amdgpu	"CWARNFLAGS.amdgpu"+="-Wno-pointer-arith"
+makeoptions	amdgpu	"CWARNFLAGS.amdgpu"+="-Wno-override-init"
+
+# Half the file strips const qualifier; file is small enough this is
+# not an issue.
+makeoptions	amdgpu	"CWARNFLAGS.amdgpu_arct_reg_init.c"+="-Wno-cast-qual"
+
+# -Wtype-limits raises warnings about code that is careful to avoid
+# overflow in arithmetic, which is the opposite of helpful.  &@!#*
+makeoptions	amdgpu	"CWARNFLAGS.amdgpu_bo_list.c"+="-Wno-type-limits"
 
 # Local additions.
 file	external/bsd/drm2/amdgpu/amdgpu_module.c	amdgpu
@@ -298,7 +309,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_acp.c
diff -u src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_acp.c:1.2 src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_acp.c:1.3
--- src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_acp.c:1.2	Sat Dec 18 23:44:58 2021
+++ src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_acp.c	Sun Dec 19 10:59:01 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: amdgpu_acp.c,v 1.2 2021/12/18 23:44:58 riastradh Exp $	*/
+/*	$NetBSD: amdgpu_acp.c,v 1.3 2021/12/19 10:59:01 riastradh Exp $	*/
 
 /*
  * Copyright 2015 Advanced Micro Devices, Inc.
@@ -26,7 +26,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: amdgpu_acp.c,v 1.2 2021/12/18 23:44:58 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: amdgpu_acp.c,v 1.3 2021/12/19 10:59:01 riastradh Exp $");
 
 #include <linux/irqdomain.h>
 #include <linux/pci.h>
@@ -122,6 +122,8 @@ static int acp_sw_fini(void *handle)
 	return 0;
 }
 
+#ifndef __NetBSD__		/* XXX amdgpu pm */
+
 struct acp_pm_domain {
 	void *adev;
 	struct generic_pm_domain gpd;
@@ -181,6 +183,8 @@ static struct device *get_mfd_cell_dev(c
 	return dev;
 }
 
+#endif
+
 /**
  * acp_hw_init - start and test ACP block
  *
@@ -220,6 +224,7 @@ static int acp_hw_init(void *handle)
 	acp_base = adev->rmmio_base;
 
 
+#ifndef __NetBSD__		/* XXX amdgpu pm */
 	adev->acp.acp_genpd = kzalloc(sizeof(struct acp_pm_domain), GFP_KERNEL);
 	if (adev->acp.acp_genpd == NULL)
 		return -ENOMEM;
@@ -232,7 +237,9 @@ static int acp_hw_init(void *handle)
 	adev->acp.acp_genpd->adev = adev;
 
 	pm_genpd_init(&adev->acp.acp_genpd->gpd, NULL, false);
+#endif
 
+#ifndef __NetBSD__		/* XXX amdgpu cell */
 	adev->acp.acp_cell = kcalloc(ACP_DEVS, sizeof(struct mfd_cell),
 							GFP_KERNEL);
 
@@ -240,6 +247,7 @@ static int acp_hw_init(void *handle)
 		r = -ENOMEM;
 		goto failure;
 	}
+#endif
 
 	adev->acp.acp_res = kcalloc(5, sizeof(struct resource), GFP_KERNEL);
 	if (adev->acp.acp_res == NULL) {
@@ -247,6 +255,9 @@ static int acp_hw_init(void *handle)
 		goto failure;
 	}
 
+#ifdef __NetBSD__		/* XXX amdgpu sound */
+	__USE(i2s_pdata);
+#else
 	i2s_pdata = kcalloc(3, sizeof(struct i2s_platform_data), GFP_KERNEL);
 	if (i2s_pdata == NULL) {
 		r = -ENOMEM;
@@ -294,6 +305,7 @@ static int acp_hw_init(void *handle)
 	i2s_pdata[2].snd_rates = SNDRV_PCM_RATE_8000_96000;
 	i2s_pdata[2].i2s_reg_comp1 = ACP_BT_COMP1_REG_OFFSET;
 	i2s_pdata[2].i2s_reg_comp2 = ACP_BT_COMP2_REG_OFFSET;
+#endif
 
 	adev->acp.acp_res[0].name = "acp2x_dma";
 	adev->acp.acp_res[0].flags = IORESOURCE_MEM;
@@ -320,6 +332,10 @@ static int acp_hw_init(void *handle)
 	adev->acp.acp_res[4].start = amdgpu_irq_create_mapping(adev, 162);
 	adev->acp.acp_res[4].end = adev->acp.acp_res[4].start;
 
+#ifdef __NetBSD__		/* XXX amdgpu cell */
+	__USE(dev);
+	__USE(i);
+#else
 	adev->acp.acp_cell[0].name = "acp_audio_dma";
 	adev->acp.acp_cell[0].num_resources = 5;
 	adev->acp.acp_cell[0].resources = &adev->acp.acp_res[0];
@@ -357,7 +373,7 @@ static int acp_hw_init(void *handle)
 			goto failure;
 		}
 	}
-
+#endif
 
 	/* Assert Soft reset of ACP */
 	val = cgs_read_register(adev->acp.cgs_device, mmACP_SOFT_RESET);
@@ -372,7 +388,7 @@ static int acp_hw_init(void *handle)
 		    (val & ACP_SOFT_RESET__SoftResetAudDone_MASK))
 			break;
 		if (--count == 0) {
-			dev_err(&adev->pdev->dev, "Failed to reset ACP\n");
+			dev_err(pci_dev_dev(adev->pdev), "Failed to reset ACP\n");
 			r = -ETIMEDOUT;
 			goto failure;
 		}
@@ -390,7 +406,7 @@ static int acp_hw_init(void *handle)
 		if (val & (u32) 0x1)
 			break;
 		if (--count == 0) {
-			dev_err(&adev->pdev->dev, "Failed to reset ACP\n");
+			dev_err(pci_dev_dev(adev->pdev), "Failed to reset ACP\n");
 			r = -ETIMEDOUT;
 			goto failure;
 		}
@@ -443,7 +459,7 @@ static int acp_hw_fini(void *handle)
 		    (val & ACP_SOFT_RESET__SoftResetAudDone_MASK))
 			break;
 		if (--count == 0) {
-			dev_err(&adev->pdev->dev, "Failed to reset ACP\n");
+			dev_err(pci_dev_dev(adev->pdev), "Failed to reset ACP\n");
 			return -ETIMEDOUT;
 		}
 		udelay(100);
@@ -460,12 +476,17 @@ static int acp_hw_fini(void *handle)
 		if (val & (u32) 0x1)
 			break;
 		if (--count == 0) {
-			dev_err(&adev->pdev->dev, "Failed to reset ACP\n");
+			dev_err(pci_dev_dev(adev->pdev), "Failed to reset ACP\n");
 			return -ETIMEDOUT;
 		}
 		udelay(100);
 	}
 
+#ifdef __NetBSD__		/* XXX amdgpu pm */
+	__USE(dev);
+	__USE(i);
+	__USE(ret);
+#else
 	for (i = 0; i < ACP_DEVS ; i++) {
 		dev = get_mfd_cell_dev(adev->acp.acp_cell[i].name, i);
 		ret = pm_genpd_remove_device(dev);
@@ -475,6 +496,7 @@ static int acp_hw_fini(void *handle)
 	}
 
 	mfd_remove_devices(adev->acp.parent);
+#endif
 	kfree(adev->acp.acp_res);
 	kfree(adev->acp.acp_genpd);
 	kfree(adev->acp.acp_cell);
Index: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_csa.c
diff -u src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_csa.c:1.2 src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_csa.c:1.3
--- src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_csa.c:1.2	Sat Dec 18 23:44:58 2021
+++ src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_csa.c	Sun Dec 19 10:59:01 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: amdgpu_csa.c,v 1.2 2021/12/18 23:44:58 riastradh Exp $	*/
+/*	$NetBSD: amdgpu_csa.c,v 1.3 2021/12/19 10:59:01 riastradh Exp $	*/
 
 /*
  * Copyright 2016 Advanced Micro Devices, Inc.
@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: amdgpu_csa.c,v 1.2 2021/12/18 23:44:58 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: amdgpu_csa.c,v 1.3 2021/12/19 10:59:01 riastradh Exp $");
 
 #include "amdgpu.h"
 
@@ -42,7 +42,7 @@ uint64_t amdgpu_csa_vaddr(struct amdgpu_
 int amdgpu_allocate_static_csa(struct amdgpu_device *adev, struct amdgpu_bo **bo,
 				u32 domain, uint32_t size)
 {
-	int r;
+	int r __unused;
 	void *ptr;
 
 	r = amdgpu_bo_create_kernel(adev, size, PAGE_SIZE,
Index: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_dma_buf.h
diff -u src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_dma_buf.h:1.2 src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_dma_buf.h:1.3
--- src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_dma_buf.h:1.2	Sat Dec 18 23:44:58 2021
+++ src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_dma_buf.h	Sun Dec 19 10:59:01 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: amdgpu_dma_buf.h,v 1.2 2021/12/18 23:44:58 riastradh Exp $	*/
+/*	$NetBSD: amdgpu_dma_buf.h,v 1.3 2021/12/19 10:59:01 riastradh Exp $	*/
 
 /*
  * Copyright 2019 Advanced Micro Devices, Inc.
@@ -33,8 +33,13 @@ struct drm_gem_object *amdgpu_gem_prime_
 					    struct dma_buf *dma_buf);
 void *amdgpu_gem_prime_vmap(struct drm_gem_object *obj);
 void amdgpu_gem_prime_vunmap(struct drm_gem_object *obj, void *vaddr);
+#ifdef __NetBSD__
+int amdgpu_gem_prime_mmap_object(struct drm_gem_object *, off_t *, size_t, int,
+    int *, struct uvm_object **, int *);
+#else
 int amdgpu_gem_prime_mmap(struct drm_gem_object *obj,
 			  struct vm_area_struct *vma);
+#endif
 
 extern const struct dma_buf_ops amdgpu_dmabuf_ops;
 
Index: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_ras.h
diff -u src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_ras.h:1.2 src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_ras.h:1.3
--- src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_ras.h:1.2	Sat Dec 18 23:44:58 2021
+++ src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_ras.h	Sun Dec 19 10:59:01 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: amdgpu_ras.h,v 1.2 2021/12/18 23:44:58 riastradh Exp $	*/
+/*	$NetBSD: amdgpu_ras.h,v 1.3 2021/12/19 10:59:01 riastradh Exp $	*/
 
 /*
  * Copyright 2018 Advanced Micro Devices, Inc.
@@ -320,8 +320,10 @@ struct amdgpu_ras {
 	/* debugfs */
 	struct dentry *dir;
 	/* sysfs */
+#ifdef CONFIG_SYSFS
 	struct device_attribute features_attr;
 	struct bin_attribute badpages_attr;
+#endif
 	/* block array */
 	struct ras_manager *objs;
 
@@ -393,8 +395,10 @@ struct ras_manager {
 	/* debugfs */
 	struct dentry *ent;
 	/* sysfs */
+#ifdef CONFIG_SYSFS
 	struct device_attribute sysfs_attr;
 	int attr_inuse;
+#endif
 
 	/* fs node name */
 	struct ras_fs_data fs_data;
Index: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_ring.h
diff -u src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_ring.h:1.2 src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_ring.h:1.3
--- src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_ring.h:1.2	Sat Dec 18 23:44:58 2021
+++ src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_ring.h	Sun Dec 19 10:59:01 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: amdgpu_ring.h,v 1.2 2021/12/18 23:44:58 riastradh Exp $	*/
+/*	$NetBSD: amdgpu_ring.h,v 1.3 2021/12/19 10:59:01 riastradh Exp $	*/
 
 /*
  * Copyright 2016 Advanced Micro Devices, Inc.
@@ -26,6 +26,8 @@
 #ifndef __AMDGPU_RING_H__
 #define __AMDGPU_RING_H__
 
+#include <linux/idr.h>
+
 #include <drm/amdgpu_drm.h>
 #include <drm/gpu_scheduler.h>
 #include <drm/drm_print.h>
@@ -307,7 +309,7 @@ static inline void amdgpu_ring_write_mul
 		DRM_ERROR("amdgpu: writing more dwords to the ring than expected!\n");
 
 	occupied = ring->wptr & ring->buf_mask;
-	dst = (void *)&ring->ring[occupied];
+	dst = __UNVOLATILE(&ring->ring[occupied]);
 	chunk1 = ring->buf_mask + 1 - occupied;
 	chunk1 = (chunk1 >= count_dw) ? count_dw: chunk1;
 	chunk2 = count_dw - chunk1;
@@ -319,7 +321,7 @@ static inline void amdgpu_ring_write_mul
 
 	if (chunk2) {
 		src += chunk1;
-		dst = (void *)ring->ring;
+		dst = __UNVOLATILE(ring->ring);
 		memcpy(dst, src, chunk2);
 	}
 
Index: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_ttm.h
diff -u src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_ttm.h:1.2 src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_ttm.h:1.3
--- src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_ttm.h:1.2	Sat Dec 18 23:44:58 2021
+++ src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_ttm.h	Sun Dec 19 10:59:01 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: amdgpu_ttm.h,v 1.2 2021/12/18 23:44:58 riastradh Exp $	*/
+/*	$NetBSD: amdgpu_ttm.h,v 1.3 2021/12/19 10:59:01 riastradh Exp $	*/
 
 /*
  * Copyright 2016 Advanced Micro Devices, Inc.
@@ -42,6 +42,11 @@
 
 #define AMDGPU_POISON	0xd0bed0be
 
+#ifdef __NetBSD__
+#  define	__amdgpu_aperture_iomem
+#  define	__iomem	__amdgpu_aperture_iomem
+#endif
+
 struct amdgpu_mman {
 	struct ttm_bo_device		bdev;
 	bool				mem_global_referenced;
@@ -62,6 +67,10 @@ struct amdgpu_mman {
 	struct drm_sched_entity			entity;
 };
 
+#ifdef __NetBSD__
+#  undef	__iomem
+#endif
+
 struct amdgpu_copy_mem {
 	struct ttm_buffer_object	*bo;
 	struct ttm_mem_reg		*mem;
@@ -101,7 +110,12 @@ int amdgpu_fill_buffer(struct amdgpu_bo 
 			struct dma_resv *resv,
 			struct dma_fence **fence);
 
+#ifdef __NetBSD__
+int amdgpu_mmap_object(struct drm_device *, off_t, size_t, vm_prot_t,
+    struct uvm_object **, voff_t *, struct file *);
+#else
 int amdgpu_mmap(struct file *filp, struct vm_area_struct *vma);
+#endif
 int amdgpu_ttm_alloc_gart(struct ttm_buffer_object *bo);
 int amdgpu_ttm_recover_gart(struct ttm_buffer_object *tbo);
 
Index: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_virt.h
diff -u src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_virt.h:1.2 src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_virt.h:1.3
--- src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_virt.h:1.2	Sat Dec 18 23:44:58 2021
+++ src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_virt.h	Sun Dec 19 10:59:01 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: amdgpu_virt.h,v 1.2 2021/12/18 23:44:58 riastradh Exp $	*/
+/*	$NetBSD: amdgpu_virt.h,v 1.3 2021/12/19 10:59:01 riastradh Exp $	*/
 
 /*
  * Copyright 2016 Advanced Micro Devices, Inc.
@@ -278,7 +278,11 @@ struct amdgpu_virt {
 static inline bool is_virtual_machine(void)
 {
 #ifdef CONFIG_X86
+#ifdef __NetBSD__
+	return false;		/* XXX */
+#else
 	return boot_cpu_has(X86_FEATURE_HYPERVISOR);
+#endif
 #else
 	return false;
 #endif
Index: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_xgmi.c
diff -u src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_xgmi.c:1.2 src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_xgmi.c:1.3
--- src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_xgmi.c:1.2	Sat Dec 18 23:44:58 2021
+++ src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_xgmi.c	Sun Dec 19 10:59:01 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: amdgpu_xgmi.c,v 1.2 2021/12/18 23:44:58 riastradh Exp $	*/
+/*	$NetBSD: amdgpu_xgmi.c,v 1.3 2021/12/19 10:59:01 riastradh Exp $	*/
 
 /*
  * Copyright 2018 Advanced Micro Devices, Inc.
@@ -24,7 +24,7 @@
  *
  */
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: amdgpu_xgmi.c,v 1.2 2021/12/18 23:44:58 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: amdgpu_xgmi.c,v 1.3 2021/12/19 10:59:01 riastradh Exp $");
 
 #include <linux/list.h>
 #include "amdgpu.h"
@@ -86,6 +86,7 @@ static ssize_t amdgpu_xgmi_show_hive_id(
 static int amdgpu_xgmi_sysfs_create(struct amdgpu_device *adev,
 				    struct amdgpu_hive_info *hive)
 {
+#ifdef CONFIG_SYSFS
 	int ret = 0;
 
 	if (WARN_ON(hive->kobj))
@@ -115,15 +116,18 @@ static int amdgpu_xgmi_sysfs_create(stru
 	}
 
 	return ret;
+#endif
 }
 
 static void amdgpu_xgmi_sysfs_destroy(struct amdgpu_device *adev,
 				    struct amdgpu_hive_info *hive)
 {
+#ifdef CONFIG_SYSFS
 	sysfs_remove_file(hive->kobj, &hive->dev_attr.attr);
 	kobject_del(hive->kobj);
 	kobject_put(hive->kobj);
 	hive->kobj = NULL;
+#endif
 }
 
 static ssize_t amdgpu_xgmi_show_device_id(struct device *dev,
@@ -172,6 +176,7 @@ static DEVICE_ATTR(xgmi_error, S_IRUGO, 
 static int amdgpu_xgmi_sysfs_add_dev_info(struct amdgpu_device *adev,
 					 struct amdgpu_hive_info *hive)
 {
+#ifdef CONFIG_SYSFS
 	int ret = 0;
 	char node[10] = { 0 };
 
@@ -217,14 +222,17 @@ remove_file:
 
 success:
 	return ret;
+#endif
 }
 
 static void amdgpu_xgmi_sysfs_rem_dev_info(struct amdgpu_device *adev,
 					  struct amdgpu_hive_info *hive)
 {
+#ifdef CONFIG_SYSFS
 	device_remove_file(adev->dev, &dev_attr_xgmi_device_id);
 	sysfs_remove_link(&adev->dev->kobj, adev->ddev->unique);
 	sysfs_remove_link(hive->kobj, adev->ddev->unique);
+#endif
 }
 
 
@@ -469,6 +477,7 @@ void amdgpu_xgmi_remove_device(struct am
 
 	if (!(hive->number_devices--)) {
 		amdgpu_xgmi_sysfs_destroy(adev, hive);
+		task_barrier_destroy(&tmp->tb);
 		mutex_destroy(&hive->hive_lock);
 		mutex_destroy(&hive->reset_lock);
 	} else {
Index: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_xgmi.h
diff -u src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_xgmi.h:1.2 src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_xgmi.h:1.3
--- src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_xgmi.h:1.2	Sat Dec 18 23:44:58 2021
+++ src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_xgmi.h	Sun Dec 19 10:59:01 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: amdgpu_xgmi.h,v 1.2 2021/12/18 23:44:58 riastradh Exp $	*/
+/*	$NetBSD: amdgpu_xgmi.h,v 1.3 2021/12/19 10:59:01 riastradh Exp $	*/
 
 /*
  * Copyright 2016 Advanced Micro Devices, Inc.
@@ -33,7 +33,9 @@ struct amdgpu_hive_info {
 	int number_devices;
 	struct mutex hive_lock, reset_lock;
 	struct kobject *kobj;
+#ifdef CONFIG_SYSFS
 	struct device_attribute dev_attr;
+#endif
 	struct amdgpu_device *adev;
 	int pstate; /*0 -- low , 1 -- high , -1 unknown*/
 	struct task_barrier tb;

Index: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_amdkfd.c
diff -u src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_amdkfd.c:1.5 src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_amdkfd.c:1.6
--- src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_amdkfd.c:1.5	Sun Dec 19 10:56:50 2021
+++ src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_amdkfd.c	Sun Dec 19 10:59:01 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: amdgpu_amdkfd.c,v 1.5 2021/12/19 10:56:50 riastradh Exp $	*/
+/*	$NetBSD: amdgpu_amdkfd.c,v 1.6 2021/12/19 10:59:01 riastradh Exp $	*/
 
 /*
  * Copyright 2014 Advanced Micro Devices, Inc.
@@ -23,7 +23,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: amdgpu_amdkfd.c,v 1.5 2021/12/19 10:56:50 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: amdgpu_amdkfd.c,v 1.6 2021/12/19 10:59:01 riastradh Exp $");
 
 #include "amdgpu_amdkfd.h"
 #include "amd_shared.h"
@@ -385,8 +385,12 @@ void amdgpu_amdkfd_get_local_mem_info(st
 				      struct kfd_local_mem_info *mem_info)
 {
 	struct amdgpu_device *adev = (struct amdgpu_device *)kgd;
+#ifdef __NetBSD__
+	uint64_t address_mask = ~(uint64_t)0; /* XXX */
+#else
 	uint64_t address_mask = adev->dev->dma_mask ? ~*adev->dev->dma_mask :
 					     ~((1ULL << 32) - 1);
+#endif
 	resource_size_t aper_limit = adev->gmc.aper_base + adev->gmc.aper_size;
 
 	memset(mem_info, 0, sizeof(*mem_info));
@@ -400,7 +404,7 @@ void amdgpu_amdkfd_get_local_mem_info(st
 	}
 	mem_info->vram_width = adev->gmc.vram_width;
 
-	pr_debug("Address base: %pap limit %pap public 0x%llx private 0x%llx\n",
+	pr_debug("Address base: %pap limit %pap public 0x%"PRIx64" private 0x%"PRIx64"\n",
 			&adev->gmc.aper_base, &aper_limit,
 			mem_info->local_mem_size_public,
 			mem_info->local_mem_size_private);
Index: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_cs.c
diff -u src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_cs.c:1.5 src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_cs.c:1.6
--- src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_cs.c:1.5	Sat Dec 18 23:44:58 2021
+++ src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_cs.c	Sun Dec 19 10:59:01 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: amdgpu_cs.c,v 1.5 2021/12/18 23:44:58 riastradh Exp $	*/
+/*	$NetBSD: amdgpu_cs.c,v 1.6 2021/12/19 10:59:01 riastradh Exp $	*/
 
 /*
  * Copyright 2008 Jerome Glisse.
@@ -28,7 +28,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: amdgpu_cs.c,v 1.5 2021/12/18 23:44:58 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: amdgpu_cs.c,v 1.6 2021/12/19 10:59:01 riastradh Exp $");
 
 #include <linux/file.h>
 #include <linux/pagemap.h>
@@ -482,8 +482,13 @@ static int amdgpu_cs_list_validate(struc
 		struct mm_struct *usermm;
 
 		usermm = amdgpu_ttm_tt_get_usermm(bo->tbo.ttm);
+#ifdef __NetBSD__		/* XXX amdgpu userptr */
+		if (usermm)
+			return -EPERM;
+#else
 		if (usermm && usermm != current->mm)
 			return -EPERM;
+#endif
 
 		if (amdgpu_ttm_tt_is_userptr(bo->tbo.ttm) &&
 		    lobj->user_invalidated && lobj->user_pages) {
@@ -1007,7 +1012,7 @@ static int amdgpu_syncobj_lookup_and_add
 
 	r = drm_syncobj_find_fence(p->filp, handle, point, flags, &fence);
 	if (r) {
-		DRM_ERROR("syncobj %u failed to find fence @ %llu (%d)!\n",
+		DRM_ERROR("syncobj %u failed to find fence @ %"PRIu64" (%d)!\n",
 			  handle, point, r);
 		return r;
 	}
@@ -1459,6 +1464,27 @@ int amdgpu_cs_fence_to_handle_ioctl(stru
 		return r;
 
 	case AMDGPU_FENCE_TO_HANDLE_GET_SYNC_FILE_FD:
+#ifdef __NetBSD__
+	   {
+		struct file *fp = NULL;
+
+		/* XXX errno NetBSD->Linux */
+		r = -fd_allocfile(&fp, &fd);
+		if (r)
+			goto out;
+		sync_file = sync_file_create(fence, fp);
+		if (sync_file == NULL)
+			goto out;
+		fd_affix(curproc, fp, fd);
+		fp = NULL;	/* consumed by sync_file */
+
+out:		if (fp) {
+			fd_abort(curproc, fp, fd);
+			fd = -1;
+		}
+		dma_fence_put(fence);
+	   }
+#else
 		fd = get_unused_fd_flags(O_CLOEXEC);
 		if (fd < 0) {
 			dma_fence_put(fence);
@@ -1473,6 +1499,7 @@ int amdgpu_cs_fence_to_handle_ioctl(stru
 		}
 
 		fd_install(fd, sync_file->file);
+#endif
 		info->out.handle = fd;
 		return 0;
 

Index: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_atombios.c
diff -u src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_atombios.c:1.6 src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_atombios.c:1.7
--- src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_atombios.c:1.6	Sat Dec 18 23:44:58 2021
+++ src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_atombios.c	Sun Dec 19 10:59:01 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: amdgpu_atombios.c,v 1.6 2021/12/18 23:44:58 riastradh Exp $	*/
+/*	$NetBSD: amdgpu_atombios.c,v 1.7 2021/12/19 10:59:01 riastradh Exp $	*/
 
 /*
  * Copyright 2007-8 Advanced Micro Devices, Inc.
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: amdgpu_atombios.c,v 1.6 2021/12/18 23:44:58 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: amdgpu_atombios.c,v 1.7 2021/12/19 10:59:01 riastradh Exp $");
 
 #include <drm/amdgpu_drm.h>
 #include "amdgpu.h"
@@ -41,6 +41,8 @@ __KERNEL_RCSID(0, "$NetBSD: amdgpu_atomb
 #include "atombios_encoders.h"
 #include "bif/bif_4_1_d.h"
 
+#include <linux/nbsd-namespace.h>
+
 static void amdgpu_atombios_lookup_i2c_gpio_quirks(struct amdgpu_device *adev,
 					  ATOM_GPIO_I2C_ASSIGMENT *gpio,
 					  u8 index)
@@ -1944,6 +1946,7 @@ static uint32_t cail_ioreg_read(struct c
 	return r;
 }
 
+#ifdef CONFIG_SYSFS
 static ssize_t amdgpu_atombios_get_vbios_version(struct device *dev,
 						 struct device_attribute *attr,
 						 char *buf)
@@ -1957,6 +1960,7 @@ static ssize_t amdgpu_atombios_get_vbios
 
 static DEVICE_ATTR(vbios_version, 0444, amdgpu_atombios_get_vbios_version,
 		   NULL);
+#endif
 
 /**
  * amdgpu_atombios_fini - free the driver info and callbacks for atombios
@@ -1978,7 +1982,9 @@ void amdgpu_atombios_fini(struct amdgpu_
 	adev->mode_info.atom_context = NULL;
 	kfree(adev->mode_info.atom_card_info);
 	adev->mode_info.atom_card_info = NULL;
+#ifdef CONFIG_SYSFS
 	device_remove_file(adev->dev, &dev_attr_vbios_version);
+#endif
 }
 
 /**
@@ -2043,11 +2049,13 @@ int amdgpu_atombios_init(struct amdgpu_d
 		amdgpu_atombios_allocate_fb_scratch(adev);
 	}
 
+#ifdef CONFIG_SYSFS
 	ret = device_create_file(adev->dev, &dev_attr_vbios_version);
 	if (ret) {
 		DRM_ERROR("Failed to create device file for VBIOS version\n");
 		return ret;
 	}
+#endif
 
 	return 0;
 }
Index: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_cgs.c
diff -u src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_cgs.c:1.6 src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_cgs.c:1.7
--- src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_cgs.c:1.6	Sat Dec 18 23:44:58 2021
+++ src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_cgs.c	Sun Dec 19 10:59:01 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: amdgpu_cgs.c,v 1.6 2021/12/18 23:44:58 riastradh Exp $	*/
+/*	$NetBSD: amdgpu_cgs.c,v 1.7 2021/12/19 10:59:01 riastradh Exp $	*/
 
 /*
  * Copyright 2015 Advanced Micro Devices, Inc.
@@ -24,7 +24,7 @@
  *
  */
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: amdgpu_cgs.c,v 1.6 2021/12/18 23:44:58 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: amdgpu_cgs.c,v 1.7 2021/12/19 10:59:01 riastradh Exp $");
 
 #include <linux/list.h>
 #include <linux/pci.h>
@@ -36,6 +36,8 @@ __KERNEL_RCSID(0, "$NetBSD: amdgpu_cgs.c
 #include "atom.h"
 #include "amdgpu_ucode.h"
 
+#include <linux/nbsd-namespace.h>
+
 struct amdgpu_cgs_device {
 	struct cgs_device base;
 	struct amdgpu_device *adev;

Index: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_bios.c
diff -u src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_bios.c:1.4 src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_bios.c:1.5
--- src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_bios.c:1.4	Sat Dec 18 23:44:58 2021
+++ src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_bios.c	Sun Dec 19 10:59:01 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: amdgpu_bios.c,v 1.4 2021/12/18 23:44:58 riastradh Exp $	*/
+/*	$NetBSD: amdgpu_bios.c,v 1.5 2021/12/19 10:59:01 riastradh Exp $	*/
 
 /*
  * Copyright 2008 Advanced Micro Devices, Inc.
@@ -29,7 +29,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: amdgpu_bios.c,v 1.4 2021/12/18 23:44:58 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: amdgpu_bios.c,v 1.5 2021/12/19 10:59:01 riastradh Exp $");
 
 #include "amdgpu.h"
 #include "atom.h"
@@ -37,6 +37,9 @@ __KERNEL_RCSID(0, "$NetBSD: amdgpu_bios.
 #include <linux/pci.h>
 #include <linux/slab.h>
 #include <linux/acpi.h>
+
+#include <linux/nbsd-namespace.h>
+
 /*
  * BIOS.
  */
Index: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_cik.c
diff -u src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_cik.c:1.4 src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_cik.c:1.5
--- src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_cik.c:1.4	Sat Dec 18 23:44:58 2021
+++ src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_cik.c	Sun Dec 19 10:59:01 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: amdgpu_cik.c,v 1.4 2021/12/18 23:44:58 riastradh Exp $	*/
+/*	$NetBSD: amdgpu_cik.c,v 1.5 2021/12/19 10:59:01 riastradh Exp $	*/
 
 /*
  * Copyright 2012 Advanced Micro Devices, Inc.
@@ -24,7 +24,7 @@
  * Authors: Alex Deucher
  */
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: amdgpu_cik.c,v 1.4 2021/12/18 23:44:58 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: amdgpu_cik.c,v 1.5 2021/12/19 10:59:01 riastradh Exp $");
 
 #include <linux/firmware.h>
 #include <linux/slab.h>
@@ -75,6 +75,8 @@ __KERNEL_RCSID(0, "$NetBSD: amdgpu_cik.c
 #include "amdgpu_amdkfd.h"
 #include "dce_virtual.h"
 
+#include <linux/nbsd-namespace.h>
+
 /*
  * Indirect registers accessor
  */

Index: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_bo_list.c
diff -u src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_bo_list.c:1.7 src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_bo_list.c:1.8
--- src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_bo_list.c:1.7	Sat Dec 18 23:44:58 2021
+++ src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_bo_list.c	Sun Dec 19 10:59:01 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: amdgpu_bo_list.c,v 1.7 2021/12/18 23:44:58 riastradh Exp $	*/
+/*	$NetBSD: amdgpu_bo_list.c,v 1.8 2021/12/19 10:59:01 riastradh Exp $	*/
 
 /*
  * Copyright 2015 Advanced Micro Devices, Inc.
@@ -31,7 +31,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: amdgpu_bo_list.c,v 1.7 2021/12/18 23:44:58 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: amdgpu_bo_list.c,v 1.8 2021/12/19 10:59:01 riastradh Exp $");
 
 #include <linux/uaccess.h>
 
@@ -113,12 +113,18 @@ int amdgpu_bo_list_create(struct amdgpu_
 
 		usermm = amdgpu_ttm_tt_get_usermm(bo->tbo.ttm);
 		if (usermm) {
+#ifdef __NetBSD__		/* XXX amdgpu userptr */
+			amdgpu_bo_unref(&bo);
+			r = -EPERM;
+			goto error_free;
+#else
 			if (usermm != current->mm) {
 				amdgpu_bo_unref(&bo);
 				r = -EPERM;
 				goto error_free;
 			}
 			entry = &array[--first_userptr];
+#endif
 		} else {
 			entry = &array[last_entry++];
 		}

Index: src/sys/external/bsd/drm2/dist/drm/amd/display/amdgpu_dm/amdgpu_dm_pp_smu.c
diff -u src/sys/external/bsd/drm2/dist/drm/amd/display/amdgpu_dm/amdgpu_dm_pp_smu.c:1.2 src/sys/external/bsd/drm2/dist/drm/amd/display/amdgpu_dm/amdgpu_dm_pp_smu.c:1.3
--- src/sys/external/bsd/drm2/dist/drm/amd/display/amdgpu_dm/amdgpu_dm_pp_smu.c:1.2	Sat Dec 18 23:45:00 2021
+++ src/sys/external/bsd/drm2/dist/drm/amd/display/amdgpu_dm/amdgpu_dm_pp_smu.c	Sun Dec 19 10:59:01 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: amdgpu_dm_pp_smu.c,v 1.2 2021/12/18 23:45:00 riastradh Exp $	*/
+/*	$NetBSD: amdgpu_dm_pp_smu.c,v 1.3 2021/12/19 10:59:01 riastradh Exp $	*/
 
 /*
  * Copyright 2018 Advanced Micro Devices, Inc.
@@ -24,7 +24,7 @@
  * Authors: AMD
  */
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: amdgpu_dm_pp_smu.c,v 1.2 2021/12/18 23:45:00 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: amdgpu_dm_pp_smu.c,v 1.3 2021/12/19 10:59:01 riastradh Exp $");
 
 #include <linux/string.h>
 #include <linux/acpi.h>
@@ -811,7 +811,7 @@ enum pp_smu_status pp_nv_set_hard_min_uc
 }
 
 enum pp_smu_status pp_nv_set_pstate_handshake_support(
-	struct pp_smu *pp, BOOLEAN pstate_handshake_supported)
+	struct pp_smu *pp, bool pstate_handshake_supported)
 {
 	const struct dc_context *ctx = pp->dm;
 	struct amdgpu_device *adev = ctx->driver_context;

Index: src/sys/external/bsd/drm2/dist/drm/amd/display/dc/amdgpu_dc_helper.c
diff -u src/sys/external/bsd/drm2/dist/drm/amd/display/dc/amdgpu_dc_helper.c:1.3 src/sys/external/bsd/drm2/dist/drm/amd/display/dc/amdgpu_dc_helper.c:1.4
--- src/sys/external/bsd/drm2/dist/drm/amd/display/dc/amdgpu_dc_helper.c:1.3	Sun Dec 19 10:56:50 2021
+++ src/sys/external/bsd/drm2/dist/drm/amd/display/dc/amdgpu_dc_helper.c	Sun Dec 19 10:59:01 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: amdgpu_dc_helper.c,v 1.3 2021/12/19 10:56:50 riastradh Exp $	*/
+/*	$NetBSD: amdgpu_dc_helper.c,v 1.4 2021/12/19 10:59:01 riastradh Exp $	*/
 
 /*
  * Copyright 2017 Advanced Micro Devices, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: amdgpu_dc_helper.c,v 1.3 2021/12/19 10:56:50 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: amdgpu_dc_helper.c,v 1.4 2021/12/19 10:59:01 riastradh Exp $");
 
 #include <linux/delay.h>
 
@@ -39,6 +39,7 @@ __KERNEL_RCSID(0, "$NetBSD: amdgpu_dc_he
 
 #include "dc.h"
 #include "dc_dmub_srv.h"
+#include "inc/reg_helper.h"
 
 static inline void submit_dmub_read_modify_write(
 	struct dc_reg_helper_state *offload,

Index: src/sys/external/bsd/drm2/dist/drm/amd/display/dc/dm_pp_smu.h
diff -u src/sys/external/bsd/drm2/dist/drm/amd/display/dc/dm_pp_smu.h:1.2 src/sys/external/bsd/drm2/dist/drm/amd/display/dc/dm_pp_smu.h:1.3
--- src/sys/external/bsd/drm2/dist/drm/amd/display/dc/dm_pp_smu.h:1.2	Sat Dec 18 23:45:00 2021
+++ src/sys/external/bsd/drm2/dist/drm/amd/display/dc/dm_pp_smu.h	Sun Dec 19 10:59:01 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: dm_pp_smu.h,v 1.2 2021/12/18 23:45:00 riastradh Exp $	*/
+/*	$NetBSD: dm_pp_smu.h,v 1.3 2021/12/19 10:59:01 riastradh Exp $	*/
 
 /*
  * Copyright 2017 Advanced Micro Devices, Inc.
@@ -32,8 +32,6 @@
  * interface to PPLIB/SMU to setup clocks and pstate requirements on SoC
  */
 
-typedef bool BOOLEAN;
-
 enum pp_smu_ver {
 	/*
 	 * PP_SMU_INTERFACE_X should be interpreted as the interface defined
@@ -242,7 +240,7 @@ struct pp_smu_funcs_nv {
 	 * DC hardware
 	 */
 	enum pp_smu_status (*set_pstate_handshake_support)(struct pp_smu *pp,
-			BOOLEAN pstate_handshake_supported);
+			bool pstate_handshake_supported);
 };
 
 #define PP_SMU_NUM_SOCCLK_DPM_LEVELS  8

Index: src/sys/external/bsd/drm2/dist/drm/amd/display/dc/basics/amdgpu_conversion.c
diff -u src/sys/external/bsd/drm2/dist/drm/amd/display/dc/basics/amdgpu_conversion.c:1.2 src/sys/external/bsd/drm2/dist/drm/amd/display/dc/basics/amdgpu_conversion.c:1.3
--- src/sys/external/bsd/drm2/dist/drm/amd/display/dc/basics/amdgpu_conversion.c:1.2	Sat Dec 18 23:45:00 2021
+++ src/sys/external/bsd/drm2/dist/drm/amd/display/dc/basics/amdgpu_conversion.c	Sun Dec 19 10:59:01 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: amdgpu_conversion.c,v 1.2 2021/12/18 23:45:00 riastradh Exp $	*/
+/*	$NetBSD: amdgpu_conversion.c,v 1.3 2021/12/19 10:59:01 riastradh Exp $	*/
 
 /*
  * Copyright 2012-15 Advanced Micro Devices, Inc.
@@ -26,7 +26,9 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: amdgpu_conversion.c,v 1.2 2021/12/18 23:45:00 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: amdgpu_conversion.c,v 1.3 2021/12/19 10:59:01 riastradh Exp $");
+
+#include "conversion.h"
 
 #include "dm_services.h"
 

Index: src/sys/external/bsd/drm2/dist/drm/amd/display/dc/bios/amdgpu_bios_parser.c
diff -u src/sys/external/bsd/drm2/dist/drm/amd/display/dc/bios/amdgpu_bios_parser.c:1.2 src/sys/external/bsd/drm2/dist/drm/amd/display/dc/bios/amdgpu_bios_parser.c:1.3
--- src/sys/external/bsd/drm2/dist/drm/amd/display/dc/bios/amdgpu_bios_parser.c:1.2	Sat Dec 18 23:45:00 2021
+++ src/sys/external/bsd/drm2/dist/drm/amd/display/dc/bios/amdgpu_bios_parser.c	Sun Dec 19 10:59:01 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: amdgpu_bios_parser.c,v 1.2 2021/12/18 23:45:00 riastradh Exp $	*/
+/*	$NetBSD: amdgpu_bios_parser.c,v 1.3 2021/12/19 10:59:01 riastradh Exp $	*/
 
 /*
  * Copyright 2012-15 Advanced Micro Devices, Inc.
@@ -26,7 +26,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: amdgpu_bios_parser.c,v 1.2 2021/12/18 23:45:00 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: amdgpu_bios_parser.c,v 1.3 2021/12/19 10:59:01 riastradh Exp $");
 
 #include <linux/slab.h>
 
@@ -2589,6 +2589,7 @@ static struct integrated_info *bios_pars
 	return NULL;
 }
 
+static
 enum bp_result update_slot_layout_info(
 	struct dc_bios *dcb,
 	unsigned int i,
@@ -2693,6 +2694,7 @@ enum bp_result update_slot_layout_info(
 }
 
 
+static
 enum bp_result get_bracket_layout_record(
 	struct dc_bios *dcb,
 	unsigned int bracket_layout_id,
Index: src/sys/external/bsd/drm2/dist/drm/amd/display/dc/bios/amdgpu_command_table.c
diff -u src/sys/external/bsd/drm2/dist/drm/amd/display/dc/bios/amdgpu_command_table.c:1.2 src/sys/external/bsd/drm2/dist/drm/amd/display/dc/bios/amdgpu_command_table.c:1.3
--- src/sys/external/bsd/drm2/dist/drm/amd/display/dc/bios/amdgpu_command_table.c:1.2	Sat Dec 18 23:45:00 2021
+++ src/sys/external/bsd/drm2/dist/drm/amd/display/dc/bios/amdgpu_command_table.c	Sun Dec 19 10:59:01 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: amdgpu_command_table.c,v 1.2 2021/12/18 23:45:00 riastradh Exp $	*/
+/*	$NetBSD: amdgpu_command_table.c,v 1.3 2021/12/19 10:59:01 riastradh Exp $	*/
 
 /*
  * Copyright 2012-15 Advanced Micro Devices, Inc.
@@ -26,7 +26,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: amdgpu_command_table.c,v 1.2 2021/12/18 23:45:00 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: amdgpu_command_table.c,v 1.3 2021/12/19 10:59:01 riastradh Exp $");
 
 #include "dm_services.h"
 #include "amdgpu.h"
@@ -1461,7 +1461,7 @@ static enum bp_result adjust_display_pll
 	struct bp_adjust_pixel_clock_parameters *bp_params)
 {
 	enum bp_result result = BP_RESULT_FAILURE;
-	ADJUST_DISPLAY_PLL_PS_ALLOCATION params = { 0 };
+	ADJUST_DISPLAY_PLL_PS_ALLOCATION params __unused = { 0 };
 
 	/* We need to convert from KHz units into 10KHz units and then convert
 	 * output pixel clock back 10KHz-->KHz */

Index: src/sys/external/bsd/drm2/dist/drm/amd/display/dc/core/amdgpu_dc.c
diff -u src/sys/external/bsd/drm2/dist/drm/amd/display/dc/core/amdgpu_dc.c:1.2 src/sys/external/bsd/drm2/dist/drm/amd/display/dc/core/amdgpu_dc.c:1.3
--- src/sys/external/bsd/drm2/dist/drm/amd/display/dc/core/amdgpu_dc.c:1.2	Sat Dec 18 23:45:02 2021
+++ src/sys/external/bsd/drm2/dist/drm/amd/display/dc/core/amdgpu_dc.c	Sun Dec 19 10:59:01 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: amdgpu_dc.c,v 1.2 2021/12/18 23:45:02 riastradh Exp $	*/
+/*	$NetBSD: amdgpu_dc.c,v 1.3 2021/12/19 10:59:01 riastradh Exp $	*/
 
 /*
  * Copyright 2015 Advanced Micro Devices, Inc.
@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: amdgpu_dc.c,v 1.2 2021/12/18 23:45:02 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: amdgpu_dc.c,v 1.3 2021/12/19 10:59:01 riastradh Exp $");
 
 #include <linux/slab.h>
 #include <linux/mm.h>
@@ -2113,8 +2113,10 @@ static void commit_planes_do_stream_upda
 				if (*stream_update->dpms_off) {
 					core_link_disable_stream(pipe_ctx);
 					/* for dpms, keep acquired resources*/
+#ifndef __NetBSD__			/* XXX amdgpu audio */
 					if (pipe_ctx->stream_res.audio && !dc->debug.az_endpoint_mute_only)
 						pipe_ctx->stream_res.audio->funcs->az_disable(pipe_ctx->stream_res.audio);
+#endif
 
 					dc->hwss.optimize_bandwidth(dc, dc->current_state);
 				} else {
Index: src/sys/external/bsd/drm2/dist/drm/amd/display/dc/core/amdgpu_dc_debug.c
diff -u src/sys/external/bsd/drm2/dist/drm/amd/display/dc/core/amdgpu_dc_debug.c:1.2 src/sys/external/bsd/drm2/dist/drm/amd/display/dc/core/amdgpu_dc_debug.c:1.3
--- src/sys/external/bsd/drm2/dist/drm/amd/display/dc/core/amdgpu_dc_debug.c:1.2	Sat Dec 18 23:45:02 2021
+++ src/sys/external/bsd/drm2/dist/drm/amd/display/dc/core/amdgpu_dc_debug.c	Sun Dec 19 10:59:01 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: amdgpu_dc_debug.c,v 1.2 2021/12/18 23:45:02 riastradh Exp $	*/
+/*	$NetBSD: amdgpu_dc_debug.c,v 1.3 2021/12/19 10:59:01 riastradh Exp $	*/
 
 /*
  * Copyright 2017 Advanced Micro Devices, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: amdgpu_dc_debug.c,v 1.2 2021/12/18 23:45:02 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: amdgpu_dc_debug.c,v 1.3 2021/12/19 10:59:01 riastradh Exp $");
 
 #include "dm_services.h"
 
@@ -76,8 +76,8 @@ void pre_surface_trace(
 				"plane_state->visible = %d;\n"
 				"plane_state->flip_immediate = %d;\n"
 				"plane_state->address.type = %d;\n"
-				"plane_state->address.grph.addr.quad_part = 0x%llX;\n"
-				"plane_state->address.grph.meta_addr.quad_part = 0x%llX;\n"
+				"plane_state->address.grph.addr.quad_part = 0x%"PRIX64";\n"
+				"plane_state->address.grph.meta_addr.quad_part = 0x%"PRIX64";\n"
 				"plane_state->scaling_quality.h_taps = %d;\n"
 				"plane_state->scaling_quality.v_taps = %d;\n"
 				"plane_state->scaling_quality.h_taps_c = %d;\n"
@@ -193,8 +193,8 @@ void update_surface_trace(
 		SURFACE_TRACE("Update %d\n", i);
 		if (update->flip_addr) {
 			SURFACE_TRACE("flip_addr->address.type = %d;\n"
-					"flip_addr->address.grph.addr.quad_part = 0x%llX;\n"
-					"flip_addr->address.grph.meta_addr.quad_part = 0x%llX;\n"
+					"flip_addr->address.grph.addr.quad_part = 0x%"PRIX64";\n"
+					"flip_addr->address.grph.meta_addr.quad_part = 0x%"PRIX64";\n"
 					"flip_addr->flip_immediate = %d;\n",
 					update->flip_addr->address.type,
 					update->flip_addr->address.grph.addr.quad_part,
Index: src/sys/external/bsd/drm2/dist/drm/amd/display/dc/core/amdgpu_dc_hw_sequencer.c
diff -u src/sys/external/bsd/drm2/dist/drm/amd/display/dc/core/amdgpu_dc_hw_sequencer.c:1.2 src/sys/external/bsd/drm2/dist/drm/amd/display/dc/core/amdgpu_dc_hw_sequencer.c:1.3
--- src/sys/external/bsd/drm2/dist/drm/amd/display/dc/core/amdgpu_dc_hw_sequencer.c:1.2	Sat Dec 18 23:45:02 2021
+++ src/sys/external/bsd/drm2/dist/drm/amd/display/dc/core/amdgpu_dc_hw_sequencer.c	Sun Dec 19 10:59:01 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: amdgpu_dc_hw_sequencer.c,v 1.2 2021/12/18 23:45:02 riastradh Exp $	*/
+/*	$NetBSD: amdgpu_dc_hw_sequencer.c,v 1.3 2021/12/19 10:59:01 riastradh Exp $	*/
 
 /*
  * Copyright 2015 Advanced Micro Devices, Inc.
@@ -26,7 +26,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: amdgpu_dc_hw_sequencer.c,v 1.2 2021/12/18 23:45:02 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: amdgpu_dc_hw_sequencer.c,v 1.3 2021/12/19 10:59:01 riastradh Exp $");
 
 #include <linux/delay.h>
 
@@ -182,6 +182,7 @@ static bool is_ycbcr709_limited_type(
 		ret = true;
 	return ret;
 }
+static
 enum dc_color_space_type get_color_space_type(enum dc_color_space color_space)
 {
 	enum dc_color_space_type type = COLOR_SPACE_RGB_TYPE;
Index: src/sys/external/bsd/drm2/dist/drm/amd/display/dc/core/amdgpu_dc_link.c
diff -u src/sys/external/bsd/drm2/dist/drm/amd/display/dc/core/amdgpu_dc_link.c:1.2 src/sys/external/bsd/drm2/dist/drm/amd/display/dc/core/amdgpu_dc_link.c:1.3
--- src/sys/external/bsd/drm2/dist/drm/amd/display/dc/core/amdgpu_dc_link.c:1.2	Sat Dec 18 23:45:02 2021
+++ src/sys/external/bsd/drm2/dist/drm/amd/display/dc/core/amdgpu_dc_link.c	Sun Dec 19 10:59:01 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: amdgpu_dc_link.c,v 1.2 2021/12/18 23:45:02 riastradh Exp $	*/
+/*	$NetBSD: amdgpu_dc_link.c,v 1.3 2021/12/19 10:59:01 riastradh Exp $	*/
 
 /*
  * Copyright 2012-15 Advanced Micro Devices, Inc.
@@ -26,7 +26,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: amdgpu_dc_link.c,v 1.2 2021/12/18 23:45:02 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: amdgpu_dc_link.c,v 1.3 2021/12/19 10:59:01 riastradh Exp $");
 
 #include <linux/slab.h>
 
@@ -727,7 +727,7 @@ static bool wait_for_alt_mode(struct dc_
 			finish_timestamp = dm_get_timestamp(link->ctx);
 			time_taken_in_ns = dm_get_elapse_time_in_ns(
 				link->ctx, finish_timestamp, enter_timestamp);
-			DC_LOG_WARNING("Alt mode entered finished after %llu ms\n",
+			DC_LOG_WARNING("Alt mode entered finished after %"PRIu64" ms\n",
 				       div_u64(time_taken_in_ns, 1000000));
 			return true;
 		}
@@ -736,7 +736,7 @@ static bool wait_for_alt_mode(struct dc_
 	finish_timestamp = dm_get_timestamp(link->ctx);
 	time_taken_in_ns = dm_get_elapse_time_in_ns(link->ctx, finish_timestamp,
 						    enter_timestamp);
-	DC_LOG_WARNING("Alt mode has timed out after %llu ms\n",
+	DC_LOG_WARNING("Alt mode has timed out after %"PRIu64" ms\n",
 			div_u64(time_taken_in_ns, 1000000));
 	return false;
 }
@@ -2755,7 +2755,7 @@ enum dc_status dc_link_allocate_mst_payl
 		"stream[%d].vcp_id: %d      "
 		"stream[%d].slot_count: %d\n",
 		i,
-		(void *) link->mst_stream_alloc_table.stream_allocations[i].stream_enc,
+		(const void *) link->mst_stream_alloc_table.stream_allocations[i].stream_enc,
 		i,
 		link->mst_stream_alloc_table.stream_allocations[i].vcp_id,
 		i,
@@ -2847,7 +2847,7 @@ static enum dc_status deallocate_mst_pay
 		"stream[%d].vcp_id: %d      "
 		"stream[%d].slot_count: %d\n",
 		i,
-		(void *) link->mst_stream_alloc_table.stream_allocations[i].stream_enc,
+		(const void *) link->mst_stream_alloc_table.stream_allocations[i].stream_enc,
 		i,
 		link->mst_stream_alloc_table.stream_allocations[i].vcp_id,
 		i,
Index: src/sys/external/bsd/drm2/dist/drm/amd/display/dc/core/amdgpu_dc_link_dp.c
diff -u src/sys/external/bsd/drm2/dist/drm/amd/display/dc/core/amdgpu_dc_link_dp.c:1.2 src/sys/external/bsd/drm2/dist/drm/amd/display/dc/core/amdgpu_dc_link_dp.c:1.3
--- src/sys/external/bsd/drm2/dist/drm/amd/display/dc/core/amdgpu_dc_link_dp.c:1.2	Sat Dec 18 23:45:02 2021
+++ src/sys/external/bsd/drm2/dist/drm/amd/display/dc/core/amdgpu_dc_link_dp.c	Sun Dec 19 10:59:01 2021
@@ -1,8 +1,8 @@
-/*	$NetBSD: amdgpu_dc_link_dp.c,v 1.2 2021/12/18 23:45:02 riastradh Exp $	*/
+/*	$NetBSD: amdgpu_dc_link_dp.c,v 1.3 2021/12/19 10:59:01 riastradh Exp $	*/
 
 /* Copyright 2015 Advanced Micro Devices, Inc. */
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: amdgpu_dc_link_dp.c,v 1.2 2021/12/18 23:45:02 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: amdgpu_dc_link_dp.c,v 1.3 2021/12/19 10:59:01 riastradh Exp $");
 
 #include "dm_services.h"
 #include "dc.h"
@@ -1291,9 +1291,9 @@ static void print_status_message(
 	const struct link_training_settings *lt_settings,
 	enum link_training_result status)
 {
-	char *link_rate = "Unknown";
-	char *lt_result = "Unknown";
-	char *lt_spread = "Disabled";
+	const char *link_rate = "Unknown";
+	const char *lt_result = "Unknown";
+	const char *lt_spread = "Disabled";
 
 	switch (lt_settings->link_settings.link_rate) {
 	case LINK_RATE_LOW:
@@ -3523,6 +3523,7 @@ bool detect_dp_sink_caps(struct dc_link 
 	/* TODO save sink caps in link->sink */
 }
 
+static
 enum dc_link_rate linkRateInKHzToLinkRateMultiplier(uint32_t link_rate_in_khz)
 {
 	enum dc_link_rate link_rate;
@@ -3818,7 +3819,7 @@ bool dc_link_dp_set_test_pattern(
 		/* Set CRTC Test Pattern */
 		set_crtc_test_pattern(link, pipe_ctx, test_pattern, test_pattern_color_space);
 		dp_set_hw_test_pattern(link, test_pattern,
-				(uint8_t *)p_custom_pattern,
+				(const uint8_t *)p_custom_pattern,
 				(uint32_t)cust_pattern_size);
 
 		/* Unblank Stream */
@@ -3854,7 +3855,7 @@ bool dc_link_dp_set_test_pattern(
 		}
 
 		dp_set_hw_test_pattern(link, test_pattern,
-				(uint8_t *)p_custom_pattern,
+				(const uint8_t *)p_custom_pattern,
 				(uint32_t)cust_pattern_size);
 
 		if (test_pattern != DP_TEST_PATTERN_VIDEO_MODE) {
Index: src/sys/external/bsd/drm2/dist/drm/amd/display/dc/core/amdgpu_dc_link_hwss.c
diff -u src/sys/external/bsd/drm2/dist/drm/amd/display/dc/core/amdgpu_dc_link_hwss.c:1.2 src/sys/external/bsd/drm2/dist/drm/amd/display/dc/core/amdgpu_dc_link_hwss.c:1.3
--- src/sys/external/bsd/drm2/dist/drm/amd/display/dc/core/amdgpu_dc_link_hwss.c:1.2	Sat Dec 18 23:45:02 2021
+++ src/sys/external/bsd/drm2/dist/drm/amd/display/dc/core/amdgpu_dc_link_hwss.c	Sun Dec 19 10:59:01 2021
@@ -1,10 +1,10 @@
-/*	$NetBSD: amdgpu_dc_link_hwss.c,v 1.2 2021/12/18 23:45:02 riastradh Exp $	*/
+/*	$NetBSD: amdgpu_dc_link_hwss.c,v 1.3 2021/12/19 10:59:01 riastradh Exp $	*/
 
 /* Copyright 2015 Advanced Micro Devices, Inc. */
 
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: amdgpu_dc_link_hwss.c,v 1.2 2021/12/18 23:45:02 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: amdgpu_dc_link_hwss.c,v 1.3 2021/12/19 10:59:01 riastradh Exp $");
 
 #include "dm_services.h"
 #include "dc.h"
@@ -294,7 +294,7 @@ void dp_set_hw_lane_settings(
 void dp_set_hw_test_pattern(
 	struct dc_link *link,
 	enum dp_test_pattern test_pattern,
-	uint8_t *custom_pattern,
+	const uint8_t *custom_pattern,
 	uint32_t custom_pattern_size)
 {
 	struct encoder_set_dp_phy_pattern_param pattern_param = {0};
@@ -334,8 +334,10 @@ void dp_retrain_link_dp_test(struct dc_l
 			dp_receiver_power_ctrl(link, false);
 
 			link->dc->hwss.disable_stream(&pipes[i]);
+#ifndef __NetBSD__		/* XXX amdgpu audio */
 			if ((&pipes[i])->stream_res.audio && !link->dc->debug.az_endpoint_mute_only)
 				(&pipes[i])->stream_res.audio->funcs->az_disable((&pipes[i])->stream_res.audio);
+#endif
 
 			link->link_enc->funcs->disable_output(
 					link->link_enc,
@@ -357,6 +359,7 @@ void dp_retrain_link_dp_test(struct dc_l
 			link->dc->hwss.unblank_stream(&pipes[i],
 					link_setting);
 
+#ifndef __NetBSD__		/* XXX amdgpu audio */
 			if (pipes[i].stream_res.audio) {
 				/* notify audio driver for
 				 * audio modes of monitor */
@@ -370,6 +373,7 @@ void dp_retrain_link_dp_test(struct dc_l
 				audio_mute_control(
 					pipes[i].stream_res.stream_enc, false);
 			}
+#endif
 		}
 	}
 }
Index: src/sys/external/bsd/drm2/dist/drm/amd/display/dc/core/amdgpu_dc_resource.c
diff -u src/sys/external/bsd/drm2/dist/drm/amd/display/dc/core/amdgpu_dc_resource.c:1.2 src/sys/external/bsd/drm2/dist/drm/amd/display/dc/core/amdgpu_dc_resource.c:1.3
--- src/sys/external/bsd/drm2/dist/drm/amd/display/dc/core/amdgpu_dc_resource.c:1.2	Sat Dec 18 23:45:02 2021
+++ src/sys/external/bsd/drm2/dist/drm/amd/display/dc/core/amdgpu_dc_resource.c	Sun Dec 19 10:59:01 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: amdgpu_dc_resource.c,v 1.2 2021/12/18 23:45:02 riastradh Exp $	*/
+/*	$NetBSD: amdgpu_dc_resource.c,v 1.3 2021/12/19 10:59:01 riastradh Exp $	*/
 
 /*
  * Copyright 2012-15 Advanced Micro Devices, Inc.
@@ -26,7 +26,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: amdgpu_dc_resource.c,v 1.2 2021/12/18 23:45:02 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: amdgpu_dc_resource.c,v 1.3 2021/12/19 10:59:01 riastradh Exp $");
 
 #include <linux/slab.h>
 
@@ -209,6 +209,7 @@ void dc_destroy_resource_pool(struct dc 
 	}
 }
 
+#ifndef __NetBSD__		/* XXX amdgpu audio */
 static void update_num_audio(
 	const struct resource_straps *straps,
 	unsigned int *num_audio,
@@ -235,6 +236,7 @@ static void update_num_audio(
 		DC_ERR("DC: unexpected audio fuse!\n");
 	}
 }
+#endif
 
 bool resource_construct(
 	unsigned int num_virtual_links,
@@ -252,6 +254,9 @@ bool resource_construct(
 		create_funcs->read_dce_straps(dc->ctx, &straps);
 
 	pool->audio_count = 0;
+#ifdef __NetBSD__		/* XXX amdgpu audio */
+	__USE(num_audio);
+#else
 	if (create_funcs->create_audio) {
 		/* find the total number of streams available via the
 		 * AZALIA_F0_CODEC_PIN_CONTROL_RESPONSE_CONFIGURATION_DEFAULT
@@ -276,6 +281,7 @@ bool resource_construct(
 			pool->audio_count++;
 		}
 	}
+#endif
 
 	pool->stream_enc_count = 0;
 	if (create_funcs->create_stream_encoder) {
@@ -966,6 +972,7 @@ static void calculate_inits_and_adj_vp(s
  * We also need to make sure pipe_ctx->plane_res.scl_data.h_active uses the
  * original h_border_left value in its calculation.
  */
+static
 int shift_border_left_to_dst(struct pipe_ctx *pipe_ctx)
 {
 	int store_h_border_left = pipe_ctx->stream->timing.h_border_left;
@@ -977,6 +984,7 @@ int shift_border_left_to_dst(struct pipe
 	return store_h_border_left;
 }
 
+static
 void restore_border_left_from_dst(struct pipe_ctx *pipe_ctx,
                                   int store_h_border_left)
 {
@@ -1662,6 +1670,7 @@ static int acquire_first_free_pipe(
 	return -1;
 }
 
+#ifndef __NetBSD__		/* XXX amdgpu audio */
 static struct audio *find_first_free_audio(
 		struct resource_context *res_ctx,
 		const struct resource_pool *pool,
@@ -1693,6 +1702,7 @@ static struct audio *find_first_free_aud
 	}
 	return 0;
 }
+#endif
 
 bool resource_is_stream_unchanged(
 	struct dc_state *old_context, struct dc_stream_state *stream)
@@ -2015,6 +2025,7 @@ enum dc_status resource_map_pool_resourc
 		pipe_ctx->stream_res.stream_enc,
 		true);
 
+#ifndef __NetBSD__		/* XXX amdgpu audio */
 	/* TODO: Add check if ASIC support and EDID audio */
 	if (!stream->converter_disable_audio &&
 	    dc_is_audio_capable_signal(pipe_ctx->stream->signal) &&
@@ -2031,6 +2042,7 @@ enum dc_status resource_map_pool_resourc
 			update_audio_usage(&context->res_ctx, pool,
 					   pipe_ctx->stream_res.audio, true);
 	}
+#endif
 
 	/* Add ABM to the resource if on EDP */
 	if (pipe_ctx->stream && dc_is_embedded_signal(pipe_ctx->stream->signal))
@@ -2040,8 +2052,12 @@ enum dc_status resource_map_pool_resourc
 		if (context->streams[i] == stream) {
 			context->stream_status[i].primary_otg_inst = pipe_ctx->stream_res.tg->inst;
 			context->stream_status[i].stream_enc_inst = pipe_ctx->stream_res.stream_enc->id;
+#ifdef __NetBSD__		/* XXX amdgpu audio */
+			context->stream_status[i].audio_inst = -1;
+#else
 			context->stream_status[i].audio_inst =
 				pipe_ctx->stream_res.audio ? pipe_ctx->stream_res.audio->inst : -1;
+#endif
 
 			return DC_OK;
 		}

Index: src/sys/external/bsd/drm2/dist/drm/amd/display/dc/dce/dce_audio.h
diff -u src/sys/external/bsd/drm2/dist/drm/amd/display/dc/dce/dce_audio.h:1.2 src/sys/external/bsd/drm2/dist/drm/amd/display/dc/dce/dce_audio.h:1.3
--- src/sys/external/bsd/drm2/dist/drm/amd/display/dc/dce/dce_audio.h:1.2	Sat Dec 18 23:45:02 2021
+++ src/sys/external/bsd/drm2/dist/drm/amd/display/dc/dce/dce_audio.h	Sun Dec 19 10:59:01 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: dce_audio.h,v 1.2 2021/12/18 23:45:02 riastradh Exp $	*/
+/*	$NetBSD: dce_audio.h,v 1.3 2021/12/19 10:59:01 riastradh Exp $	*/
 
 /*
  * Copyright 2012-15 Advanced Micro Devices, Inc.
@@ -123,6 +123,8 @@ struct dce_audio_mask {
 
 };
 
+#ifndef __NetBSD__		/* XXX amdgpu audio */
+
 struct dce_audio {
 	struct audio base;
 	const struct dce_audio_registers *regs;
@@ -154,4 +156,6 @@ void dce_aud_wall_dto_setup(struct audio
 	const struct audio_crtc_info *crtc_info,
 	const struct audio_pll_info *pll_info);
 
+#endif
+
 #endif   /*__DAL_AUDIO_DCE_110_H__*/

Index: src/sys/external/bsd/drm2/dist/drm/amd/display/dc/dce100/amdgpu_dce100_resource.c
diff -u src/sys/external/bsd/drm2/dist/drm/amd/display/dc/dce100/amdgpu_dce100_resource.c:1.2 src/sys/external/bsd/drm2/dist/drm/amd/display/dc/dce100/amdgpu_dce100_resource.c:1.3
--- src/sys/external/bsd/drm2/dist/drm/amd/display/dc/dce100/amdgpu_dce100_resource.c:1.2	Sat Dec 18 23:45:02 2021
+++ src/sys/external/bsd/drm2/dist/drm/amd/display/dc/dce100/amdgpu_dce100_resource.c	Sun Dec 19 10:59:01 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: amdgpu_dce100_resource.c,v 1.2 2021/12/18 23:45:02 riastradh Exp $	*/
+/*	$NetBSD: amdgpu_dce100_resource.c,v 1.3 2021/12/19 10:59:01 riastradh Exp $	*/
 
 /*
  * Copyright 2012-15 Advanced Micro Devices, Inc.
@@ -26,7 +26,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: amdgpu_dce100_resource.c,v 1.2 2021/12/18 23:45:02 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: amdgpu_dce100_resource.c,v 1.3 2021/12/19 10:59:01 riastradh Exp $");
 
 #include <linux/slab.h>
 
@@ -290,6 +290,7 @@ static const struct dce110_aux_registers
 		aux_engine_regs(5)
 };
 
+#ifndef __NetBSD__		/* XXX amdgpu audio */
 #define audio_regs(id)\
 [id] = {\
 	AUD_COMMON_REG_LIST(id)\
@@ -312,6 +313,7 @@ static const struct dce_audio_shift audi
 static const struct dce_audio_mask audio_mask = {
 		AUD_COMMON_MASK_SH_LIST(_MASK)
 };
+#endif
 
 #define clk_src_regs(id)\
 [id] = {\
@@ -449,8 +451,12 @@ static void read_dce_straps(
 static struct audio *create_audio(
 		struct dc_context *ctx, unsigned int inst)
 {
+#ifdef __NetBSD__		/* XXX amdgpu audio */
+	return NULL;
+#else
 	return dce_audio_create(ctx, inst,
 			&audio_regs[inst], &audio_shift, &audio_mask);
+#endif
 }
 
 static struct timing_generator *dce100_timing_generator_create(
@@ -610,6 +616,7 @@ static const struct encoder_feature_supp
 		.flags.bits.IS_TPS3_CAPABLE = true
 };
 
+static 
 struct link_encoder *dce100_link_encoder_create(
 	const struct encoder_init_data *enc_init_data)
 {
@@ -632,6 +639,7 @@ struct link_encoder *dce100_link_encoder
 	return &enc110->base;
 }
 
+static
 struct output_pixel_processor *dce100_opp_create(
 	struct dc_context *ctx,
 	uint32_t inst)
@@ -647,6 +655,7 @@ struct output_pixel_processor *dce100_op
 	return &opp->base;
 }
 
+static
 struct dce_aux *dce100_aux_engine_create(
 	struct dc_context *ctx,
 	uint32_t inst)
@@ -685,6 +694,7 @@ static const struct dce_i2c_mask i2c_mas
 		I2C_COMMON_MASK_SH_LIST_DCE_COMMON_BASE(_MASK)
 };
 
+static
 struct dce_i2c_hw *dce100_i2c_hw_create(
 	struct dc_context *ctx,
 	uint32_t inst)
@@ -700,6 +710,7 @@ struct dce_i2c_hw *dce100_i2c_hw_create(
 
 	return dce_i2c_hw;
 }
+static
 struct clock_source *dce100_clock_source_create(
 	struct dc_context *ctx,
 	struct dc_bios *bios,
@@ -724,6 +735,7 @@ struct clock_source *dce100_clock_source
 	return NULL;
 }
 
+static
 void dce100_clock_source_destroy(struct clock_source **clk_src)
 {
 	kfree(TO_DCE110_CLK_SRC(*clk_src));
@@ -781,10 +793,12 @@ static void dce100_resource_destruct(str
 	if (pool->base.dp_clock_source != NULL)
 		dce100_clock_source_destroy(&pool->base.dp_clock_source);
 
+#ifndef __NetBSD__		/* XXX amdgpu audio */
 	for (i = 0; i < pool->base.audio_count; i++)	{
 		if (pool->base.audios[i] != NULL)
 			dce_aud_destroy(&pool->base.audios[i]);
 	}
+#endif
 
 	if (pool->base.abm != NULL)
 				dce_abm_destroy(&pool->base.abm);
@@ -813,6 +827,7 @@ static enum dc_status build_mapped_resou
 	return DC_OK;
 }
 
+static
 bool dce100_validate_bandwidth(
 	struct dc  *dc,
 	struct dc_state *context,
@@ -858,6 +873,7 @@ static bool dce100_validate_surface_sets
 	return true;
 }
 
+static
 enum dc_status dce100_validate_global(
 		struct dc  *dc,
 		struct dc_state *context)
@@ -868,6 +884,7 @@ enum dc_status dce100_validate_global(
 	return DC_OK;
 }
 
+static
 enum dc_status dce100_add_stream_to_ctx(
 		struct dc *dc,
 		struct dc_state *new_ctx,
@@ -895,6 +912,7 @@ static void dce100_destroy_resource_pool
 	*pool = NULL;
 }
 
+static
 enum dc_status dce100_validate_plane(const struct dc_plane_state *plane_state, struct dc_caps *caps)
 {
 
@@ -904,6 +922,7 @@ enum dc_status dce100_validate_plane(con
 	return DC_FAIL_SURFACE_VALIDATE;
 }
 
+static
 struct stream_encoder *dce100_find_first_free_match_stream_enc_for_link(
 		struct resource_context *res_ctx,
 		const struct resource_pool *pool,
@@ -1132,6 +1151,7 @@ res_create_fail:
 	return false;
 }
 
+static __unused
 struct resource_pool *dce100_create_resource_pool(
 	uint8_t num_virtual_links,
 	struct dc  *dc)

Index: src/sys/external/bsd/drm2/dist/drm/amd/display/dc/dce110/amdgpu_dce110_compressor.c
diff -u src/sys/external/bsd/drm2/dist/drm/amd/display/dc/dce110/amdgpu_dce110_compressor.c:1.2 src/sys/external/bsd/drm2/dist/drm/amd/display/dc/dce110/amdgpu_dce110_compressor.c:1.3
--- src/sys/external/bsd/drm2/dist/drm/amd/display/dc/dce110/amdgpu_dce110_compressor.c:1.2	Sat Dec 18 23:45:02 2021
+++ src/sys/external/bsd/drm2/dist/drm/amd/display/dc/dce110/amdgpu_dce110_compressor.c	Sun Dec 19 10:59:02 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: amdgpu_dce110_compressor.c,v 1.2 2021/12/18 23:45:02 riastradh Exp $	*/
+/*	$NetBSD: amdgpu_dce110_compressor.c,v 1.3 2021/12/19 10:59:02 riastradh Exp $	*/
 
 /*
  * Copyright 2012-15 Advanced Micro Devices, Inc.
@@ -26,7 +26,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: amdgpu_dce110_compressor.c,v 1.2 2021/12/18 23:45:02 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: amdgpu_dce110_compressor.c,v 1.3 2021/12/19 10:59:02 riastradh Exp $");
 
 #include <linux/delay.h>
 #include <linux/slab.h>
@@ -417,6 +417,7 @@ void dce110_compressor_destroy(struct co
 	*compressor = NULL;
 }
 
+static __unused
 bool dce110_get_required_compressed_surfacesize(struct fbc_input_info fbc_input_info,
 						struct fbc_requested_compressed_size size)
 {
@@ -461,6 +462,7 @@ void get_max_support_fbc_buffersize(unsi
 }
 
 
+static __unused
 unsigned int controller_id_to_index(enum controller_id controller_id)
 {
 	unsigned int index = 0;
Index: src/sys/external/bsd/drm2/dist/drm/amd/display/dc/dce110/amdgpu_dce110_hw_sequencer.c
diff -u src/sys/external/bsd/drm2/dist/drm/amd/display/dc/dce110/amdgpu_dce110_hw_sequencer.c:1.2 src/sys/external/bsd/drm2/dist/drm/amd/display/dc/dce110/amdgpu_dce110_hw_sequencer.c:1.3
--- src/sys/external/bsd/drm2/dist/drm/amd/display/dc/dce110/amdgpu_dce110_hw_sequencer.c:1.2	Sat Dec 18 23:45:02 2021
+++ src/sys/external/bsd/drm2/dist/drm/amd/display/dc/dce110/amdgpu_dce110_hw_sequencer.c	Sun Dec 19 10:59:02 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: amdgpu_dce110_hw_sequencer.c,v 1.2 2021/12/18 23:45:02 riastradh Exp $	*/
+/*	$NetBSD: amdgpu_dce110_hw_sequencer.c,v 1.3 2021/12/19 10:59:02 riastradh Exp $	*/
 
 /*
  * Copyright 2015 Advanced Micro Devices, Inc.
@@ -26,7 +26,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: amdgpu_dce110_hw_sequencer.c,v 1.2 2021/12/18 23:45:02 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: amdgpu_dce110_hw_sequencer.c,v 1.3 2021/12/19 10:59:02 riastradh Exp $");
 
 #include <linux/delay.h>
 
@@ -689,11 +689,13 @@ void dce110_enable_stream(struct pipe_ct
 
 	tg->funcs->set_early_control(tg, early_control);
 
+#ifndef __NetBSD__		/* XXX amdgpu audio */
 	/* enable audio only within mode set */
 	if (pipe_ctx->stream_res.audio != NULL) {
 		if (dc_is_dp_signal(pipe_ctx->stream->signal))
 			pipe_ctx->stream_res.stream_enc->funcs->dp_audio_enable(pipe_ctx->stream_res.stream_enc);
 	}
+#endif
 
 
 
@@ -948,6 +950,7 @@ void dce110_edp_backlight_control(
 
 void dce110_enable_audio_stream(struct pipe_ctx *pipe_ctx)
 {
+#ifndef __NetBSD__		/* XXX amdgpu audio */
 	/* notify audio driver for audio modes of monitor */
 	struct dc *dc;
 	struct clk_mgr *clk_mgr;
@@ -981,10 +984,12 @@ void dce110_enable_audio_stream(struct p
 		if (pipe_ctx->stream_res.audio)
 			pipe_ctx->stream_res.audio->enabled = true;
 	}
+#endif
 }
 
 void dce110_disable_audio_stream(struct pipe_ctx *pipe_ctx)
 {
+#ifndef __NetBSD__		/* XXX amdgpu audio */
 	struct dc *dc;
 	struct clk_mgr *clk_mgr;
 
@@ -1019,6 +1024,7 @@ void dce110_disable_audio_stream(struct 
 		 * stream->stream_engine_id);
 		 */
 	}
+#endif
 }
 
 void dce110_disable_stream(struct pipe_ctx *pipe_ctx)
@@ -1089,6 +1095,7 @@ void dce110_set_avmute(struct pipe_ctx *
 		pipe_ctx->stream_res.stream_enc->funcs->set_avmute(pipe_ctx->stream_res.stream_enc, enable);
 }
 
+#ifndef __NetBSD__		/* XXX amdgpu audio */
 static enum audio_dto_source translate_to_dto_source(enum controller_id crtc_id)
 {
 	switch (crtc_id) {
@@ -1190,6 +1197,7 @@ static void build_audio_output(
 	audio_output->pll_info.ss_percentage =
 			pipe_ctx->pll_settings.ss_percentage;
 }
+#endif
 
 static void get_surface_visual_confirm_color(const struct pipe_ctx *pipe_ctx,
 		struct tg_color *color)
@@ -1337,6 +1345,7 @@ static enum dc_status apply_single_contr
 		hws->funcs.disable_stream_gating(dc, pipe_ctx);
 	}
 
+#ifndef __NetBSD__		/* XXX amdgpu audio */
 	if (pipe_ctx->stream_res.audio != NULL) {
 		struct audio_output audio_output;
 
@@ -1360,6 +1369,7 @@ static enum dc_status apply_single_contr
 				&audio_output.crtc_info,
 				&pipe_ctx->stream->audio_info);
 	}
+#endif
 
 	/*  */
 	/* Do not touch stream timing on seamless boot optimization. */
@@ -1899,6 +1909,7 @@ static void dce110_reset_hw_ctx_wrap(
 			if (!pipe_ctx->stream || !pipe_ctx->stream->dpms_off) {
 				core_link_disable_stream(pipe_ctx_old);
 
+#ifndef __NetBSD__		/* XXX amdgpu audio */
 				/* free acquired resources*/
 				if (pipe_ctx_old->stream_res.audio) {
 					/*disable az_endpoint*/
@@ -1914,6 +1925,7 @@ static void dce110_reset_hw_ctx_wrap(
 						pipe_ctx_old->stream_res.audio = NULL;
 					}
 				}
+#endif
 			}
 
 			pipe_ctx_old->stream_res.tg->funcs->set_blank(pipe_ctx_old->stream_res.tg, true);
@@ -1974,6 +1986,7 @@ static void dce110_setup_audio_dto(
 		if (pipe_ctx->stream->signal != SIGNAL_TYPE_HDMI_TYPE_A)
 			continue;
 
+#ifndef __NetBSD__		/* XXX amdgpu audio */
 		if (pipe_ctx->stream_res.audio != NULL) {
 			struct audio_output audio_output;
 
@@ -1986,6 +1999,7 @@ static void dce110_setup_audio_dto(
 				&audio_output.pll_info);
 			break;
 		}
+#endif
 	}
 
 	/* no HDMI audio is found, try DP audio */
@@ -2002,6 +2016,7 @@ static void dce110_setup_audio_dto(
 			if (!dc_is_dp_signal(pipe_ctx->stream->signal))
 				continue;
 
+#ifndef __NetBSD__		/* XXX amdgpu audio */
 			if (pipe_ctx->stream_res.audio != NULL) {
 				struct audio_output audio_output;
 
@@ -2014,6 +2029,7 @@ static void dce110_setup_audio_dto(
 					&audio_output.pll_info);
 				break;
 			}
+#endif
 		}
 	}
 }
@@ -2405,10 +2421,12 @@ static void init_hw(struct dc *dc)
 		hwss_wait_for_blank_complete(tg);
 	}
 
+#ifndef __NetBSD__		/* XXX amdgpu audio */
 	for (i = 0; i < dc->res_pool->audio_count; i++) {
 		struct audio *audio = dc->res_pool->audios[i];
 		audio->funcs->hw_init(audio);
 	}
+#endif
 
 	abm = dc->res_pool->abm;
 	if (abm != NULL) {
@@ -2673,6 +2691,7 @@ static void program_output_csc(struct dc
 	}
 }
 
+static
 void dce110_set_cursor_position(struct pipe_ctx *pipe_ctx)
 {
 	struct dc_cursor_position pos_cpy = pipe_ctx->stream->cursor_position;
@@ -2701,6 +2720,7 @@ void dce110_set_cursor_position(struct p
 		mi->funcs->set_cursor_position(mi, &pos_cpy, &param);
 }
 
+static
 void dce110_set_cursor_attribute(struct pipe_ctx *pipe_ctx)
 {
 	struct dc_cursor_attributes *attributes = &pipe_ctx->stream->cursor_attributes;
Index: src/sys/external/bsd/drm2/dist/drm/amd/display/dc/dce110/amdgpu_dce110_mem_input_v.c
diff -u src/sys/external/bsd/drm2/dist/drm/amd/display/dc/dce110/amdgpu_dce110_mem_input_v.c:1.2 src/sys/external/bsd/drm2/dist/drm/amd/display/dc/dce110/amdgpu_dce110_mem_input_v.c:1.3
--- src/sys/external/bsd/drm2/dist/drm/amd/display/dc/dce110/amdgpu_dce110_mem_input_v.c:1.2	Sat Dec 18 23:45:02 2021
+++ src/sys/external/bsd/drm2/dist/drm/amd/display/dc/dce110/amdgpu_dce110_mem_input_v.c	Sun Dec 19 10:59:02 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: amdgpu_dce110_mem_input_v.c,v 1.2 2021/12/18 23:45:02 riastradh Exp $	*/
+/*	$NetBSD: amdgpu_dce110_mem_input_v.c,v 1.3 2021/12/19 10:59:02 riastradh Exp $	*/
 
 /*
  * Copyright 2012-16 Advanced Micro Devices, Inc.
@@ -25,7 +25,7 @@
  *
  */
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: amdgpu_dce110_mem_input_v.c,v 1.2 2021/12/18 23:45:02 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: amdgpu_dce110_mem_input_v.c,v 1.3 2021/12/19 10:59:02 riastradh Exp $");
 
 #include "dm_services.h"
 
@@ -39,6 +39,7 @@ __KERNEL_RCSID(0, "$NetBSD: amdgpu_dce11
 #include "inc/dce_calcs.h"
 
 #include "dce/dce_mem_input.h"
+#include "dce110/dce110_mem_input_v.h"
 
 static void set_flip_control(
 	struct dce_mem_input *mem_input110,
@@ -473,6 +474,7 @@ static void program_pixel_format(
 	}
 }
 
+static
 bool dce_mem_input_v_is_surface_pending(struct mem_input *mem_input)
 {
 	struct dce_mem_input *mem_input110 = TO_DCE_MEM_INPUT(mem_input);
@@ -488,6 +490,7 @@ bool dce_mem_input_v_is_surface_pending(
 	return false;
 }
 
+static
 bool dce_mem_input_v_program_surface_flip_and_addr(
 	struct mem_input *mem_input,
 	const struct dc_plane_address *address,
@@ -565,6 +568,7 @@ static const unsigned int *get_dvmm_hw_s
 	}
 }
 
+static
 void dce_mem_input_v_program_pte_vm(
 		struct mem_input *mem_input,
 		enum surface_pixel_format format,
@@ -638,6 +642,7 @@ void dce_mem_input_v_program_pte_vm(
 	dm_write_reg(mem_input110->base.ctx, mmUNP_DVMM_PTE_ARB_CONTROL_C, value);
 }
 
+static
 void dce_mem_input_v_program_surface_config(
 	struct mem_input *mem_input,
 	enum surface_pixel_format format,
@@ -924,6 +929,7 @@ static void program_nbp_watermark_c(
 			marks);
 }
 
+static
 void dce_mem_input_v_program_display_marks(
 	struct mem_input *mem_input,
 	struct dce_watermarks nbp,
@@ -947,6 +953,7 @@ void dce_mem_input_v_program_display_mar
 
 }
 
+static
 void dce_mem_input_program_chroma_display_marks(
 	struct mem_input *mem_input,
 	struct dce_watermarks nbp,
@@ -968,6 +975,7 @@ void dce_mem_input_program_chroma_displa
 		stutter);
 }
 
+static
 void dce110_allocate_mem_input_v(
 	struct mem_input *mi,
 	uint32_t h_total,/* for current stream */
@@ -1010,6 +1018,7 @@ void dce110_allocate_mem_input_v(
 
 }
 
+static
 void dce110_free_mem_input_v(
 	struct mem_input *mi,
 	uint32_t total_stream_num)
Index: src/sys/external/bsd/drm2/dist/drm/amd/display/dc/dce110/amdgpu_dce110_timing_generator.c
diff -u src/sys/external/bsd/drm2/dist/drm/amd/display/dc/dce110/amdgpu_dce110_timing_generator.c:1.2 src/sys/external/bsd/drm2/dist/drm/amd/display/dc/dce110/amdgpu_dce110_timing_generator.c:1.3
--- src/sys/external/bsd/drm2/dist/drm/amd/display/dc/dce110/amdgpu_dce110_timing_generator.c:1.2	Sat Dec 18 23:45:02 2021
+++ src/sys/external/bsd/drm2/dist/drm/amd/display/dc/dce110/amdgpu_dce110_timing_generator.c	Sun Dec 19 10:59:02 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: amdgpu_dce110_timing_generator.c,v 1.2 2021/12/18 23:45:02 riastradh Exp $	*/
+/*	$NetBSD: amdgpu_dce110_timing_generator.c,v 1.3 2021/12/19 10:59:02 riastradh Exp $	*/
 
 /*
  * Copyright 2012-15 Advanced Micro Devices, Inc.
@@ -26,7 +26,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: amdgpu_dce110_timing_generator.c,v 1.2 2021/12/18 23:45:02 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: amdgpu_dce110_timing_generator.c,v 1.3 2021/12/19 10:59:02 riastradh Exp $");
 
 #include "dm_services.h"
 
@@ -1356,7 +1356,7 @@ void dce110_timing_generator_tear_down_g
 
 	/* Restore DCP_GSL_PURPOSE_SURFACE_FLIP */
 	{
-		uint32_t value_crtc_vtotal;
+		uint32_t value_crtc_vtotal __unused;
 
 		value_crtc_vtotal = dm_read_reg(tg->ctx,
 				CRTC_REG(mmCRTC_V_TOTAL));

Index: src/sys/external/bsd/drm2/dist/drm/amd/display/dc/dsc/amdgpu_dc_dsc.c
diff -u src/sys/external/bsd/drm2/dist/drm/amd/display/dc/dsc/amdgpu_dc_dsc.c:1.2 src/sys/external/bsd/drm2/dist/drm/amd/display/dc/dsc/amdgpu_dc_dsc.c:1.3
--- src/sys/external/bsd/drm2/dist/drm/amd/display/dc/dsc/amdgpu_dc_dsc.c:1.2	Sat Dec 18 23:45:04 2021
+++ src/sys/external/bsd/drm2/dist/drm/amd/display/dc/dsc/amdgpu_dc_dsc.c	Sun Dec 19 10:59:02 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: amdgpu_dc_dsc.c,v 1.2 2021/12/18 23:45:04 riastradh Exp $	*/
+/*	$NetBSD: amdgpu_dc_dsc.c,v 1.3 2021/12/19 10:59:02 riastradh Exp $	*/
 
 /*
  * Copyright 2019 Advanced Micro Devices, Inc.
@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: amdgpu_dc_dsc.c,v 1.2 2021/12/18 23:45:04 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: amdgpu_dc_dsc.c,v 1.3 2021/12/19 10:59:02 riastradh Exp $");
 
 #include "dc_hw_types.h"
 #include "dsc.h"
@@ -311,6 +311,9 @@ static inline uint32_t dsc_div_by_10_rou
 
 static inline uint32_t calc_dsc_bpp_x16(uint32_t stream_bandwidth_kbps, uint32_t pix_clk_100hz, uint32_t bpp_increment_div)
 {
+#ifdef __NetBSD__
+	panic("what is your float doing in my kernel");
+#else
 	uint32_t dsc_target_bpp_x16;
 	float f_dsc_target_bpp;
 	float f_stream_bandwidth_100bps = stream_bandwidth_kbps * 10.0f;
@@ -323,6 +326,7 @@ static inline uint32_t calc_dsc_bpp_x16(
 	dsc_target_bpp_x16 = (dsc_target_bpp_x16 * 16) / precision;
 
 	return dsc_target_bpp_x16;
+#endif
 }
 
 /* Get DSC bandwidth range based on [min_bpp, max_bpp] target bitrate range, and timing's pixel clock

Index: src/sys/external/bsd/drm2/dist/drm/amd/display/dc/inc/link_hwss.h
diff -u src/sys/external/bsd/drm2/dist/drm/amd/display/dc/inc/link_hwss.h:1.2 src/sys/external/bsd/drm2/dist/drm/amd/display/dc/inc/link_hwss.h:1.3
--- src/sys/external/bsd/drm2/dist/drm/amd/display/dc/inc/link_hwss.h:1.2	Sat Dec 18 23:45:05 2021
+++ src/sys/external/bsd/drm2/dist/drm/amd/display/dc/inc/link_hwss.h	Sun Dec 19 10:59:02 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: link_hwss.h,v 1.2 2021/12/18 23:45:05 riastradh Exp $	*/
+/*	$NetBSD: link_hwss.h,v 1.3 2021/12/19 10:59:02 riastradh Exp $	*/
 
 /*
  * Copyright 2015 Advanced Micro Devices, Inc.
@@ -73,7 +73,7 @@ void dp_set_hw_lane_settings(
 void dp_set_hw_test_pattern(
 	struct dc_link *link,
 	enum dp_test_pattern test_pattern,
-	uint8_t *custom_pattern,
+	const uint8_t *custom_pattern,
 	uint32_t custom_pattern_size);
 
 void dp_retrain_link_dp_test(struct dc_link *link,

Index: src/sys/external/bsd/drm2/dist/drm/amd/display/dmub/inc/dmub_rb.h
diff -u src/sys/external/bsd/drm2/dist/drm/amd/display/dmub/inc/dmub_rb.h:1.2 src/sys/external/bsd/drm2/dist/drm/amd/display/dmub/inc/dmub_rb.h:1.3
--- src/sys/external/bsd/drm2/dist/drm/amd/display/dmub/inc/dmub_rb.h:1.2	Sat Dec 18 23:45:06 2021
+++ src/sys/external/bsd/drm2/dist/drm/amd/display/dmub/inc/dmub_rb.h	Sun Dec 19 10:59:02 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: dmub_rb.h,v 1.2 2021/12/18 23:45:06 riastradh Exp $	*/
+/*	$NetBSD: dmub_rb.h,v 1.3 2021/12/19 10:59:02 riastradh Exp $	*/
 
 /*
  * Copyright 2019 Advanced Micro Devices, Inc.
@@ -128,7 +128,7 @@ static inline void dmub_rb_flush_pending
 	while (rptr != wptr) {
 		uint64_t volatile *data = (uint64_t volatile *)rb->base_address + rptr / sizeof(uint64_t);
 		//uint64_t volatile *p = (uint64_t volatile *)data;
-		uint64_t temp;
+		uint64_t temp __unused;
 		int i;
 
 		for (i = 0; i < DMUB_RB_CMD_SIZE / sizeof(uint64_t); i++)

Index: src/sys/external/bsd/drm2/dist/drm/amd/display/include/fixed31_32.h
diff -u src/sys/external/bsd/drm2/dist/drm/amd/display/include/fixed31_32.h:1.2 src/sys/external/bsd/drm2/dist/drm/amd/display/include/fixed31_32.h:1.3
--- src/sys/external/bsd/drm2/dist/drm/amd/display/include/fixed31_32.h:1.2	Sat Dec 18 23:45:07 2021
+++ src/sys/external/bsd/drm2/dist/drm/amd/display/include/fixed31_32.h	Sun Dec 19 10:59:02 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: fixed31_32.h,v 1.2 2021/12/18 23:45:07 riastradh Exp $	*/
+/*	$NetBSD: fixed31_32.h,v 1.3 2021/12/19 10:59:02 riastradh Exp $	*/
 
 /*
  * Copyright 2012-15 Advanced Micro Devices, Inc.
@@ -28,6 +28,8 @@
 #ifndef __DAL_FIXED31_32_H__
 #define __DAL_FIXED31_32_H__
 
+#include "os_types.h"
+
 #ifndef LLONG_MAX
 #define LLONG_MAX 9223372036854775807ll
 #endif
@@ -530,7 +532,7 @@ static inline struct fixed31_32 dc_fixpt
 
 	if (negative)
 		arg.value = -arg.value;
-	arg.value &= (~0LL) << (FIXED31_32_BITS_PER_FRACTIONAL_PART - frac_bits);
+	arg.value &= (~0ULL) << (FIXED31_32_BITS_PER_FRACTIONAL_PART - frac_bits);
 	if (negative)
 		arg.value = -arg.value;
 	return arg;

Index: src/sys/external/bsd/drm2/dist/drm/amd/include/amd_shared.h
diff -u src/sys/external/bsd/drm2/dist/drm/amd/include/amd_shared.h:1.3 src/sys/external/bsd/drm2/dist/drm/amd/include/amd_shared.h:1.4
--- src/sys/external/bsd/drm2/dist/drm/amd/include/amd_shared.h:1.3	Sat Dec 18 23:45:08 2021
+++ src/sys/external/bsd/drm2/dist/drm/amd/include/amd_shared.h	Sun Dec 19 10:59:02 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: amd_shared.h,v 1.3 2021/12/18 23:45:08 riastradh Exp $	*/
+/*	$NetBSD: amd_shared.h,v 1.4 2021/12/19 10:59:02 riastradh Exp $	*/
 
 /*
  * Copyright 2015 Advanced Micro Devices, Inc.
@@ -158,7 +158,7 @@ enum amd_dpm_forced_level;
  */
 struct amd_ip_funcs {
 	/** @name: Name of IP block */
-	char *name;
+	const char *name;
 	/**
 	 * @early_init:
 	 *
Index: src/sys/external/bsd/drm2/dist/drm/amd/include/kgd_kfd_interface.h
diff -u src/sys/external/bsd/drm2/dist/drm/amd/include/kgd_kfd_interface.h:1.3 src/sys/external/bsd/drm2/dist/drm/amd/include/kgd_kfd_interface.h:1.4
--- src/sys/external/bsd/drm2/dist/drm/amd/include/kgd_kfd_interface.h:1.3	Sat Dec 18 23:45:08 2021
+++ src/sys/external/bsd/drm2/dist/drm/amd/include/kgd_kfd_interface.h	Sun Dec 19 10:59:02 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: kgd_kfd_interface.h,v 1.3 2021/12/18 23:45:08 riastradh Exp $	*/
+/*	$NetBSD: kgd_kfd_interface.h,v 1.4 2021/12/19 10:59:02 riastradh Exp $	*/
 
 /*
  * Copyright 2014 Advanced Micro Devices, Inc.
@@ -253,17 +253,21 @@ struct kfd2kgd_calls {
 
 	int (*init_interrupts)(struct kgd_dev *kgd, uint32_t pipe_id);
 
+#ifndef __NetBSD__
 	int (*hqd_load)(struct kgd_dev *kgd, void *mqd, uint32_t pipe_id,
 			uint32_t queue_id, uint32_t __user *wptr,
 			uint32_t wptr_shift, uint32_t wptr_mask,
 			struct mm_struct *mm);
+#endif
 
 	int (*hiq_mqd_load)(struct kgd_dev *kgd, void *mqd,
 			    uint32_t pipe_id, uint32_t queue_id,
 			    uint32_t doorbell_off);
 
+#ifndef __NetBSD__
 	int (*hqd_sdma_load)(struct kgd_dev *kgd, void *mqd,
 			     uint32_t __user *wptr, struct mm_struct *mm);
+#endif
 
 	int (*hqd_dump)(struct kgd_dev *kgd,
 			uint32_t pipe_id, uint32_t queue_id,

Index: src/sys/external/bsd/drm2/dist/drm/amd/include/navi10_enum.h
diff -u src/sys/external/bsd/drm2/dist/drm/amd/include/navi10_enum.h:1.2 src/sys/external/bsd/drm2/dist/drm/amd/include/navi10_enum.h:1.3
--- src/sys/external/bsd/drm2/dist/drm/amd/include/navi10_enum.h:1.2	Sat Dec 18 23:45:08 2021
+++ src/sys/external/bsd/drm2/dist/drm/amd/include/navi10_enum.h	Sun Dec 19 10:59:02 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: navi10_enum.h,v 1.2 2021/12/18 23:45:08 riastradh Exp $	*/
+/*	$NetBSD: navi10_enum.h,v 1.3 2021/12/19 10:59:02 riastradh Exp $	*/
 
 /*
  * Copyright (C) 2019  Advanced Micro Devices, Inc.
@@ -19623,7 +19623,9 @@ typedef enum CovToShaderSel {
 INPUT_COVERAGE                           = 0x00000000,
 INPUT_INNER_COVERAGE                     = 0x00000001,
 INPUT_DEPTH_COVERAGE                     = 0x00000002,
+#ifndef __NetBSD__		/* XXX &@!#!^ */
 RAW                                      = 0x00000003,
+#endif
 } CovToShaderSel;
 
 /*
Index: src/sys/external/bsd/drm2/dist/drm/amd/include/vega10_enum.h
diff -u src/sys/external/bsd/drm2/dist/drm/amd/include/vega10_enum.h:1.2 src/sys/external/bsd/drm2/dist/drm/amd/include/vega10_enum.h:1.3
--- src/sys/external/bsd/drm2/dist/drm/amd/include/vega10_enum.h:1.2	Sat Dec 18 23:45:08 2021
+++ src/sys/external/bsd/drm2/dist/drm/amd/include/vega10_enum.h	Sun Dec 19 10:59:02 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: vega10_enum.h,v 1.2 2021/12/18 23:45:08 riastradh Exp $	*/
+/*	$NetBSD: vega10_enum.h,v 1.3 2021/12/19 10:59:02 riastradh Exp $	*/
 
 /*
  * Copyright (C) 2017  Advanced Micro Devices, Inc.
@@ -21407,7 +21407,9 @@ typedef enum CovToShaderSel {
 INPUT_COVERAGE                           = 0x00000000,
 INPUT_INNER_COVERAGE                     = 0x00000001,
 INPUT_DEPTH_COVERAGE                     = 0x00000002,
+#ifndef __NetBSD__		/* XXX @!#&* */
 RAW                                      = 0x00000003,
+#endif
 } CovToShaderSel;
 
 /*******************************************************

Index: src/sys/external/bsd/drm2/dist/drm/amd/powerplay/amdgpu_amd_powerplay.c
diff -u src/sys/external/bsd/drm2/dist/drm/amd/powerplay/amdgpu_amd_powerplay.c:1.2 src/sys/external/bsd/drm2/dist/drm/amd/powerplay/amdgpu_amd_powerplay.c:1.3
--- src/sys/external/bsd/drm2/dist/drm/amd/powerplay/amdgpu_amd_powerplay.c:1.2	Sat Dec 18 23:45:26 2021
+++ src/sys/external/bsd/drm2/dist/drm/amd/powerplay/amdgpu_amd_powerplay.c	Sun Dec 19 10:59:02 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: amdgpu_amd_powerplay.c,v 1.2 2021/12/18 23:45:26 riastradh Exp $	*/
+/*	$NetBSD: amdgpu_amd_powerplay.c,v 1.3 2021/12/19 10:59:02 riastradh Exp $	*/
 
 /*
  * Copyright 2015 Advanced Micro Devices, Inc.
@@ -23,7 +23,7 @@
  *
  */
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: amdgpu_amd_powerplay.c,v 1.2 2021/12/18 23:45:26 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: amdgpu_amd_powerplay.c,v 1.3 2021/12/19 10:59:02 riastradh Exp $");
 
 #include "pp_debug.h"
 #include <linux/types.h>
@@ -37,6 +37,7 @@ __KERNEL_RCSID(0, "$NetBSD: amdgpu_amd_p
 #include "amdgpu.h"
 #include "hwmgr.h"
 
+#include <linux/nbsd-namespace.h>
 
 static const struct amd_pm_funcs pp_dpm_funcs;
 
@@ -655,7 +656,7 @@ static int pp_dpm_get_pp_table(void *han
 		return -EINVAL;
 
 	mutex_lock(&hwmgr->smu_lock);
-	*table = (char *)hwmgr->soft_pp_table;
+	*table = __UNCONST(hwmgr->soft_pp_table);
 	size = hwmgr->soft_pp_table_size;
 	mutex_unlock(&hwmgr->smu_lock);
 	return size;
Index: src/sys/external/bsd/drm2/dist/drm/amd/powerplay/amdgpu_arcturus_ppt.c
diff -u src/sys/external/bsd/drm2/dist/drm/amd/powerplay/amdgpu_arcturus_ppt.c:1.2 src/sys/external/bsd/drm2/dist/drm/amd/powerplay/amdgpu_arcturus_ppt.c:1.3
--- src/sys/external/bsd/drm2/dist/drm/amd/powerplay/amdgpu_arcturus_ppt.c:1.2	Sat Dec 18 23:45:26 2021
+++ src/sys/external/bsd/drm2/dist/drm/amd/powerplay/amdgpu_arcturus_ppt.c	Sun Dec 19 10:59:02 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: amdgpu_arcturus_ppt.c,v 1.2 2021/12/18 23:45:26 riastradh Exp $	*/
+/*	$NetBSD: amdgpu_arcturus_ppt.c,v 1.3 2021/12/19 10:59:02 riastradh Exp $	*/
 
 /*
  * Copyright 2019 Advanced Micro Devices, Inc.
@@ -24,7 +24,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: amdgpu_arcturus_ppt.c,v 1.2 2021/12/18 23:45:26 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: amdgpu_arcturus_ppt.c,v 1.3 2021/12/19 10:59:02 riastradh Exp $");
 
 #include "pp_debug.h"
 #include <linux/firmware.h>
@@ -592,6 +592,7 @@ static int arcturus_populate_umd_state_c
 	return 0;
 }
 
+#ifdef CONFIG_SYSFS
 static int arcturus_get_clk_table(struct smu_context *smu,
 			struct pp_clock_levels_with_latency *clocks,
 			struct arcturus_single_dpm_table *dpm_table)
@@ -615,10 +616,14 @@ static int arcturus_freqs_in_same_level(
 {
 	return (abs(frequency1 - frequency2) <= EPSILON);
 }
+#endif
 
 static int arcturus_print_clk_levels(struct smu_context *smu,
 			enum smu_clk_type type, char *buf)
 {
+#ifndef CONFIG_SYSFS
+	return 0;
+#else
 	int i, now, size = 0;
 	int ret = 0;
 	struct pp_clock_levels_with_latency clocks;
@@ -730,6 +735,7 @@ static int arcturus_print_clk_levels(str
 	}
 
 	return size;
+#endif
 }
 
 static int arcturus_upload_dpm_level(struct smu_context *smu, bool max,
@@ -1323,6 +1329,9 @@ static int arcturus_get_power_limit(stru
 static int arcturus_get_power_profile_mode(struct smu_context *smu,
 					   char *buf)
 {
+#ifndef CONFIG_SYSFS
+	return 0;
+#else
 	struct amdgpu_device *adev = smu->adev;
 	DpmActivityMonitorCoeffInt_t activity_monitor;
 	static const char *profile_name[] = {
@@ -1421,6 +1430,7 @@ static int arcturus_get_power_profile_mo
 	}
 
 	return size;
+#endif
 }
 
 static int arcturus_set_power_profile_mode(struct smu_context *smu,
@@ -1950,6 +1960,8 @@ static bool arcturus_is_dpm_running(stru
 	uint32_t feature_mask[2];
 	unsigned long feature_enabled;
 	ret = smu_feature_get_enabled_mask(smu, feature_mask, 2);
+	if (ret)
+		return false;
 	feature_enabled = (unsigned long)((uint64_t)feature_mask[0] |
 			   ((uint64_t)feature_mask[1] << 32));
 	return !!(feature_enabled & SMC_DPM_FEATURE);
@@ -2190,7 +2202,9 @@ static int arcturus_i2c_eeprom_control_i
 
 	control->owner = THIS_MODULE;
 	control->class = I2C_CLASS_SPD;
+#ifndef __NetBSD__
 	control->dev.parent = &adev->pdev->dev;
+#endif
 	control->algo = &arcturus_i2c_eeprom_i2c_algo;
 	snprintf(control->name, sizeof(control->name), "RAS EEPROM");
 

Index: src/sys/external/bsd/drm2/dist/drm/amd/powerplay/inc/hwmgr.h
diff -u src/sys/external/bsd/drm2/dist/drm/amd/powerplay/inc/hwmgr.h:1.2 src/sys/external/bsd/drm2/dist/drm/amd/powerplay/inc/hwmgr.h:1.3
--- src/sys/external/bsd/drm2/dist/drm/amd/powerplay/inc/hwmgr.h:1.2	Sat Dec 18 23:45:26 2021
+++ src/sys/external/bsd/drm2/dist/drm/amd/powerplay/inc/hwmgr.h	Sun Dec 19 10:59:02 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: hwmgr.h,v 1.2 2021/12/18 23:45:26 riastradh Exp $	*/
+/*	$NetBSD: hwmgr.h,v 1.3 2021/12/19 10:59:02 riastradh Exp $	*/
 
 /*
  * Copyright 2015 Advanced Micro Devices, Inc.
@@ -200,7 +200,7 @@ enum SMU_ASIC_RESET_MODE
 };
 
 struct pp_smumgr_func {
-	char *name;
+	const char *name;
 	int (*smu_init)(struct pp_hwmgr  *hwmgr);
 	int (*smu_fini)(struct pp_hwmgr  *hwmgr);
 	int (*start_smu)(struct pp_hwmgr  *hwmgr);

Index: src/sys/external/bsd/drm2/dist/drm/amd/powerplay/smumgr/amdgpu_ci_smumgr.c
diff -u src/sys/external/bsd/drm2/dist/drm/amd/powerplay/smumgr/amdgpu_ci_smumgr.c:1.2 src/sys/external/bsd/drm2/dist/drm/amd/powerplay/smumgr/amdgpu_ci_smumgr.c:1.3
--- src/sys/external/bsd/drm2/dist/drm/amd/powerplay/smumgr/amdgpu_ci_smumgr.c:1.2	Sat Dec 18 23:45:27 2021
+++ src/sys/external/bsd/drm2/dist/drm/amd/powerplay/smumgr/amdgpu_ci_smumgr.c	Sun Dec 19 10:59:03 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: amdgpu_ci_smumgr.c,v 1.2 2021/12/18 23:45:27 riastradh Exp $	*/
+/*	$NetBSD: amdgpu_ci_smumgr.c,v 1.3 2021/12/19 10:59:03 riastradh Exp $	*/
 
 /*
  * Copyright 2017 Advanced Micro Devices, Inc.
@@ -23,7 +23,7 @@
  *
  */
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: amdgpu_ci_smumgr.c,v 1.2 2021/12/18 23:45:27 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: amdgpu_ci_smumgr.c,v 1.3 2021/12/19 10:59:03 riastradh Exp $");
 
 #include <linux/module.h>
 #include <linux/slab.h>
@@ -188,6 +188,7 @@ static int ci_program_jump_on_start(stru
 	return 0;
 }
 
+static
 bool ci_is_smc_ram_running(struct pp_hwmgr *hwmgr)
 {
 	return ((0 == PHM_READ_VFPF_INDIRECT_FIELD(hwmgr->device,
@@ -2133,7 +2134,7 @@ static int ci_thermal_setup_fan_table(st
 	uint32_t t_diff1, t_diff2, pwm_diff1, pwm_diff2;
 	uint16_t fdo_min, slope1, slope2;
 	uint32_t reference_clock;
-	int res;
+	int res __unused;
 	uint64_t tmp64;
 
 	if (!phm_cap_enabled(hwmgr->platform_descriptor.platformCaps, PHM_PlatformCaps_MicrocodeFanControl))

Index: src/sys/external/bsd/drm2/dist/include/drm/gpu_scheduler.h
diff -u src/sys/external/bsd/drm2/dist/include/drm/gpu_scheduler.h:1.2 src/sys/external/bsd/drm2/dist/include/drm/gpu_scheduler.h:1.3
--- src/sys/external/bsd/drm2/dist/include/drm/gpu_scheduler.h:1.2	Sat Dec 18 23:45:46 2021
+++ src/sys/external/bsd/drm2/dist/include/drm/gpu_scheduler.h	Sun Dec 19 10:59:03 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: gpu_scheduler.h,v 1.2 2021/12/18 23:45:46 riastradh Exp $	*/
+/*	$NetBSD: gpu_scheduler.h,v 1.3 2021/12/19 10:59:03 riastradh Exp $	*/
 
 /*
  * Copyright 2015 Advanced Micro Devices, Inc.
@@ -27,8 +27,10 @@
 #define _DRM_GPU_SCHEDULER_H_
 
 #include <drm/spsc_queue.h>
+#include <drm/drm_wait_netbsd.h>
 #include <linux/dma-fence.h>
 #include <linux/completion.h>
+#include <linux/workqueue.h>
 
 #define MAX_WAIT_SCHED_ENTITY_Q_EMPTY msecs_to_jiffies(1000)
 
@@ -276,8 +278,13 @@ struct drm_gpu_scheduler {
 	long				timeout;
 	const char			*name;
 	struct drm_sched_rq		sched_rq[DRM_SCHED_PRIORITY_MAX];
+#ifdef __NetBSD__
+	drm_waitqueue_t			wake_up_worker;
+	drm_waitqueue_t			job_scheduled;
+#else
 	wait_queue_head_t		wake_up_worker;
 	wait_queue_head_t		job_scheduled;
+#endif
 	atomic_t			hw_rq_count;
 	atomic64_t			job_id_count;
 	struct delayed_work		work_tdr;

Reply via email to