drm/amdgpu: Port to DragonFly
authorSergey Zigachev <s.zi@outlook.com>
Wed, 3 Nov 2021 10:34:41 +0000 (15:34 +0500)
committerMatthew Dillon <dillon@apollo.backplane.com>
Wed, 3 Nov 2021 16:48:41 +0000 (09:48 -0700)
commit789731325bde747251c28a37e0a00ed4efb88c46
tree51b29c0483b81e4cf467bf21b234682568927608
parentb843c749addef9340ee7d4e250b09fdd492602a1
drm/amdgpu: Port to DragonFly

* This commit does not build as it requires ttm changes from
  the corresponding commit

Amdgpu driver changes:
* Builds with CONFIG_DRM_AMD_DC and CONFIG_DRM_AMD_DC_DCN1_0 defined
* Support for older GPUs (SI, CIK) is not implemented
* Several functions for display core module require msse and
  mhard-float gcc flags to be set; and they require special
  treatment from kernel by utilizing kernel_fpu_begin/kernel_fpu_end
  functions
* It is required that tunable set amdgpu_hw_i2c=1 to work around
  panic during module load
* Thunderbolt support is disabled
* Amdgpu trace infrastructure replaced by a stub

Drm changes:
* register_framebuffer is called at the later stage, after crtcs
  were properly initialized
* drm_close implemented
* drm_connector_update_edid_property implemented
* Fix drm device stays locked in case of an error or module shutdown
* Imported drm gem framebuffer helper functions
* Fixed null pointer deref in the drm mmap ioctl
* Imported atomic64_inc and atomic_long_* functions from Linux
* Imported bitmap_complement function from Linux
* Imported kfifo struct from Linux
* Implemented dma fence array properly
* Imported rb_root_cached struct from Linux
* Implemented several dma fence functions

Co-authored-by: François Tigeot <ftigeot@wolfpond.org>
Co-authored-by: Matthew Dillon <dillon@apollo.backplane.com>
199 files changed:
sys/dev/drm/amd/amdgpu/Makefile
sys/dev/drm/amd/amdgpu/amdgpu.h
sys/dev/drm/amd/amdgpu/amdgpu_acpi.c
sys/dev/drm/amd/amdgpu/amdgpu_amdkfd.c
sys/dev/drm/amd/amdgpu/amdgpu_amdkfd.h
sys/dev/drm/amd/amdgpu/amdgpu_atombios.c
sys/dev/drm/amd/amdgpu/amdgpu_atombios.h
sys/dev/drm/amd/amdgpu/amdgpu_bios.c
sys/dev/drm/amd/amdgpu/amdgpu_bo_list.c
sys/dev/drm/amd/amdgpu/amdgpu_cgs.c
sys/dev/drm/amd/amdgpu/amdgpu_connectors.c
sys/dev/drm/amd/amdgpu/amdgpu_cs.c
sys/dev/drm/amd/amdgpu/amdgpu_ctx.c
sys/dev/drm/amd/amdgpu/amdgpu_device.c
sys/dev/drm/amd/amdgpu/amdgpu_dpm.h
sys/dev/drm/amd/amdgpu/amdgpu_drv.c
sys/dev/drm/amd/amdgpu/amdgpu_encoders.c
sys/dev/drm/amd/amdgpu/amdgpu_fb.c
sys/dev/drm/amd/amdgpu/amdgpu_fence.c
sys/dev/drm/amd/amdgpu/amdgpu_gem.c
sys/dev/drm/amd/amdgpu/amdgpu_gfx.c
sys/dev/drm/amd/amdgpu/amdgpu_gmc.h
sys/dev/drm/amd/amdgpu/amdgpu_gtt_mgr.c
sys/dev/drm/amd/amdgpu/amdgpu_i2c.c
sys/dev/drm/amd/amdgpu/amdgpu_ids.c
sys/dev/drm/amd/amdgpu/amdgpu_ids.h
sys/dev/drm/amd/amdgpu/amdgpu_ih.c
sys/dev/drm/amd/amdgpu/amdgpu_irq.c
sys/dev/drm/amd/amdgpu/amdgpu_kms.c
sys/dev/drm/amd/amdgpu/amdgpu_mn.c
sys/dev/drm/amd/amdgpu/amdgpu_mode.h
sys/dev/drm/amd/amdgpu/amdgpu_object.c
sys/dev/drm/amd/amdgpu/amdgpu_pm.c
sys/dev/drm/amd/amdgpu/amdgpu_prime.c
sys/dev/drm/amd/amdgpu/amdgpu_psp.c
sys/dev/drm/amd/amdgpu/amdgpu_queue_mgr.c
sys/dev/drm/amd/amdgpu/amdgpu_ring.c
sys/dev/drm/amd/amdgpu/amdgpu_ring.h
sys/dev/drm/amd/amdgpu/amdgpu_sa.c
sys/dev/drm/amd/amdgpu/amdgpu_sched.c
sys/dev/drm/amd/amdgpu/amdgpu_trace.h
sys/dev/drm/amd/amdgpu/amdgpu_ttm.c
sys/dev/drm/amd/amdgpu/amdgpu_ttm.h
sys/dev/drm/amd/amdgpu/amdgpu_ucode.c
sys/dev/drm/amd/amdgpu/amdgpu_uvd.c
sys/dev/drm/amd/amdgpu/amdgpu_vce.c
sys/dev/drm/amd/amdgpu/amdgpu_vce.h
sys/dev/drm/amd/amdgpu/amdgpu_vcn.c
sys/dev/drm/amd/amdgpu/amdgpu_virt.c
sys/dev/drm/amd/amdgpu/amdgpu_virt.h
sys/dev/drm/amd/amdgpu/amdgpu_vm.c
sys/dev/drm/amd/amdgpu/amdgpu_vram_mgr.c
sys/dev/drm/amd/amdgpu/atom.c
sys/dev/drm/amd/amdgpu/atom.h
sys/dev/drm/amd/amdgpu/atombios_encoders.c
sys/dev/drm/amd/amdgpu/dce_v10_0.c
sys/dev/drm/amd/amdgpu/dce_v11_0.c
sys/dev/drm/amd/amdgpu/dce_virtual.c
sys/dev/drm/amd/amdgpu/gfx_v8_0.c
sys/dev/drm/amd/amdgpu/gfx_v9_0.c
sys/dev/drm/amd/amdgpu/gmc_v7_0.c
sys/dev/drm/amd/amdgpu/gmc_v8_0.c
sys/dev/drm/amd/amdgpu/gmc_v9_0.c
sys/dev/drm/amd/amdgpu/psp_v10_0.c
sys/dev/drm/amd/amdgpu/psp_v3_1.c
sys/dev/drm/amd/amdgpu/sdma_v2_4.c
sys/dev/drm/amd/amdgpu/sdma_v3_0.c
sys/dev/drm/amd/amdgpu/sdma_v4_0.c
sys/dev/drm/amd/amdgpu/soc15.c
sys/dev/drm/amd/amdgpu/uvd_v5_0.c
sys/dev/drm/amd/amdgpu/uvd_v6_0.c
sys/dev/drm/amd/amdgpu/uvd_v7_0.c
sys/dev/drm/amd/amdgpu/vce_v3_0.c
sys/dev/drm/amd/amdgpu/vce_v4_0.c
sys/dev/drm/amd/amdgpu/vcn_v1_0.c
sys/dev/drm/amd/amdgpu/vega10_ih.c
sys/dev/drm/amd/amdgpu/vi.c
sys/dev/drm/amd/display/amdgpu_dm/amdgpu_dm.c
sys/dev/drm/amd/display/amdgpu_dm/amdgpu_dm.h
sys/dev/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
sys/dev/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c
sys/dev/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
sys/dev/drm/amd/display/amdgpu_dm/amdgpu_dm_pp_smu.c
sys/dev/drm/amd/display/dc/basics/conversion.c
sys/dev/drm/amd/display/dc/basics/vector.c
sys/dev/drm/amd/display/dc/bios/bios_parser.c
sys/dev/drm/amd/display/dc/calcs/bw_fixed.c
sys/dev/drm/amd/display/dc/calcs/dcn_calcs.c
sys/dev/drm/amd/display/dc/core/dc_debug.c
sys/dev/drm/amd/display/dc/core/dc_hw_sequencer.c
sys/dev/drm/amd/display/dc/core/dc_link_ddc.c
sys/dev/drm/amd/display/dc/core/dc_surface.c
sys/dev/drm/amd/display/dc/dc_helper.c
sys/dev/drm/amd/display/dc/dc_stream.h
sys/dev/drm/amd/display/dc/dce/dce_aux.c
sys/dev/drm/amd/display/dc/dce/dce_dmcu.c
sys/dev/drm/amd/display/dc/dce100/dce100_resource.c
sys/dev/drm/amd/display/dc/dce110/dce110_compressor.c
sys/dev/drm/amd/display/dc/dce110/dce110_hw_sequencer.c
sys/dev/drm/amd/display/dc/dce110/dce110_hw_sequencer.h
sys/dev/drm/amd/display/dc/dce110/dce110_mem_input_v.c
sys/dev/drm/amd/display/dc/dce110/dce110_resource.c
sys/dev/drm/amd/display/dc/dce112/dce112_resource.c
sys/dev/drm/amd/display/dc/dce120/dce120_hw_sequencer.c
sys/dev/drm/amd/display/dc/dce120/dce120_resource.c
sys/dev/drm/amd/display/dc/dce120/dce120_timing_generator.c
sys/dev/drm/amd/display/dc/dce80/dce80_hw_sequencer.c
sys/dev/drm/amd/display/dc/dce80/dce80_resource.c
sys/dev/drm/amd/display/dc/dcn10/dcn10_dpp.c
sys/dev/drm/amd/display/dc/dcn10/dcn10_dpp.h
sys/dev/drm/amd/display/dc/dcn10/dcn10_dpp_dscl.c
sys/dev/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c
sys/dev/drm/amd/display/dc/dcn10/dcn10_opp.c
sys/dev/drm/amd/display/dc/dcn10/dcn10_resource.c
sys/dev/drm/amd/display/dc/gpio/diagnostics/hw_factory_diag.c
sys/dev/drm/amd/display/dc/gpio/diagnostics/hw_translate_diag.c
sys/dev/drm/amd/display/dc/gpio/hw_factory.h
sys/dev/drm/amd/display/dc/i2caux/dce100/i2caux_dce100.c
sys/dev/drm/amd/display/dc/i2caux/dce120/i2caux_dce120.c
sys/dev/drm/amd/display/dc/i2caux/dce80/i2c_sw_engine_dce80.c
sys/dev/drm/amd/display/dc/i2caux/dcn10/i2caux_dcn10.c
sys/dev/drm/amd/display/dc/i2caux/i2caux.h
sys/dev/drm/amd/display/dc/inc/bw_fixed.h
sys/dev/drm/amd/display/dc/irq/dcn10/irq_service_dcn10.c
sys/dev/drm/amd/display/dc/irq/irq_service.c
sys/dev/drm/amd/display/include/logger_types.h
sys/dev/drm/amd/display/modules/color/color_gamma.c
sys/dev/drm/amd/powerplay/amd_powerplay.c
sys/dev/drm/amd/powerplay/hwmgr/ppatomctrl.c
sys/dev/drm/amd/powerplay/hwmgr/ppevvmath.h
sys/dev/drm/amd/powerplay/hwmgr/smu7_hwmgr.c
sys/dev/drm/amd/powerplay/hwmgr/smu8_hwmgr.c
sys/dev/drm/amd/powerplay/hwmgr/vega10_hwmgr.c
sys/dev/drm/amd/powerplay/hwmgr/vega10_powertune.c
sys/dev/drm/amd/powerplay/hwmgr/vega10_processpptables.c
sys/dev/drm/amd/powerplay/hwmgr/vega10_thermal.c
sys/dev/drm/amd/powerplay/hwmgr/vega12_hwmgr.c
sys/dev/drm/amd/powerplay/hwmgr/vega12_processpptables.c
sys/dev/drm/amd/powerplay/hwmgr/vega12_thermal.c
sys/dev/drm/amd/powerplay/inc/hwmgr.h
sys/dev/drm/amd/powerplay/smumgr/ci_smumgr.c
sys/dev/drm/amd/powerplay/smumgr/iceland_smumgr.c
sys/dev/drm/amd/powerplay/smumgr/polaris10_smumgr.c
sys/dev/drm/amd/powerplay/smumgr/smu10_smumgr.c
sys/dev/drm/amd/powerplay/smumgr/smu7_smumgr.c
sys/dev/drm/amd/powerplay/smumgr/smu8_smumgr.c
sys/dev/drm/amd/powerplay/smumgr/smu9_smumgr.c
sys/dev/drm/amd/powerplay/smumgr/tonga_smumgr.c
sys/dev/drm/amd/powerplay/smumgr/vega10_smumgr.c
sys/dev/drm/amd/powerplay/smumgr/vega12_smumgr.c
sys/dev/drm/amd/powerplay/smumgr/vegam_smumgr.c
sys/dev/drm/drm/Makefile
sys/dev/drm/drm_auth.c
sys/dev/drm/drm_connector.c
sys/dev/drm/drm_dragonfly.c
sys/dev/drm/drm_drv.c
sys/dev/drm/drm_fb_helper.c
sys/dev/drm/drm_file.c
sys/dev/drm/drm_gem_framebuffer_helper.c [new file with mode: 0644]
sys/dev/drm/drm_ioctl.c
sys/dev/drm/drm_scatter.c
sys/dev/drm/drm_vm.c
sys/dev/drm/include/asm-generic/atomic-long.h
sys/dev/drm/include/asm/atomic64_64.h
sys/dev/drm/include/drm/drmP.h
sys/dev/drm/include/drm/drm_atomic.h
sys/dev/drm/include/drm/drm_connector.h
sys/dev/drm/include/drm/drm_fb_helper.h
sys/dev/drm/include/drm/drm_gem_framebuffer_helper.h [new file with mode: 0644]
sys/dev/drm/include/drm/gpu_scheduler.h
sys/dev/drm/include/linux/bitmap.h
sys/dev/drm/include/linux/dma-fence-array.h
sys/dev/drm/include/linux/dma-fence.h
sys/dev/drm/include/linux/ioport.h
sys/dev/drm/include/linux/kernel.h
sys/dev/drm/include/linux/kfifo.h
sys/dev/drm/include/linux/list.h
sys/dev/drm/include/linux/mm.h
sys/dev/drm/include/linux/module.h
sys/dev/drm/include/linux/pci.h
sys/dev/drm/include/linux/pfn_t.h
sys/dev/drm/include/linux/preempt.h
sys/dev/drm/include/linux/printk.h
sys/dev/drm/include/linux/rbtree.h
sys/dev/drm/include/linux/sched.h
sys/dev/drm/include/linux/wait.h
sys/dev/drm/include/uapi/linux/pci.h
sys/dev/drm/include/uapi/linux/pci_regs.h
sys/dev/drm/kconfig.h
sys/dev/drm/linux_compat.c
sys/dev/drm/linux_dma.c
sys/dev/drm/linux_fence-array.c [new file with mode: 0644]
sys/dev/drm/linux_fence.c
sys/dev/drm/linux_reservation.c
sys/dev/drm/linux_shmem.c
sys/dev/drm/linux_vmalloc.c
sys/dev/drm/scheduler/gpu_scheduler.c
sys/dev/drm/scheduler/gpu_scheduler_trace.h
sys/dev/drm/scheduler/sched_fence.c