OpenCloudOS-Kernel/drivers/gpu/drm
Chris Wilson e3ed90b822 drm/i915/gt: Drain the breadcrumbs just once
Matthew Brost pointed out that the while-loop on a shared breadcrumb was
inherently fraught with danger as it competed with the other users of
the breadcrumbs. However, in order to completely drain the re-arming irq
worker, the while-loop is a necessity, despite my optimism that we could
force cancellation with a couple of irq_work invocations.

Given that we can't merely drop the while-loop, use an activity counter on
the breadcrumbs to detect when we are parking the breadcrumbs for the
last time.

Based on a patch by Matthew Brost.

Reported-by: Matthew Brost <matthew.brost@intel.com>
Suggested-by: Matthew Brost <matthew.brost@intel.com>
Fixes: 9d5612ca16 ("drm/i915/gt: Defer enabling the breadcrumb interrupt to after submission")
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Cc: Matthew Brost <matthew.brost@intel.com>
Reviewed-by: Matthew Brost <matthew.brost@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20201217091524.10258-1-chris@chris-wilson.co.uk
2020-12-17 19:56:17 +00:00
..
amd drm/amdgpu/ttm: use multihop 2020-11-11 11:11:20 +10:00
arc drm/atomic: Pass the full state to CRTC atomic enable/disable 2020-10-09 09:55:59 +02:00
arm drm: Use state helper instead of CRTC state pointer 2020-11-10 12:41:06 +01:00
armada drm: Use state helper instead of CRTC state pointer 2020-11-10 12:41:06 +01:00
aspeed drm/<drivers>: Constify struct drm_driver 2020-11-06 10:31:26 +01:00
ast drm: Use state helper instead of CRTC state pointer 2020-11-10 12:41:06 +01:00
atmel-hlcdc drm/<drivers>: Constify struct drm_driver 2020-11-06 10:31:26 +01:00
bochs drm/fb_helper: Support framebuffers in I/O memory 2020-11-09 09:20:00 +01:00
bridge drm/bridge: lvds-codec: Use dev_err_probe for error handling 2020-11-08 15:45:55 +01:00
etnaviv drm/gem: Use struct dma_buf_map in GEM vmap ops and convert GEM backends 2020-11-09 09:19:24 +01:00
exynos drm/exynos: Remove empty exynos_drm_gem_prime_{vmap,vunmap}() 2020-11-09 09:16:41 +01:00
fsl-dcu drm/<drivers>: Constify struct drm_driver 2020-11-06 10:31:26 +01:00
gma500 drm/gma500: Remove unused function psb_gem_get_aperture() 2020-11-09 10:00:02 +01:00
hisilicon drm/<drivers>: Constify struct drm_driver 2020-11-06 10:31:26 +01:00
i2c sound updates for 5.9 2020-08-06 14:27:31 -07:00
i810 drm/i810: make i810_flush_queue() return void 2020-09-11 10:54:17 +02:00
i915 drm/i915/gt: Drain the breadcrumbs just once 2020-12-17 19:56:17 +00:00
imx Merge drm/drm-next into drm-misc-next 2020-11-10 17:11:37 +01:00
ingenic drm/ingenic: ipu: Search for scaling coefs up to 102% of the screen 2020-11-11 11:47:11 +00:00
kmb drm/Kconfig: rename keembay config 2020-11-13 14:53:34 +10:00
lib
lima drm/gem: Use struct dma_buf_map in GEM vmap ops and convert GEM backends 2020-11-09 09:19:24 +01:00
mcde drm/<drivers>: Constify struct drm_driver 2020-11-06 10:31:26 +01:00
mediatek drm: Use state helper instead of CRTC state pointer 2020-11-10 12:41:06 +01:00
meson drm/<drivers>: Constify struct drm_driver 2020-11-06 10:31:26 +01:00
mga drm/mga/mga_state: Remove unused variable 'buf_priv' 2020-11-06 23:19:07 +01:00
mgag200 drm/gem: Use struct dma_buf_map in GEM vmap ops and convert GEM backends 2020-11-09 09:19:24 +01:00
msm drm/msm: Use struct dma_buf_map in GEM vmap ops 2020-11-10 10:38:57 +01:00
mxsfb drm: mxsfb: Implement .format_mod_supported 2020-11-10 15:22:28 +01:00
nouveau Merge branch 'linux-5.11' of git://github.com/skeggsb/linux into drm-next 2020-11-16 07:25:46 +10:00
omapdrm drm/omap: Fix runtime PM imbalance on error 2020-11-10 14:52:30 +02:00
panel drm/panel: simple: Add flags to boe_nv133fhm_n61 2020-11-09 08:15:03 +01:00
panfrost Merge drm/drm-next into drm-misc-next 2020-11-10 17:11:37 +01:00
pl111 drm/cma-helper: Make default object functions the default 2020-11-09 09:23:03 +01:00
qxl drm/ttm: add multihop infrastrucutre (v3) 2020-11-11 11:11:03 +10:00
r128 drm/r128/ati_pcigart: Source file headers are not good candidates for kernel-doc 2020-11-06 23:18:52 +01:00
radeon drm/radeon/ttm: use multihop 2020-11-11 11:12:03 +10:00
rcar-du drm/<drivers>: Constify struct drm_driver 2020-11-06 10:31:26 +01:00
rockchip drm: Use state helper instead of CRTC state pointer 2020-11-10 12:41:06 +01:00
savage treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
scheduler drm-misc-next for 5.11: 2020-11-04 11:49:10 +10:00
selftests drm/mst: Add support for QUERY_STREAM_ENCRYPTION_STATUS MST sideband message 2020-09-01 13:02:33 +05:30
shmobile drm/<drivers>: Constify struct drm_driver 2020-11-06 10:31:26 +01:00
sis
sti drm/<drivers>: Constify struct drm_driver 2020-11-06 10:31:26 +01:00
stm drm/<drivers>: Constify struct drm_driver 2020-11-06 10:31:26 +01:00
sun4i drm/<drivers>: Constify struct drm_driver 2020-11-06 10:31:26 +01:00
tdfx
tegra drm: Use state helper instead of CRTC state pointer 2020-11-10 12:41:06 +01:00
tidss drm/tidss: use devm_platform_ioremap_resource_byname 2020-11-10 14:34:16 +02:00
tilcdc drm/<drivers>: Constify struct drm_driver 2020-11-06 10:31:26 +01:00
tiny drm/gem: Use struct dma_buf_map in GEM vmap ops and convert GEM backends 2020-11-09 09:19:24 +01:00
ttm drm/ttm: add multihop infrastrucutre (v3) 2020-11-11 11:11:03 +10:00
tve200 drm/<drivers>: Constify struct drm_driver 2020-11-06 10:31:26 +01:00
udl drm/gem: Use struct dma_buf_map in GEM vmap ops and convert GEM backends 2020-11-09 09:19:24 +01:00
v3d drm/<drivers>: Constify struct drm_driver 2020-11-06 10:31:26 +01:00
vboxvideo drm/gem: Use struct dma_buf_map in GEM vmap ops and convert GEM backends 2020-11-09 09:19:24 +01:00
vc4 Merge drm/drm-next into drm-misc-next 2020-11-10 17:11:37 +01:00
vgem drm/vgem: replace idr_init() by idr_init_base() 2020-11-10 15:22:28 +01:00
via drm/via: reduce no need mutex_lock area 2020-10-17 10:10:24 +02:00
virtio drm: Use state helper instead of CRTC state pointer 2020-11-10 12:41:06 +01:00
vkms drm/gem: Use struct dma_buf_map in GEM vmap ops and convert GEM backends 2020-11-09 09:19:24 +01:00
vmwgfx drm/ttm: add multihop infrastrucutre (v3) 2020-11-11 11:11:03 +10:00
xen drm/gem: Use struct dma_buf_map in GEM vmap ops and convert GEM backends 2020-11-09 09:19:24 +01:00
xlnx drm/<drivers>: Constify struct drm_driver 2020-11-06 10:31:26 +01:00
zte drm/<drivers>: Constify struct drm_driver 2020-11-06 10:31:26 +01:00
Kconfig drm/gem: Use struct dma_buf_map in GEM vmap ops and convert GEM backends 2020-11-09 09:19:24 +01:00
Makefile drm/kmb: Build files for KeemBay Display driver 2020-11-05 19:20:38 +01:00
drm_agpsupport.c
drm_atomic.c drm/atomic: document and enforce rules around "spurious" EBUSY 2020-10-08 11:30:03 +02:00
drm_atomic_helper.c drm/atomic: Pass the full state to CRTC atomic begin and flush 2020-11-02 12:37:49 +01:00
drm_atomic_state_helper.c drm/atomic-helper: reset vblank on crtc reset 2020-07-02 20:25:51 +02:00
drm_atomic_uapi.c drm: Introduce plane and CRTC scaling filter properties 2020-10-21 12:19:54 +03:00
drm_auth.c drm/auth: make drm_{set,drop}master_ioctl symmetrical 2020-06-15 14:49:50 +01:00
drm_blend.c drm: Introduce plane and CRTC scaling filter properties 2020-10-21 12:19:54 +03:00
drm_bridge.c drm: bridge: Pass drm_display_info to drm_bridge_funcs .mode_valid() 2020-06-23 19:53:27 +02:00
drm_bridge_connector.c gpu/drm: delete same check in if condition 2020-11-02 14:04:53 +01:00
drm_bufs.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
drm_cache.c drm: core: fix common struct sg_table related issues 2020-09-10 08:17:48 +02:00
drm_client.c drm/gem: Store client buffer mappings as struct dma_buf_map 2020-11-09 09:19:45 +01:00
drm_client_modeset.c drm: Nuke mode->vrefresh 2020-05-27 14:31:42 +03:00
drm_color_mgmt.c drm: unify formatting for color management documentation 2020-11-04 17:47:57 +01:00
drm_connector.c drm: document that user-space should avoid parsing EDIDs 2020-10-22 13:49:14 +02:00
drm_context.c
drm_crtc.c drm: Introduce plane and CRTC scaling filter properties 2020-10-21 12:19:54 +03:00
drm_crtc_helper.c drm : Insert blank lines after declarations. 2020-07-02 15:26:00 +02:00
drm_crtc_helper_internal.h drm/probe_helper: Add drm_connector_helper_funcs.mode_valid_ctx 2020-07-13 13:29:20 -04:00
drm_crtc_internal.h drm: Introduce plane and CRTC scaling filter properties 2020-10-21 12:19:54 +03:00
drm_damage_helper.c
drm_debugfs.c drm/debug: Expose connector VRR monitor range via debugfs 2020-06-25 15:47:14 -07:00
drm_debugfs_crc.c drm/crc-debugfs: Fix memleak in crc_control_write 2020-09-01 09:45:44 +02:00
drm_dma.c
drm_dp_aux_dev.c drm/dp_aux_dev: check aux_dev before use in drm_dp_aux_dev_get_by_minor() 2020-10-15 13:58:54 -04:00
drm_dp_cec.c
drm_dp_dual_mode_helper.c
drm_dp_helper.c Merge tag 'drm-intel-next-queued-2020-11-03' of git://anongit.freedesktop.org/drm/drm-intel into drm-next 2020-11-04 12:17:34 +10:00
drm_dp_mst_topology.c Revert "drm/dp_mst: Retrieve extended DPCD caps for topology manager" 2020-11-10 12:41:01 -05:00
drm_dp_mst_topology_internal.h
drm_drv.c drm: Allow const struct drm_driver 2020-11-06 10:31:26 +01:00
drm_dsc.c
drm_dumb_buffers.c
drm_edid.c drm/edid: Fix uninitialized variable in drm_cvt_modes() 2020-11-06 13:51:04 -05:00
drm_edid_load.c
drm_encoder.c
drm_encoder_slave.c drm: encoder_slave: use new I2C API 2020-06-19 09:20:21 +02:00
drm_fb_cma_helper.c
drm_fb_helper.c drm/fb_helper: Use min_t() to handle size_t and unsigned long 2020-11-10 10:38:16 +01:00
drm_file.c drm: Compile out legacy chunks from struct drm_device 2020-11-06 10:31:26 +01:00
drm_flip_work.c
drm_format_helper.c drm/format-helper: Add drm_fb_swab() 2020-05-26 13:33:08 +02:00
drm_fourcc.c drm/fourcc: Add AXBXGXRX106106106106 format 2020-10-20 20:51:42 +01:00
drm_framebuffer.c gpu/drm: cleanup coding style a bit 2020-09-09 11:45:18 +02:00
drm_gem.c drm/gem: Update internal GEM vmap/vunmap interfaces to use struct dma_buf_map 2020-11-09 09:19:36 +01:00
drm_gem_cma_helper.c drm/cma-helper: Make default object functions the default 2020-11-09 09:23:03 +01:00
drm_gem_framebuffer_helper.c drm: remove _unlocked suffix in drm_gem_object_put_unlocked 2020-05-19 22:31:31 +01:00
drm_gem_shmem_helper.c drm/gem: Use struct dma_buf_map in GEM vmap ops and convert GEM backends 2020-11-09 09:19:24 +01:00
drm_gem_ttm_helper.c drm/ttm: Add vmap/vunmap to TTM and TTM GEM helpers 2020-11-09 09:17:36 +01:00
drm_gem_vram_helper.c drm/ttm: add multihop infrastrucutre (v3) 2020-11-11 11:11:03 +10:00
drm_hashtab.c
drm_hdcp.c drm: Fix HDCP failures when SRM fw is missing 2020-05-05 14:01:53 -04:00
drm_internal.h drm/gem: Update internal GEM vmap/vunmap interfaces to use struct dma_buf_map 2020-11-09 09:19:36 +01:00
drm_ioc32.c drm : Insert blank lines after declarations. 2020-07-02 15:26:00 +02:00
drm_ioctl.c drm: Give irq_by_busid drm_legacy_ prefix 2020-10-21 18:05:11 +02:00
drm_irq.c drm: use drm_dev_has_vblank more 2020-05-29 12:58:11 +02:00
drm_kms_helper_common.c
drm_lease.c drm : Insert blank lines after declarations. 2020-07-02 15:26:00 +02:00
drm_legacy.h
drm_legacy_misc.c
drm_lock.c drm : Insert blank lines after declarations. 2020-07-02 15:26:00 +02:00
drm_managed.c drm/dev: Remove drm_dev_init 2020-09-21 10:45:08 +02:00
drm_memory.c
drm_mipi_dbi.c Linux 5.8 2020-08-11 11:58:31 +10:00
drm_mipi_dsi.c drm: mipi-dsi: Convert logging to drm_* functions. 2020-07-10 20:21:45 +02:00
drm_mm.c drm/mm: cleanup and improve next_hole_*_addr() 2020-06-23 15:46:40 +02:00
drm_mode_config.c drm : Insert blank lines after declarations. 2020-07-02 15:26:00 +02:00
drm_mode_object.c drm/modeset-lock: Take the modeset BKL for legacy drivers 2020-08-17 13:41:50 -04:00
drm_modes.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
drm_modeset_helper.c
drm_modeset_lock.c
drm_of.c Linux 5.8 2020-08-11 11:58:31 +10:00
drm_panel.c drm/panel: Add helper for reading DT rotation 2020-08-16 17:12:18 +02:00
drm_panel_orientation_quirks.c drm: Added orientation quirk for ASUS tablet model T103HAF 2020-08-04 11:45:23 +02:00
drm_pci.c drm: Give irq_by_busid drm_legacy_ prefix 2020-10-21 18:05:11 +02:00
drm_plane.c drm: Introduce plane and CRTC scaling filter properties 2020-10-21 12:19:54 +03:00
drm_plane_helper.c
drm_prime.c drm/gem: Update internal GEM vmap/vunmap interfaces to use struct dma_buf_map 2020-11-09 09:19:36 +01:00
drm_print.c
drm_probe_helper.c Merge tag 'drm-intel-next-2020-07-15' of git://anongit.freedesktop.org/drm/drm-intel into drm-next 2020-07-31 14:42:37 +10:00
drm_property.c
drm_rect.c
drm_scatter.c gpu/drm: remove the powerpc hack in drm_legacy_sg_alloc 2020-06-02 10:59:11 -07:00
drm_scdc_helper.c
drm_self_refresh_helper.c
drm_simple_kms_helper.c drm: Use the state pointer directly in atomic_check 2020-11-03 12:20:09 +01:00
drm_syncobj.c drm/syncobj: Tune down unordered timeline DRM_ERROR 2020-08-02 15:22:31 +02:00
drm_sysfs.c drm/connector: notify userspace on hotplug after register complete 2020-06-03 10:24:23 +02:00
drm_trace.h
drm_trace_points.c
drm_vblank.c drm: Compile out legacy chunks from struct drm_device 2020-11-06 10:31:26 +01:00
drm_vblank_work.c This tree adds the sched_set_fifo*() encapsulation APIs to remove 2020-08-06 11:55:43 -07:00
drm_vm.c drm: remove pgprot_decrypted() before calls to io_remap_pfn_range() 2020-11-10 17:19:14 +01:00
drm_vma_manager.c
drm_writeback.c drm/writeback: don't set fence->ops to default 2020-05-20 20:03:45 +02:00