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, ¶m); } +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;