Module Name: src Committed By: riastradh Date: Sun Dec 19 11:35:07 UTC 2021
Modified Files: src/sys/external/bsd/drm2/amdgpu: files.amdgpu src/sys/external/bsd/drm2/dist/drm/amd/amdgpu: amdgpu.h amdgpu_device.c amdgpu_df_v3_6.c src/sys/external/bsd/drm2/dist/drm/amd/display/dc: os_types.h src/sys/external/bsd/drm2/dist/drm/amd/display/dc/calcs: amdgpu_dcn_calcs.c src/sys/external/bsd/drm2/dist/drm/amd/display/dc/dcn21: amdgpu_dcn21_hubp.c amdgpu_dcn21_resource.c Log Message: amdgpu: Take a short pass over amdgpu. To generate a diff of this commit: cvs rdiff -u -r1.17 -r1.18 src/sys/external/bsd/drm2/amdgpu/files.amdgpu cvs rdiff -u -r1.5 -r1.6 \ src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu.h cvs rdiff -u -r1.7 -r1.8 \ src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_device.c cvs rdiff -u -r1.2 -r1.3 \ src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_df_v3_6.c cvs rdiff -u -r1.2 -r1.3 \ src/sys/external/bsd/drm2/dist/drm/amd/display/dc/os_types.h cvs rdiff -u -r1.2 -r1.3 \ src/sys/external/bsd/drm2/dist/drm/amd/display/dc/calcs/amdgpu_dcn_calcs.c cvs rdiff -u -r1.2 -r1.3 \ src/sys/external/bsd/drm2/dist/drm/amd/display/dc/dcn21/amdgpu_dcn21_hubp.c \ src/sys/external/bsd/drm2/dist/drm/amd/display/dc/dcn21/amdgpu_dcn21_resource.c 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.17 src/sys/external/bsd/drm2/amdgpu/files.amdgpu:1.18 --- src/sys/external/bsd/drm2/amdgpu/files.amdgpu:1.17 Sun Dec 19 11:24:37 2021 +++ src/sys/external/bsd/drm2/amdgpu/files.amdgpu Sun Dec 19 11:35:06 2021 @@ -1,4 +1,4 @@ -# $NetBSD: files.amdgpu,v 1.17 2021/12/19 11:24:37 riastradh Exp $ +# $NetBSD: files.amdgpu,v 1.18 2021/12/19 11:35:06 riastradh Exp $ version 20180827 @@ -48,6 +48,14 @@ makeoptions amdgpu "CWARNFLAGS.amdgpu_ar # overflow in arithmetic, which is the opposite of helpful. &@!#* makeoptions amdgpu "CWARNFLAGS.amdgpu_bo_list.c"+="-Wno-type-limits" +ifdef amd64 +makeoptions amdgpu "COPTS.amdgpu_dcn20_resource.c"+="-mhard-float -msse -msse2" +makeoptions amdgpu "COPTS.amdgpu_dcn21_resource.c"+="-mhard-float -msse -msse2" +makeoptions amdgpu "COPTS.amdgpu_dcn_calc_auto.c"+="-mhard-float -msse -msse2" +makeoptions amdgpu "COPTS.amdgpu_dcn_calc_math.c"+="-mhard-float -msse -msse2" +makeoptions amdgpu "COPTS.amdgpu_dcn_calcs.c"+="-mhard-float -msse -msse2" +endif + # Local additions. file external/bsd/drm2/amdgpu/amdgpu_module.c amdgpu file external/bsd/drm2/amdgpu/amdgpu_pci.c amdgpu Index: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu.h diff -u src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu.h:1.5 src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu.h:1.6 --- src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu.h:1.5 Sat Dec 18 23:44:58 2021 +++ src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu.h Sun Dec 19 11:35:06 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: amdgpu.h,v 1.5 2021/12/18 23:44:58 riastradh Exp $ */ +/* $NetBSD: amdgpu.h,v 1.6 2021/12/19 11:35:06 riastradh Exp $ */ /* * Copyright 2008 Advanced Micro Devices, Inc. @@ -1264,6 +1264,9 @@ void amdgpu_unregister_gpu_instance(stru #include "amdgpu_object.h" +#ifdef __NetBSD__ /* XXX amdgpu sysfs */ +#define AMDGPU_PMU_ATTR(_name, _object) CTASSERT(1) +#else /* used by df_v3_6.c and amdgpu_pmu.c */ #define AMDGPU_PMU_ATTR(_name, _object) \ static ssize_t \ @@ -1276,6 +1279,7 @@ _name##_show(struct device *dev, \ } \ \ static struct device_attribute pmu_attr_##_name = __ATTR_RO(_name) +#endif #endif Index: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_device.c diff -u src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_device.c:1.7 src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_device.c:1.8 --- src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_device.c:1.7 Sat Dec 18 23:44:58 2021 +++ src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_device.c Sun Dec 19 11:35:07 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: amdgpu_device.c,v 1.7 2021/12/18 23:44:58 riastradh Exp $ */ +/* $NetBSD: amdgpu_device.c,v 1.8 2021/12/19 11:35:07 riastradh Exp $ */ /* * Copyright 2008 Advanced Micro Devices, Inc. @@ -28,7 +28,7 @@ * Jerome Glisse */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: amdgpu_device.c,v 1.7 2021/12/18 23:44:58 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: amdgpu_device.c,v 1.8 2021/12/19 11:35:07 riastradh Exp $"); #include <linux/power_supply.h> #include <linux/kthread.h> @@ -119,6 +119,8 @@ const char *amdgpu_asic_name[] = { "LAST", }; +#ifndef __NetBSD__ /* XXX amdgpu sysfs */ + /** * DOC: pcie_replay_count * @@ -141,6 +143,8 @@ static ssize_t amdgpu_device_get_pcie_re static DEVICE_ATTR(pcie_replay_count, S_IRUGO, amdgpu_device_get_pcie_replay_count, NULL); +#endif /* __NetBSD__ */ + static void amdgpu_device_get_pcie_info(struct amdgpu_device *adev); /** @@ -266,7 +270,12 @@ uint32_t amdgpu_mm_rreg(struct amdgpu_de */ uint8_t amdgpu_mm_rreg8(struct amdgpu_device *adev, uint32_t offset) { if (offset < adev->rmmio_size) +#ifdef __NetBSD__ + return bus_space_read_1(adev->rmmiot, adev->rmmioh, + adev->rmmio_base + offset); +#else return (readb(adev->rmmio + offset)); +#endif BUG(); } @@ -287,7 +296,12 @@ uint8_t amdgpu_mm_rreg8(struct amdgpu_de */ void amdgpu_mm_wreg8(struct amdgpu_device *adev, uint32_t offset, uint8_t value) { if (offset < adev->rmmio_size) +#ifdef __NetBSD__ + bus_space_write_1(adev->rmmiot, adev->rmmioh, + adev->rmmio_base + offset, value); +#else writeb(value, adev->rmmio + offset); +#endif else BUG(); } @@ -467,7 +481,12 @@ void amdgpu_mm_wdoorbell(struct amdgpu_d u64 amdgpu_mm_rdoorbell64(struct amdgpu_device *adev, u32 index) { if (index < adev->doorbell.num_doorbells) { +#ifdef __NetBSD__ + return bus_space_read_8(adev->doorbell.bst, adev->doorbell.bsh, + 4*index); +#else return atomic64_read((atomic64_t *)(adev->doorbell.ptr + index)); +#endif } else { DRM_ERROR("reading beyond doorbell aperture: 0x%08x!\n", index); return 0; @@ -487,7 +506,12 @@ u64 amdgpu_mm_rdoorbell64(struct amdgpu_ void amdgpu_mm_wdoorbell64(struct amdgpu_device *adev, u32 index, u64 v) { if (index < adev->doorbell.num_doorbells) { +#ifdef __NetBSD__ + bus_space_write_8(adev->doorbell.bst, adev->doorbell.bsh, + 4*index, v); +#else atomic64_set((atomic64_t *)(adev->doorbell.ptr + index), v); +#endif } else { DRM_ERROR("writing beyond doorbell aperture: 0x%08x!\n", index); } @@ -3252,11 +3276,13 @@ fence_driver_init: queue_delayed_work(system_wq, &adev->delayed_init_work, msecs_to_jiffies(AMDGPU_RESUME_MS)); +#ifndef __NetBSD__ /* XXX amdgpu sysfs */ r = device_create_file(adev->dev, &dev_attr_pcie_replay_count); if (r) { dev_err(adev->dev, "Could not create pcie_replay_count"); return r; } +#endif if (IS_ENABLED(CONFIG_PERF_EVENTS)) r = amdgpu_pmu_init(adev); Index: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_df_v3_6.c diff -u src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_df_v3_6.c:1.2 src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_df_v3_6.c:1.3 --- src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_df_v3_6.c:1.2 Sat Dec 18 23:44:58 2021 +++ src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_df_v3_6.c Sun Dec 19 11:35:07 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: amdgpu_df_v3_6.c,v 1.2 2021/12/18 23:44:58 riastradh Exp $ */ +/* $NetBSD: amdgpu_df_v3_6.c,v 1.3 2021/12/19 11:35:07 riastradh Exp $ */ /* * Copyright 2018 Advanced Micro Devices, Inc. @@ -23,7 +23,7 @@ * */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: amdgpu_df_v3_6.c,v 1.2 2021/12/18 23:44:58 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: amdgpu_df_v3_6.c,v 1.3 2021/12/19 11:35:07 riastradh Exp $"); #include "amdgpu.h" #include "df_v3_6.h" @@ -38,6 +38,8 @@ __KERNEL_RCSID(0, "$NetBSD: amdgpu_df_v3 static u32 df_v3_6_channel_number[] = {1, 2, 0, 4, 0, 8, 0, 16, 32, 0, 0, 0, 2, 4, 8}; +#ifndef __NetBSD__ /* XXX amdgpu sysfs */ + /* init df format attrs */ AMDGPU_PMU_ATTR(event, "config:0-7"); AMDGPU_PMU_ATTR(instance, "config:8-15"); @@ -101,6 +103,8 @@ const struct attribute_group *df_v3_6_at NULL }; +#endif /* __NetBSD__ */ + static uint64_t df_v3_6_get_fica(struct amdgpu_device *adev, uint32_t ficaa_val) { @@ -246,6 +250,8 @@ static int df_v3_6_perfmon_arm_with_retr return countdown > 0 ? 0 : -ETIME; } +#ifndef __NetBSD__ /* XXX amdgpu sysfs */ + /* get the number of df counters available */ static ssize_t df_v3_6_get_df_cntr_avail(struct device *dev, struct device_attribute *attr, @@ -270,6 +276,8 @@ static ssize_t df_v3_6_get_df_cntr_avail /* device attr for available perfmon counters */ static DEVICE_ATTR(df_cntr_avail, S_IRUGO, df_v3_6_get_df_cntr_avail, NULL); +#endif /* __NetBSD__ */ + static void df_v3_6_query_hashes(struct amdgpu_device *adev) { u32 tmp; @@ -301,9 +309,13 @@ static void df_v3_6_sw_init(struct amdgp { int i, ret; +#ifdef __NetBSD__ /* XXX amdgpu sysfs */ + __USE(ret); +#else ret = device_create_file(adev->dev, &dev_attr_df_cntr_avail); if (ret) DRM_ERROR("failed to create file for available df counters\n"); +#endif for (i = 0; i < AMDGPU_MAX_DF_PERFMONS; i++) adev->df_perfmon_config_assign_mask[i] = 0; @@ -314,7 +326,9 @@ static void df_v3_6_sw_init(struct amdgp static void df_v3_6_sw_fini(struct amdgpu_device *adev) { +#ifndef __NetBSD__ /* XXX amdgpu sysfs */ device_remove_file(adev->dev, &dev_attr_df_cntr_avail); +#endif } @@ -485,7 +499,7 @@ static int df_v3_6_pmc_get_ctrl_settings *lo_val = (unitmask << 8) | (instance_10 << 6) | eventsel | (1 << 22); *hi_val = (instance_76 << 29) | instance_5432; - DRM_DEBUG_DRIVER("config=%llx addr=%08x:%08x val=%08x:%08x", + DRM_DEBUG_DRIVER("config=%"PRIx64" addr=%08x:%08x val=%08x:%08x", config, *lo_base_addr, *hi_base_addr, *lo_val, *hi_val); return 0; Index: src/sys/external/bsd/drm2/dist/drm/amd/display/dc/os_types.h diff -u src/sys/external/bsd/drm2/dist/drm/amd/display/dc/os_types.h:1.2 src/sys/external/bsd/drm2/dist/drm/amd/display/dc/os_types.h:1.3 --- src/sys/external/bsd/drm2/dist/drm/amd/display/dc/os_types.h:1.2 Sat Dec 18 23:45:00 2021 +++ src/sys/external/bsd/drm2/dist/drm/amd/display/dc/os_types.h Sun Dec 19 11:35:07 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: os_types.h,v 1.2 2021/12/18 23:45:00 riastradh Exp $ */ +/* $NetBSD: os_types.h,v 1.3 2021/12/19 11:35:07 riastradh Exp $ */ /* * Copyright 2012-16 Advanced Micro Devices, Inc. @@ -54,9 +54,15 @@ #if defined(CONFIG_DRM_AMD_DC_DCN) #if defined(CONFIG_X86) +#ifdef __NetBSD__ +#include <x86/fpu.h> +#define DC_FP_START() fpu_kern_enter() +#define DC_FP_END() fpu_kern_leave() +#else #include <asm/fpu/api.h> #define DC_FP_START() kernel_fpu_begin() #define DC_FP_END() kernel_fpu_end() +#endif #elif defined(CONFIG_PPC64) #include <asm/switch_to.h> #include <asm/cputable.h> Index: src/sys/external/bsd/drm2/dist/drm/amd/display/dc/calcs/amdgpu_dcn_calcs.c diff -u src/sys/external/bsd/drm2/dist/drm/amd/display/dc/calcs/amdgpu_dcn_calcs.c:1.2 src/sys/external/bsd/drm2/dist/drm/amd/display/dc/calcs/amdgpu_dcn_calcs.c:1.3 --- src/sys/external/bsd/drm2/dist/drm/amd/display/dc/calcs/amdgpu_dcn_calcs.c:1.2 Sat Dec 18 23:45:01 2021 +++ src/sys/external/bsd/drm2/dist/drm/amd/display/dc/calcs/amdgpu_dcn_calcs.c Sun Dec 19 11:35:07 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: amdgpu_dcn_calcs.c,v 1.2 2021/12/18 23:45:01 riastradh Exp $ */ +/* $NetBSD: amdgpu_dcn_calcs.c,v 1.3 2021/12/19 11:35:07 riastradh Exp $ */ /* * Copyright 2017 Advanced Micro Devices, Inc. @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: amdgpu_dcn_calcs.c,v 1.2 2021/12/18 23:45:01 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: amdgpu_dcn_calcs.c,v 1.3 2021/12/19 11:35:07 riastradh Exp $"); #include "dm_services.h" #include "dc.h" @@ -446,7 +446,7 @@ static void dcn_bw_calc_rq_dlg_ttu( struct pipe_ctx *pipe, int in_idx) { - struct display_mode_lib *dml = (struct display_mode_lib *)(&dc->dml); + struct display_mode_lib *dml = (struct display_mode_lib *)__UNCONST(&dc->dml); struct _vcs_dpi_display_dlg_regs_st *dlg_regs = &pipe->dlg_regs; struct _vcs_dpi_display_ttu_regs_st *ttu_regs = &pipe->ttu_regs; struct _vcs_dpi_display_rq_regs_st *rq_regs = &pipe->rq_regs; Index: src/sys/external/bsd/drm2/dist/drm/amd/display/dc/dcn21/amdgpu_dcn21_hubp.c diff -u src/sys/external/bsd/drm2/dist/drm/amd/display/dc/dcn21/amdgpu_dcn21_hubp.c:1.2 src/sys/external/bsd/drm2/dist/drm/amd/display/dc/dcn21/amdgpu_dcn21_hubp.c:1.3 --- src/sys/external/bsd/drm2/dist/drm/amd/display/dc/dcn21/amdgpu_dcn21_hubp.c:1.2 Sat Dec 18 23:45:03 2021 +++ src/sys/external/bsd/drm2/dist/drm/amd/display/dc/dcn21/amdgpu_dcn21_hubp.c Sun Dec 19 11:35:07 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: amdgpu_dcn21_hubp.c,v 1.2 2021/12/18 23:45:03 riastradh Exp $ */ +/* $NetBSD: amdgpu_dcn21_hubp.c,v 1.3 2021/12/19 11:35:07 riastradh Exp $ */ /* * Copyright 2018 Advanced Micro Devices, Inc. @@ -26,7 +26,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: amdgpu_dcn21_hubp.c,v 1.2 2021/12/18 23:45:03 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: amdgpu_dcn21_hubp.c,v 1.3 2021/12/19 11:35:07 riastradh Exp $"); #include "dcn10/dcn10_hubp.h" #include "dcn21_hubp.h" @@ -330,7 +330,7 @@ void hubp21_set_vm_system_aperture_setti { struct dcn21_hubp *hubp21 = TO_DCN21_HUBP(hubp); - PHYSICAL_ADDRESS_LOC mc_vm_apt_default; + PHYSICAL_ADDRESS_LOC mc_vm_apt_default __unused; PHYSICAL_ADDRESS_LOC mc_vm_apt_low; PHYSICAL_ADDRESS_LOC mc_vm_apt_high; Index: src/sys/external/bsd/drm2/dist/drm/amd/display/dc/dcn21/amdgpu_dcn21_resource.c diff -u src/sys/external/bsd/drm2/dist/drm/amd/display/dc/dcn21/amdgpu_dcn21_resource.c:1.2 src/sys/external/bsd/drm2/dist/drm/amd/display/dc/dcn21/amdgpu_dcn21_resource.c:1.3 --- src/sys/external/bsd/drm2/dist/drm/amd/display/dc/dcn21/amdgpu_dcn21_resource.c:1.2 Sat Dec 18 23:45:03 2021 +++ src/sys/external/bsd/drm2/dist/drm/amd/display/dc/dcn21/amdgpu_dcn21_resource.c Sun Dec 19 11:35:07 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: amdgpu_dcn21_resource.c,v 1.2 2021/12/18 23:45:03 riastradh Exp $ */ +/* $NetBSD: amdgpu_dcn21_resource.c,v 1.3 2021/12/19 11:35:07 riastradh Exp $ */ /* * Copyright 2018 Advanced Micro Devices, Inc. @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: amdgpu_dcn21_resource.c,v 1.2 2021/12/18 23:45:03 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: amdgpu_dcn21_resource.c,v 1.3 2021/12/19 11:35:07 riastradh Exp $"); #include <linux/slab.h> @@ -943,10 +943,12 @@ static void dcn21_resource_destruct(stru } } +#ifndef __NetBSD__ /* XXX amdgpu audio */ for (i = 0; i < pool->base.audio_count; i++) { if (pool->base.audios[i]) dce_aud_destroy(&pool->base.audios[i]); } +#endif for (i = 0; i < pool->base.clk_src_count; i++) { if (pool->base.clock_sources[i] != NULL) { @@ -1430,12 +1432,14 @@ static void dcn21_pp_smu_destroy(struct } } +#ifndef __NetBSD__ /* XXX amdgpu audio */ static struct audio *dcn21_create_audio( struct dc_context *ctx, unsigned int inst) { return dce_audio_create(ctx, inst, &audio_regs[inst], &audio_shift, &audio_mask); } +#endif static struct dc_cap_funcs cap_funcs = { .get_dcc_compression_cap = dcn20_get_dcc_compression_cap @@ -1487,7 +1491,9 @@ static struct dce_hwseq *dcn21_hwseq_cre static const struct resource_create_funcs res_create_funcs = { .read_dce_straps = read_dce_straps, +#ifndef __NetBSD__ /* XXX amdgpu audio */ .create_audio = dcn21_create_audio, +#endif .create_stream_encoder = dcn21_stream_encoder_create, .create_hwseq = dcn21_hwseq_create, };