Index: sys/arch/amd64/conf/GENERIC =================================================================== RCS file: /cvsroot/src/sys/arch/amd64/conf/GENERIC,v retrieving revision 1.604 diff -u -r1.604 GENERIC --- sys/arch/amd64/conf/GENERIC 15 Jul 2023 22:16:00 -0000 1.604 +++ sys/arch/amd64/conf/GENERIC 21 Aug 2023 17:54:03 -0000 @@ -465,8 +465,8 @@ radeon* at pci? dev ? function ? radeondrmkmsfb* at radeonfbbus? -#amdgpu* at pci? dev ? function ? -#amdgpufb* at amdgpufbbus? +amdgpu* at pci? dev ? function ? +amdgpufb* at amdgpufbbus? nouveau* at pci? dev ? function ? nouveaufb* at nouveaufbbus? Index: sys/external/bsd/common/include/linux/printk.h =================================================================== RCS file: /cvsroot/src/sys/external/bsd/common/include/linux/printk.h,v retrieving revision 1.13 diff -u -r1.13 printk.h --- sys/external/bsd/common/include/linux/printk.h 29 Jul 2022 23:50:44 -0000 1.13 +++ sys/external/bsd/common/include/linux/printk.h 21 Aug 2023 17:55:55 -0000 @@ -36,18 +36,29 @@ #include #include +void +__nothinga(char const *yo, ...); + +#define DO_ONCE(func, ...) { \ + static int already_done = 0; \ + if (!already_done) { \ + func(__VA_ARGS__); \ + already_done = 1; \ + } \ +} + #define printk printf #define vprintk vprintf -#define printk_once printf +#define printk_once(...) DO_ONCE(printf, __VA_ARGS__) #define pr_err printf /* XXX */ #define pr_cont printf /* XXX */ #define pr_info printf /* XXX */ -#define pr_info_once printf /* XXX */ -#define pr_info_ratelimited printf /* XXX */ +#define pr_info_once(...) DO_ONCE(printf, __VA_ARGS__) +#define pr_info_ratelimited(...) DO_ONCE(printf, __VA_ARGS__) #define pr_warn printf /* XXX */ -#define pr_warn_once printf /* XXX */ +#define pr_warn_once(...) DO_ONCE(printf, __VA_ARGS__) #define pr_notice printf /* XXX */ -#define pr_debug printf /* XXX */ +#define pr_debug(...) __nothinga(__VA_ARGS__) #define KERN_EMERG "emerg: " #define KERN_ALERT "alert: " #define KERN_CRIT "crit: " Index: sys/external/bsd/drm2/amdgpu/files.amdgpu =================================================================== RCS file: /cvsroot/src/sys/external/bsd/drm2/amdgpu/files.amdgpu,v retrieving revision 1.30 diff -u -r1.30 files.amdgpu --- sys/external/bsd/drm2/amdgpu/files.amdgpu 14 Jul 2023 13:05:59 -0000 1.30 +++ sys/external/bsd/drm2/amdgpu/files.amdgpu 21 Aug 2023 17:57:10 -0000 @@ -32,6 +32,8 @@ 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_ACPI=1" +makeoptions amdgpu "CPPFLAGS.amdgpu"+="-DNACPICA=1" makeoptions amdgpu "CPPFLAGS.amdgpu"+="-DCONFIG_DRM_AMD_ACP=1" makeoptions amdgpu "CPPFLAGS.amdgpu"+="-DCONFIG_DRM_AMD_DC=1" makeoptions amdgpu "CPPFLAGS.amdgpu"+="-DCONFIG_DRM_AMD_DC_DCN=1" @@ -354,7 +356,7 @@ 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: sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_acpi.c =================================================================== RCS file: /cvsroot/src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_acpi.c,v retrieving revision 1.5 diff -u -r1.5 amdgpu_acpi.c --- sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_acpi.c 27 Feb 2022 14:24:26 -0000 1.5 +++ sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_acpi.c 21 Aug 2023 17:57:11 -0000 @@ -40,6 +40,9 @@ #include "amd_acpi.h" #include "atom.h" +#include +#include + struct amdgpu_atif_notification_cfg { bool enabled; int command_code; @@ -362,6 +365,7 @@ return err; } +#ifndef __NetBSD__ /** * amdgpu_atif_get_sbios_requests - get requested sbios event * @@ -487,6 +491,7 @@ */ return NOTIFY_BAD; } +#endif /* Call the ATCS method */ @@ -635,7 +640,12 @@ struct amdgpu_atcs *atcs = &adev->atcs; /* Get the device handle */ +#if defined(__NetBSD__) + handle = (adev->pdev->pd_ad ? adev->pdev->pd_ad->ad_handle + : NULL); +#else handle = ACPI_HANDLE(&adev->pdev->dev); +#endif if (!handle) return -EINVAL; @@ -678,7 +688,12 @@ return -EINVAL; /* Get the device handle */ +#if defined(__NetBSD__) + handle = (adev->pdev->pd_ad ? adev->pdev->pd_ad->ad_handle + : NULL); +#else handle = ACPI_HANDLE(&adev->pdev->dev); +#endif if (!handle) return -EINVAL; @@ -695,8 +710,13 @@ atcs_input.req_type = ATCS_PCIE_LINK_SPEED; atcs_input.perf_req = perf_req; +#if defined(__NetBSD__) + params.Length = sizeof(struct atcs_pref_req_input); + params.Pointer = &atcs_input; +#else params.length = sizeof(struct atcs_pref_req_input); params.pointer = &atcs_input; +#endif while (retry--) { info = amdgpu_atcs_call(handle, ATCS_FUNCTION_PCIE_PERFORMANCE_REQUEST, ¶ms); @@ -747,6 +767,9 @@ unsigned long val, void *data) { +#ifdef __NetBSD__ + return 0; +#else struct amdgpu_device *adev = container_of(nb, struct amdgpu_device, acpi_nb); struct acpi_bus_event *entry = (struct acpi_bus_event *)data; @@ -761,6 +784,7 @@ /* Check for pending SBIOS requests */ return amdgpu_atif_handler(adev, entry); +#endif } /* Call all ACPI methods here */ @@ -781,7 +805,12 @@ int ret; /* Get the device handle */ +#if defined(__NetBSD__) + handle = (adev->pdev->pd_ad ? adev->pdev->pd_ad->ad_handle + : NULL); +#else handle = ACPI_HANDLE(&adev->pdev->dev); +#endif if (!adev->bios || !handle) return 0; @@ -863,7 +892,9 @@ out: adev->acpi_nb.notifier_call = amdgpu_acpi_event; +#ifndef __NetBSD__ register_acpi_notifier(&adev->acpi_nb); +#endif return ret; } @@ -889,6 +920,8 @@ */ void amdgpu_acpi_fini(struct amdgpu_device *adev) { +#ifndef __NetBSD__ unregister_acpi_notifier(&adev->acpi_nb); +#endif kfree(adev->atif); } Index: sys/external/bsd/drm2/dist/drm/amd/display/dc/dml/amdgpu_display_rq_dlg_helpers.c =================================================================== RCS file: /cvsroot/src/sys/external/bsd/drm2/dist/drm/amd/display/dc/dml/amdgpu_display_rq_dlg_helpers.c,v retrieving revision 1.2 diff -u -r1.2 amdgpu_display_rq_dlg_helpers.c --- sys/external/bsd/drm2/dist/drm/amd/display/dc/dml/amdgpu_display_rq_dlg_helpers.c 18 Dec 2021 23:45:04 -0000 1.2 +++ sys/external/bsd/drm2/dist/drm/amd/display/dc/dml/amdgpu_display_rq_dlg_helpers.c 21 Aug 2023 17:57:11 -0000 @@ -31,6 +31,10 @@ #include "display_rq_dlg_helpers.h" #include "dml_logger.h" +void +__nothinga(char const *fmt, ...) +{} + void print__rq_params_st(struct display_mode_lib *mode_lib, display_rq_params_st rq_param) { dml_print("DML_RQ_DLG_CALC: ***************************\n"); Index: sys/external/bsd/drm2/include/linux/nbsd-namespace-acpi.h =================================================================== RCS file: /cvsroot/src/sys/external/bsd/drm2/include/linux/nbsd-namespace-acpi.h,v retrieving revision 1.1 diff -u -r1.1 nbsd-namespace-acpi.h --- sys/external/bsd/drm2/include/linux/nbsd-namespace-acpi.h 27 Feb 2022 14:22:42 -0000 1.1 +++ sys/external/bsd/drm2/include/linux/nbsd-namespace-acpi.h 21 Aug 2023 17:57:11 -0000 @@ -39,6 +39,7 @@ #define type Type #define value Value +#define acpi_get_name AcpiGetName #define acpi_get_handle AcpiGetHandle #define acpi_get_table AcpiGetTable #define acpi_evaluate_object AcpiEvaluateObject Index: sys/modules/amdgpu/Makefile =================================================================== RCS file: /cvsroot/src/sys/modules/amdgpu/Makefile,v retrieving revision 1.6 diff -u -r1.6 Makefile --- sys/modules/amdgpu/Makefile 14 Jul 2023 13:05:59 -0000 1.6 +++ sys/modules/amdgpu/Makefile 21 Aug 2023 17:57:34 -0000 @@ -34,6 +34,8 @@ CPPFLAGS+= -I${S}/external/bsd/drm2/dist/drm/amd/display/modules/hdcp CPPFLAGS+= -I${S}/external/bsd/drm2/dist/drm/amd/display/amdgpu_dm CPPFLAGS+= -I${S}/external/bsd/drm2/dist/drm/amd/display/dmub/inc +CPPFLAGS+= -DCONFIG_ACPI=1 +CPPFLAGS+= -DNACPICA=1 CPPFLAGS+= -DCONFIG_DRM_AMD_ACP=1 CPPFLAGS+= -DCONFIG_DRM_AMD_DC=1 CPPFLAGS+= -DCONFIG_DRM_AMD_DC_DCN=1 @@ -144,6 +146,7 @@ # sed -ne 's,^file external/bsd/drm2/.*/\([^/ ]*\) .*,SRCS+= \1,gp'