drm/radeon: Update to Linux 3.17 (v2)

Operating Systems / DragonFlyBSD - François Tigeot [wolfpond.org] - 22 August 2015 15:37 UTC

Catch up with recent updates in i915kms driver. While there perform some cleaning in drm and drm/ttm too.

This smallish(1.2MB) diff between Linux v3.12..v3.17 brings few improvements for radeon cards support on DragonFly BSD.

Driver is VERY experimental even if FF 720p "Hey Mamma" looks much more pleasing to the eyes on my Xeon box.

Me being Fortran developer(who wants to run OpenCL on BSDs too) was literally throwing diffs at the fan to see what sticks on. After cleaning up the mess a bit, these features seems to behave: kms-syscons switching on R7 240 and 5770 JUNIPER; current DPorts Xorg; Xorg-next(1.17.2) + Mesa-next(glamor for radeonsi); 2D tiling now works out of the box on OLAND; glxgears/cubemap/cuberender mesa demos; firefox youtube videos(still some blinking on overlays); mpv -vo vdpau --hwdec=vdpau bsd-0088.mp4 (--vo=opengl too); UVD (decoding limited to 1080p frame streams); fragging in OpenArena maxed-out(even ttys[0-8] to quickly check mail); hdmi audio; DPM (enabled by default); gpu temperature monitoring through hw.sensors framework; automatic firmware loading.

TODO: update drm/ttm, any help would be really appreciated; ww_mutex, yep still good old "homegrown" locks;
vma, newer shrinker api; dma_buf/prime; iic/i2c rework; kldunload radeonkms; better gart sizes support; newer firmware format support; fix failing ring sync test to ring-5(UVD); check how driver supports X2 and IGP cards; better OpenCL through Clover; many more.

Thanks goes to: ftigeot@efnet for opportunity and i915 work YRabbit@efnet for extensive testing of hdmi A/V on TURKS ivadasz@efnet for temperature sensors support mneumann@efnet for testing on HAWAII

AMD for investing time and effort in opensource drivers NetBSD and Linux gpu developers

Special thanks to: everyone behind freebsd-ports-graphics/opencl (keep pushing the mngt!)

and that Sweet special girl out there.

c6f73aa drm/radeon: Update to Linux 3.17 (v2)
sys/dev/drm/drm/Makefile | 2 +-
sys/dev/drm/drm_buffer.c | 2 +-
sys/dev/drm/drm_bufs.c | 18 +-
sys/dev/drm/drm_crtc.c | 30 +-
sys/dev/drm/drm_drv.c | 9 +-
sys/dev/drm/drm_edid.c | 3 +
sys/dev/drm/drm_fb_helper.c | 47 +-
sys/dev/drm/drm_fops.c | 2 +-
sys/dev/drm/drm_ioctl.c | 4 +-
sys/dev/drm/drm_lock.c | 4 +-
sys/dev/drm/drm_vm.c | 2 +-
sys/dev/drm/i915/intel_crt.c | 2 +-
sys/dev/drm/i915/intel_display.c | 2 +-
sys/dev/drm/i915/intel_dp.c | 4 +-
sys/dev/drm/i915/intel_dsi.c | 2 +-
sys/dev/drm/i915/intel_dvo.c | 2 +-
sys/dev/drm/i915/intel_fbdev.c | 5 +-
sys/dev/drm/i915/intel_hdmi.c | 2 +-
sys/dev/drm/i915/intel_lvds.c | 2 +-
sys/dev/drm/i915/intel_sdvo.c | 10 +-
sys/dev/drm/i915/intel_tv.c | 2 +-
sys/dev/drm/include/drm/drmP.h | 44 +-
sys/dev/drm/include/drm/drm_crtc.h | 5 +
sys/dev/drm/include/drm/drm_fb_helper.h | 4 +-
sys/dev/drm/include/drm/drm_os_linux.h | 1 -
sys/dev/drm/include/drm/drm_pciids.h | 58 +-
sys/dev/drm/include/drm/ttm/ttm_bo_api.h | 5 +-
sys/dev/drm/include/drm/ttm/ttm_bo_driver.h | 14 +-
sys/dev/drm/include/drm/ttm/ttm_lock.h | 2 -
sys/dev/drm/include/drm/ttm/ttm_placement.h | 3 +
sys/dev/drm/include/linux/pci.h | 8 +
sys/dev/drm/include/uapi_drm/drm.h | 10 +-
sys/dev/drm/include/uapi_drm/radeon_drm.h | 35 +-
sys/dev/drm/radeon/Makefile | 17 +-
sys/dev/drm/radeon/atombios.h | 127 +-
sys/dev/drm/radeon/atombios_crtc.c | 421 +++++--
sys/dev/drm/radeon/atombios_dp.c | 96 +-
sys/dev/drm/radeon/atombios_encoders.c | 156 ++-
sys/dev/drm/radeon/atombios_i2c.c | 17 +-
sys/dev/drm/radeon/btc_dpm.c | 54 +-
sys/dev/drm/radeon/btcd.h | 4 +
sys/dev/drm/radeon/cayman_reg_safe.h | 2 +-
sys/dev/drm/radeon/ci_dpm.c | 219 ++--
sys/dev/drm/radeon/ci_smc.c | 41 +-
sys/dev/drm/radeon/cik.c | 1811 +++++++++++++++++++++------
sys/dev/drm/radeon/cik_sdma.c | 390 ++++--
sys/dev/drm/radeon/cikd.h | 175 ++-
sys/dev/drm/radeon/clearstate_cayman.h | 8 +-
sys/dev/drm/radeon/clearstate_ci.h | 4 +-
sys/dev/drm/radeon/clearstate_si.h | 4 +-
sys/dev/drm/radeon/cypress_dpm.c | 23 +-
sys/dev/drm/radeon/dce3_1_afmt.c | 244 ++++
sys/dev/drm/radeon/dce6_afmt.c | 124 +-
sys/dev/drm/radeon/evergreen.c | 360 ++++--
sys/dev/drm/radeon/evergreen_cs.c | 215 ++--
sys/dev/drm/radeon/evergreen_dma.c | 16 +-
sys/dev/drm/radeon/evergreen_hdmi.c | 151 ++-
sys/dev/drm/radeon/evergreen_reg.h | 4 +-
sys/dev/drm/radeon/evergreen_reg_safe.h | 2 +-
sys/dev/drm/radeon/evergreen_smc.h | 2 +-
sys/dev/drm/radeon/evergreend.h | 77 +-
sys/dev/drm/radeon/kv_dpm.c | 284 +++--
sys/dev/drm/radeon/ni.c | 367 +++---
sys/dev/drm/radeon/ni_dma.c | 270 +++-
sys/dev/drm/radeon/ni_dpm.c | 72 +-
sys/dev/drm/radeon/nid.h | 2 +
sys/dev/drm/radeon/pptable.h | 4 +-
sys/dev/drm/radeon/r100.c | 212 ++--
sys/dev/drm/radeon/r200.c | 22 +-
sys/dev/drm/radeon/r300.c | 63 +-
sys/dev/drm/radeon/r300_cmdbuf.c | 10 +-
sys/dev/drm/radeon/r420.c | 19 +-
sys/dev/drm/radeon/r500_reg.h | 1 +
sys/dev/drm/radeon/r520.c | 3 +
sys/dev/drm/radeon/r600.c | 356 ++++--
sys/dev/drm/radeon/r600_audio.c | 14 +-
sys/dev/drm/radeon/r600_cp.c | 4 +-
sys/dev/drm/radeon/r600_cs.c | 160 +--
sys/dev/drm/radeon/r600_dma.c | 54 +-
sys/dev/drm/radeon/r600_dpm.c | 103 +-
sys/dev/drm/radeon/r600_dpm.h | 4 +-
sys/dev/drm/radeon/r600_hdmi.c | 420 +++----
sys/dev/drm/radeon/r600_reg_safe.h | 2 +-
sys/dev/drm/radeon/r600d.h | 61 +-
sys/dev/drm/radeon/radeon.h | 564 ++++++---
sys/dev/drm/radeon/radeon_agp.c | 11 +-
sys/dev/drm/radeon/radeon_asic.c | 308 +++--
sys/dev/drm/radeon/radeon_asic.h | 233 +++-
sys/dev/drm/radeon/radeon_atombios.c | 240 +++-
sys/dev/drm/radeon/radeon_benchmark.c | 4 +-
sys/dev/drm/radeon/radeon_bios.c | 12 +-
sys/dev/drm/radeon/radeon_combios.c | 82 +-
sys/dev/drm/radeon/radeon_connectors.c | 437 +++++--
sys/dev/drm/radeon/radeon_cp.c | 16 +-
sys/dev/drm/radeon/radeon_cs.c | 523 ++++----
sys/dev/drm/radeon/radeon_device.c | 406 ++++--
sys/dev/drm/radeon/radeon_display.c | 652 +++++++---
sys/dev/drm/radeon/radeon_drv.c | 231 +++-
sys/dev/drm/radeon/radeon_drv.h | 10 +-
sys/dev/drm/radeon/radeon_encoders.c | 48 +-
sys/dev/drm/radeon/radeon_family.h | 3 +
sys/dev/drm/radeon/radeon_fb.c | 9 +-
sys/dev/drm/radeon/radeon_fence.c | 400 +++---
sys/dev/drm/radeon/radeon_gart.c | 930 +-------------
sys/dev/drm/radeon/radeon_gem.c | 109 +-
sys/dev/drm/radeon/radeon_gem.h | 3 -
sys/dev/drm/radeon/radeon_i2c.c | 3 +
sys/dev/drm/radeon/radeon_ib.c | 321 +++++
sys/dev/drm/radeon/radeon_irq.c | 10 +-
sys/dev/drm/radeon/radeon_irq_kms.c | 18 +-
sys/dev/drm/radeon/radeon_irq_kms.h | 4 +-
sys/dev/drm/radeon/radeon_kms.c | 211 +++-
sys/dev/drm/radeon/radeon_kms.h | 2 -
sys/dev/drm/radeon/radeon_legacy_crtc.c | 49 +
sys/dev/drm/radeon/radeon_legacy_encoders.c | 15 +-
sys/dev/drm/radeon/radeon_mem.c | 2 +-
sys/dev/drm/radeon/radeon_mode.h | 75 +-
sys/dev/drm/radeon/radeon_object.c | 251 +++-
sys/dev/drm/radeon/radeon_object.h | 15 +-
sys/dev/drm/radeon/radeon_pm.c | 367 ++++--
sys/dev/drm/radeon/radeon_prime.c | 2 +-
sys/dev/drm/radeon/radeon_ring.c | 505 ++------
sys/dev/drm/radeon/radeon_sa.c | 17 +-
sys/dev/drm/radeon/radeon_semaphore.c | 160 ++-
sys/dev/drm/radeon/radeon_state.c | 20 +-
sys/dev/drm/radeon/radeon_test.c | 72 +-
sys/dev/drm/radeon/radeon_trace.h | 132 +-
sys/dev/drm/radeon/radeon_ttm.c | 215 +++-
sys/dev/drm/radeon/radeon_ucode.h | 12 +-
sys/dev/drm/radeon/radeon_uvd.c | 122 +-
sys/dev/drm/radeon/radeon_vce.c | 774 ++++++++++++
sys/dev/drm/radeon/radeon_vm.c | 1193 ++++++++++++++++++
sys/dev/drm/radeon/reg_srcs/cayman | 4 +-
sys/dev/drm/radeon/reg_srcs/evergreen | 4 +-
sys/dev/drm/radeon/reg_srcs/r600 | 1 +
sys/dev/drm/radeon/rs400.c | 28 +-
sys/dev/drm/radeon/rs600.c | 132 +-
sys/dev/drm/radeon/rs690.c | 41 +-
sys/dev/drm/radeon/rs780_dpm.c | 21 +-
sys/dev/drm/radeon/rv515.c | 25 +-
sys/dev/drm/radeon/rv6xx_dpm.c | 23 +-
sys/dev/drm/radeon/rv770.c | 100 +-
sys/dev/drm/radeon/rv770_dma.c | 12 +-
sys/dev/drm/radeon/rv770_dpm.c | 58 +-
sys/dev/drm/radeon/rv770_dpm.h | 4 -
sys/dev/drm/radeon/rv770_smc.c | 40 +-
sys/dev/drm/radeon/rv770_smc.h | 2 -
sys/dev/drm/radeon/rv770d.h | 7 +
sys/dev/drm/radeon/si.c | 494 +++++---
sys/dev/drm/radeon/si_dma.c | 184 ++-
sys/dev/drm/radeon/si_dpm.c | 254 ++--
sys/dev/drm/radeon/si_dpm.h | 5 +
sys/dev/drm/radeon/si_smc.c | 59 +-
sys/dev/drm/radeon/sid.h | 108 +-
sys/dev/drm/radeon/sislands_smc.h | 5 +-
sys/dev/drm/radeon/sumo_dpm.c | 31 +-
sys/dev/drm/radeon/sumo_smc.c | 1 -
sys/dev/drm/radeon/trinity_dpm.c | 56 +-
sys/dev/drm/radeon/trinity_smc.c | 3 -
sys/dev/drm/radeon/uvd_v1_0.c | 20 +-
sys/dev/drm/radeon/uvd_v2_2.c | 4 +-
sys/dev/drm/radeon/uvd_v3_1.c | 4 +-
sys/dev/drm/radeon/vce_v1_0.c | 187 +++
sys/dev/drm/radeon/vce_v2_0.c | 181 +++
sys/dev/drm/ttm/ttm_bo.c | 52 +-
sys/dev/drm/ttm/ttm_bo_manager.c | 12 +-
sys/dev/drm/ttm/ttm_bo_util.c | 44 +-
sys/dev/drm/ttm/ttm_lock.c | 8 -
sys/dev/drm/ttm/ttm_page_alloc.c | 2 +-
169 files changed, 13370 insertions(+), 6260 deletions(-)

Upstream: gitweb.dragonflybsd.org


  • Share