linux_dsm_epyc7002/drivers/gpu/drm/radeon
Jerome Glisse 91cb91becf drm/radeon/kms: fix indirect buffer management V2
There is 3 different distinct states for an indirect buffer (IB) :
  1- free with no fence
  2- free with a fence
  3- non free (fence doesn't matter)
Previous code mixed case 2 & 3 in a single one leading to possible
catastrophique failure. This patch rework the handling and properly
separate each case. So when you get ib we set the ib as non free and
fence status doesn't matter. Fence become active (ie has a meaning
for the ib code) once the ib is scheduled or free. This patch also
get rid of the alloc bitmap as it was overkill, we know go through
IB pool list like in a ring buffer as the oldest IB is the first
one the will be free.

Fix :
https://bugs.freedesktop.org/show_bug.cgi?id=26438
and likely other bugs.

V2 remove the scheduled list, it's useless now, fix free ib scanning

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
2010-02-18 15:06:41 +10:00
..
reg_srcs drm/radeon/kms/r200: fix bug in CS parser 2010-01-21 08:17:27 +10:00
.gitignore drm: create gitignore file for radeon 2009-09-25 13:08:21 +10:00
atom-bits.h drm/radeon: introduce kernel modesetting for radeon hardware 2009-06-15 12:01:53 +10:00
atom-names.h drm/radeon: introduce kernel modesetting for radeon hardware 2009-06-15 12:01:53 +10:00
atom-types.h drm/radeon: introduce kernel modesetting for radeon hardware 2009-06-15 12:01:53 +10:00
atom.c drm/radeon/kms: use udelay for short delays 2010-02-18 15:00:08 +10:00
atom.h drm/radeon/kms/atom: upstream parser updates 2010-01-21 08:20:28 +10:00
atombios_crtc.c drm/radeon/kms: drop unnecessary printks. 2010-01-25 16:13:12 +10:00
atombios_dp.c drm/radeon/kms: make sure retry count increases. 2010-02-15 15:24:48 +10:00
atombios.h Merge branch 'drm-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6 2009-12-23 08:59:32 -08:00
avivod.h drm/radeon/kms: Convert RV515 to new init path and associated cleanup 2009-09-29 11:15:54 +10:00
Kconfig drm/radeon/kms: change Kconfig text to reflect the new option. 2010-02-08 15:05:58 +10:00
Makefile drm/radeon/kms: add additional safe regs for r4xx/rs6xx and r5xx 2010-01-11 13:42:27 +10:00
mkregtable.c drm/radeon: mkregtable.c: close a file before exit 2010-01-08 13:11:55 +10:00
ObjectID.h drm/radeon/kms: pull in the latest upstream ObjectID.h changes 2010-01-08 13:03:57 +10:00
r100_track.h drm/radeon/kms: allow rendering while no colorbuffer is set on r300 2009-12-23 11:14:04 +10:00
r100.c drm/radeon/kms: don't call suspend path before cleaning up GPU 2010-02-05 11:49:52 +10:00
r100d.h drm/radeon/kms: Convert R100 to new init path (V2) 2009-10-02 08:51:49 +10:00
r200.c drm/radeon/kms/r200: fix bug in CS parser 2010-01-21 08:17:13 +10:00
r300_cmdbuf.c DRM: Rename clamp variable 2009-12-23 10:04:01 +10:00
r300_reg.h drm/radeon/kms: add 3DC compression support 2009-12-23 11:14:04 +10:00
r300.c drm/radeon/kms: fix r300 vram width calculations 2010-02-05 14:00:03 +10:00
r300d.h drm/radeon/kms: Convert R300 to new init path 2009-10-02 08:51:48 +10:00
r420.c drm/radeon/kms: don't call suspend path before cleaning up GPU 2010-02-05 11:49:52 +10:00
r420d.h drm/radeon/kms: Convert RS400/RS480 to new init path & fix legacy VGA (V3) 2009-10-02 08:51:46 +10:00
r500_reg.h drm/radeon/kms: get HPD info for connectors 2009-12-08 10:46:28 +10:00
r520.c drm/radeon/kms: don't call suspend path before cleaning up GPU 2010-02-05 11:49:52 +10:00
r520d.h drm/radeon/kms: Convert R520 to new init path and associated cleanup 2009-09-29 11:15:56 +10:00
r600_audio.c drm/radeon/kms: suspend and resume audio stuff 2010-02-05 15:26:19 +10:00
r600_blit_kms.c drm/radeon/kms: fix indirect buffer management V2 2010-02-18 15:06:41 +10:00
r600_blit_shaders.c drm/radeon/kms: add r600 KMS support 2009-09-08 11:15:52 +10:00
r600_blit_shaders.h drm/radeon/kms: add r600 KMS support 2009-09-08 11:15:52 +10:00
r600_blit.c drm/radeon/r600: only assign vb after we know space is available. 2009-10-26 13:28:21 +10:00
r600_cp.c drm/radeon/kms: add r600 KMS support 2009-09-08 11:15:52 +10:00
r600_cs.c drm/radeon/kms: preface warning printk with driver name 2010-01-25 16:13:55 +10:00
r600_hdmi.c drm/radeon/kms: HDMI support for R600 KMS 2009-12-16 15:46:48 +10:00
r600_reg.h drm/radeon/kms: HDMI support for R600 KMS 2009-12-16 15:46:48 +10:00
r600.c Merge branch 'drm-radeon-linus' of ../drm-next 2010-02-11 14:03:51 +10:00
r600d.h drm/radeon: r6xx/r7xx possible security issue, system ram access 2010-01-21 08:49:32 +10:00
radeon_agp.c drm/radeon/kms: release agp on error. 2010-02-01 11:22:10 +10:00
radeon_asic.h drm/radeon/kms: fix regression rendering issue on R6XX/R7XX 2010-02-05 11:43:51 +10:00
radeon_atombios.c drm/radeon/kms: add quirk for VGA without DDC on rv730 XFX card. 2010-02-09 09:06:00 +10:00
radeon_benchmark.c drm/radeon: Skip dma copy test in benchmark if card doesn't have dma engine. 2010-02-11 13:13:25 +10:00
radeon_bios.c drm/radeon/kms: remove some misleading debugging output 2009-11-04 13:38:02 +10:00
radeon_clocks.c drm/radeon/kms: fix legacy get_engine/memory clock 2010-01-24 17:25:38 +10:00
radeon_combios.c drivers/gpu/drm/radeon/radeon_combios.c: fix warning 2010-02-05 11:47:14 +10:00
radeon_connectors.c drm/radeon/kms: don't crash if no DDC bus on VGA/DVI connector. 2010-02-09 08:54:42 +10:00
radeon_cp.c drm/radeon/kms: fix memory leak 2010-01-07 13:38:59 +10:00
radeon_cs.c drm/radeon/kms: Fix oops after radeon_cs_parser_init() failure. 2010-02-01 12:49:28 +10:00
radeon_cursor.c drm/radeon/kms/r7xx: add regs for 40 bit CUR/GRPH addresses 2009-10-26 13:28:22 +10:00
radeon_device.c drm/radeon/kms: Use radeon_agp_disable when disabling AGP 2010-01-14 11:53:55 +10:00
radeon_display.c drm/radeon/kms: don't crash if no DDC bus on VGA/DVI connector. 2010-02-09 08:54:42 +10:00
radeon_drv.c drm: convert drm_ioctl to unlocked_ioctl 2009-12-18 11:22:31 +10:00
radeon_drv.h drm/radeon/kms: Add support for interrupts on r6xx/r7xx chips (v3) 2009-12-02 14:00:06 +10:00
radeon_encoders.c drm/kms/radeon: pick digitial encoders smarter. (v3) 2010-02-01 10:13:15 +10:00
radeon_family.h drm/radeon: consolidate family flags used in pciids. 2009-09-23 10:21:00 +10:00
radeon_fb.c Merge branch 'drm-radeon-linus' of ../drm-next 2010-02-11 14:03:51 +10:00
radeon_fence.c drm/radeon/radeon_fence.c: move a dereference below the NULL test 2010-01-07 13:54:39 +10:00
radeon_fixed.h drm/radeon/kms/avivo: fix some bugs in the display bandwidth setup 2009-12-10 15:09:05 +10:00
radeon_gart.c drm/radeon/kms: Rework radeon object handling 2009-12-02 14:00:18 +10:00
radeon_gem.c drm/radeon/kms: fix regression rendering issue on R6XX/R7XX 2010-02-05 11:43:51 +10:00
radeon_i2c.c drm/radeon/kms: i2c reorg 2009-12-08 10:22:41 +10:00
radeon_ioc32.c drm: convert drm_ioctl to unlocked_ioctl 2009-12-18 11:22:31 +10:00
radeon_irq_kms.c drm/radeon/kms: Don't try to enable IRQ if we have no handler installed 2010-01-08 13:12:20 +10:00
radeon_irq.c gpu/drm/radeon/radeon_irq.c: move a dereference below a NULL test 2010-01-07 13:56:32 +10:00
radeon_kms.c drm/radeon/kms: cleanup structure and module if initialization fails 2009-12-10 15:09:07 +10:00
radeon_legacy_crtc.c drm/radeon/kms: clean up pll struct 2010-01-24 17:24:23 +10:00
radeon_legacy_encoders.c drm/radeon/kms: fix up LVDS handling on macs (v2) 2010-01-13 13:25:08 +10:00
radeon_legacy_tv.c drm/radeon: fix a couple of array index errors 2010-01-08 13:05:16 +10:00
radeon_mem.c drm: Remove memory debugging infrastructure. 2009-06-18 13:00:33 -07:00
radeon_mode.h drm/kms/radeon: pick digitial encoders smarter. (v3) 2010-02-01 10:13:15 +10:00
radeon_object.c drm/radeon/kms: make hibernate work on IGPs 2010-01-25 16:04:42 +10:00
radeon_object.h drm/radeon/kms: Return to userspace on ERESTARTSYS 2009-12-16 15:39:24 +10:00
radeon_pm.c drm/radeon/kms: init pm on all chipsets 2009-12-16 15:56:15 +10:00
radeon_reg.h drm/radeon/kms: add regs and irq tracking bits for hpd 2009-12-08 10:46:34 +10:00
radeon_ring.c drm/radeon/kms: fix indirect buffer management V2 2010-02-18 15:06:41 +10:00
radeon_state.c tree-wide: fix assorted typos all over the place 2009-12-04 15:39:55 +01:00
radeon_test.c drm/radeon: fix build on 64-bit with some compilers. 2009-12-23 10:04:02 +10:00
radeon_ttm.c Merge branch 'drm-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6 2010-01-13 16:13:57 -08:00
radeon.h drm/radeon/kms: fix indirect buffer management V2 2010-02-18 15:06:41 +10:00
rs100d.h drm/radeon/kms: Convert R100 to new init path (V2) 2009-10-02 08:51:49 +10:00
rs400.c drm/radeon/kms: rs400/480 MC setup is different than r300. 2010-02-05 13:40:16 +10:00
rs400d.h drm/radeon/kms: Convert RS400/RS480 to new init path & fix legacy VGA (V3) 2009-10-02 08:51:46 +10:00
rs600.c drm/radeon/kms: don't call suspend path before cleaning up GPU 2010-02-05 11:49:52 +10:00
rs600d.h drm/radeon/kms: add regs and irq tracking bits for hpd 2009-12-08 10:46:34 +10:00
rs690.c drm/radeon/kms: don't call suspend path before cleaning up GPU 2010-02-05 11:49:52 +10:00
rs690d.h drm/radeon/kms: Convert RS690/RS740 to new init path (V2). 2009-10-02 08:51:50 +10:00
rv200d.h drm/radeon/kms: Convert R100 to new init path (V2) 2009-10-02 08:51:49 +10:00
rv250d.h drm/radeon/kms: Convert R100 to new init path (V2) 2009-10-02 08:51:49 +10:00
rv350d.h drm/radeon/kms: Convert RS400/RS480 to new init path & fix legacy VGA (V3) 2009-10-02 08:51:46 +10:00
rv515.c drm/radeon/kms: don't call suspend path before cleaning up GPU 2010-02-05 11:49:52 +10:00
rv515d.h drm/radeon/kms: Convert RV515 to new init path and associated cleanup 2009-09-29 11:15:54 +10:00
rv770.c Merge branch 'drm-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6 2010-02-05 07:24:01 -08:00
rv770d.h drm/radeon/kms: fix vram_width calculation on r6xx/r7xx 2009-10-26 13:28:19 +10:00