linux/drivers/gpu/drm
Maarten Lankhorst 933b9b11f7 drm/i915: Always recompute watermarks when distrust_bios_wm is set, v2.
commit 4e3aed8445 upstream.

On some systems there can be a race condition in which no crtc state is
added to the first atomic commit. This results in all crtc's having a
null DDB allocation, causing a FIFO underrun on any update until the
first modeset.

Changes since v1:
- Do not take the connection_mutex, this is already done below.

Reported-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Inspired-by: Mahesh Kumar <mahesh1.kumar@intel.com>
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Fixes: 98d39494d3 ("drm/i915/gen9: Compute DDB allocation at atomic
check time (v4)")
Cc: Mahesh Kumar <mahesh1.kumar@intel.com>
Cc: Matt Roper <matthew.d.roper@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/20170531154236.27180-1-maarten.lankhorst@linux.intel.com
Reviewed-by: Mahesh Kumar <mahesh1.kumar@intel.com>
Reviewed-by: Matt Roper <matthew.d.roper@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

(cherry picked from commit 367d73d280)
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
History 2017-06-17 06:41:58 +02:00
..
amd drm/amdgpu/ci: disable mclk switching for high refresh rates (v2) 2017-06-14 15:05:55 +02:00
arc drm/arcpgu: Accommodate adv7511 switch to DRM bridge 2016-11-11 04:31:35 +03:00
arm drm: hdlcd: Fix cleanup order 2016-11-25 15:51:57 +00:00
armada Merge branch 'drm-armada-fixes' of git://git.armlinux.org.uk/~rmk/linux-arm into drm-fixes 2016-10-21 13:26:15 +10:00
ast drm/ast: Fixed system hanged if disable P2A 2017-06-17 06:41:54 +02:00
atmel-hlcdc Linux 4.8-rc8 2016-09-28 12:08:49 +10:00
bochs bugfixes for qemu (bochs, qxl and virtio-gpu) drm drivers 2016-09-28 13:23:07 +10:00
bridge drm/bridge: analogix dp: Fix runtime PM state on driver bind 2017-03-30 09:41:28 +02:00
cirrus drm/drivers: add support for using the arch wc mapping API. 2016-10-26 16:48:01 +10:00
etnaviv drm/etnaviv: fix missing unlock on error in etnaviv_gpu_submit() 2017-04-21 09:31:19 +02:00
exynos gpu/drm/exynos/exynos_hdmi - Unmap region obtained by of_iomap 2016-11-25 09:57:51 +10:00
fsl-dcu drm/fsl-dcu: disable planes before disabling CRTC 2016-11-08 17:14:08 -08:00
gma500 drm/gma500/psb: Actually use VBT mode when it is found 2017-06-07 12:07:49 +02:00
hisilicon drm: Don't swallow error codes in drm_dev_alloc() 2016-09-22 04:03:48 -07:00
i2c Revert "drm/i2c: tda998x: don't register the connector" 2016-09-23 03:29:50 -07:00
i810 drm: Mark up legacy/dri1 drivers with DRM_LEGACY 2016-08-08 10:05:22 +02:00
i915 drm/i915: Always recompute watermarks when distrust_bios_wm is set, v2. 2017-06-17 06:41:58 +02:00
imx drm/imx: imx-tve: Do not set the regulator voltage 2017-03-15 10:02:50 +08:00
mediatek drm/mediatek: fix null pointer dereference 2016-11-24 14:53:15 +08:00
mga drm/mga: remove device_is_agp callback 2017-04-12 12:41:20 +02:00
mgag200 drm/drivers: add support for using the arch wc mapping API. 2016-10-26 16:48:01 +10:00
msm drm/msm: Expose our reservation object when exporting a dmabuf. 2017-06-14 15:06:00 +02:00
nouveau drm/nouveau: Fix drm poll_helper handling 2017-06-17 06:41:54 +02:00
omapdrm drm/atomic-helper: Add NO_DISABLE_AFTER_MODESET flag support for plane commit 2016-08-29 11:29:37 +02:00
panel drm/panel: simple: Check against num_timings when setting preferred for timing 2017-01-19 20:18:06 +01:00
qxl bugfixes for qemu (bochs, qxl and virtio-gpu) drm drivers 2016-09-28 13:23:07 +10:00
r128 drm: Mark up legacy/dri1 drivers with DRM_LEGACY 2016-08-08 10:05:22 +02:00
radeon drm/radeon: Fix vram_size/visible values in DRM_RADEON_GEM_INFO ioctl 2017-06-07 12:07:48 +02:00
rcar-du drm: Don't force all planes to be added to the state due to zpos 2016-10-26 18:48:05 +02:00
rockchip drm/rockchip: analogix_dp: Refuse to enable PSR if panel doesn't support it 2016-10-04 08:23:17 +02:00
savage drm/savage: dereferencing an error pointer 2017-01-19 20:17:58 +01:00
shmobile drm/shmobile: make fbdev support really optional 2016-07-18 09:11:37 +02:00
sis drm: Mark up legacy/dri1 drivers with DRM_LEGACY 2016-08-08 10:05:22 +02:00
sti drm/sti: fix GDP size to support up to UHD resolution 2017-05-14 14:00:13 +02:00
sun4i drm/sun4i: Add compatible string for A31/A31s TCON (timing controller) 2017-04-12 12:41:15 +02:00
tdfx drm: Mark up legacy/dri1 drivers with DRM_LEGACY 2016-08-08 10:05:22 +02:00
tegra drm/tegra: dpaux: Fix error handling 2017-01-19 20:17:58 +01:00
tilcdc Second attempt for 3rd drm/tilcdc pull request for v4.9. 2016-09-28 11:17:26 +10:00
ttm drm/ttm: fix use-after-free races in vm fault handling 2017-05-14 14:00:22 +02:00
udl drm/udl: make control msg static const. (v2) 2016-11-11 08:57:34 +10:00
vc4 drm/vc4: Allocate the right amount of space for boot-time CRTC state. 2017-04-08 09:30:35 +02:00
vgem drm: Don't swallow error codes in drm_dev_alloc() 2016-09-22 04:03:48 -07:00
via mm: replace get_user_pages() write/force parameters with gup_flags 2016-10-19 08:11:43 -07:00
virtio virtio-gpu: fix vblank events 2016-11-03 10:14:19 +10:00
vmwgfx drm/vmwgfx: Make sure backup_handle is always valid 2017-06-14 15:06:04 +02:00
ati_pcigart.c drm: split ati_pcigart.h out of drmP.h 2014-09-12 14:11:14 +10:00
drm_agpsupport.c drm: Used DRM_LEGACY for all legacy functions 2016-08-08 10:05:23 +02:00
drm_atomic.c drm/atomic: Fix double free in drm_atomic_state_default_clear 2017-02-14 15:25:36 -08:00
drm_atomic_helper.c drm: reference count event->completion 2017-03-30 09:41:28 +02:00
drm_auth.c drm: Used DRM_LEGACY for all legacy functions 2016-08-08 10:05:23 +02:00
drm_blend.c drm/doc: Polish plane composition property docs 2016-09-22 00:04:02 -07:00
drm_bridge.c drm: Extract drm_bridge.h 2016-09-19 15:04:15 +02:00
drm_bufs.c GPU-DRM: Replace a kzalloc() call by kcalloc() in drm_legacy_addbufs_sg() 2016-09-21 13:24:27 +02:00
drm_cache.c drm: Restore double clflush on the last partial cacheline 2016-07-12 15:57:13 +02:00
drm_color_mgmt.c drm/doc: Document color space handling 2016-09-22 00:04:03 -07:00
drm_connector.c drm: Don't race connector registration 2017-06-17 06:41:53 +02:00
drm_context.c drm: Used DRM_LEGACY for all legacy functions 2016-08-08 10:05:23 +02:00
drm_crtc.c drm: Extract drm_color_mgmt.[hc] 2016-09-22 00:04:02 -07:00
drm_crtc_helper.c drm/kms-helpers: Extract drm_modeset_helper.[hc] 2016-08-16 16:10:19 +02:00
drm_crtc_helper_internal.h drm/fb-helper: Fix sparse warnings 2016-09-19 16:45:15 +02:00
drm_crtc_internal.h drm: Extract drm_color_mgmt.[hc] 2016-09-22 00:04:02 -07:00
drm_debugfs.c gpu: use %pd 2016-08-07 23:38:48 -04:00
drm_dma.c drm: Used DRM_LEGACY for all legacy functions 2016-08-08 10:05:23 +02:00
drm_dp_aux_dev.c drm: Don't export dp-aux devnode functions 2016-08-16 18:49:26 +02:00
drm_dp_dual_mode_helper.c drm: Add helper for DP++ adaptors 2016-05-23 11:10:46 +03:00
drm_dp_helper.c Merge tag 'drm-for-v4.9' of git://people.freedesktop.org/~airlied/linux 2016-10-11 18:12:22 -07:00
drm_dp_mst_topology.c drm/dp/mst: fix kernel oops when turning off secondary monitor 2017-02-23 17:44:36 +01:00
drm_drv.c drm: Don't race connector registration 2017-06-17 06:41:53 +02:00
drm_edid.c drm/edid: Add 10 bpc quirk for LGD 764 panel in HP zBook 17 G2 2017-05-25 15:44:48 +02:00
drm_edid_load.c Fix annoyingly awkward typo in drm_edid_load.c 2016-05-30 09:59:28 +02:00
drm_encoder.c drm: Fix typo in encoder docs 2016-09-21 13:33:50 +02:00
drm_encoder_slave.c drm: fixes when i2c encoder slave mode_fixup is null. 2016-02-10 15:14:49 +01:00
drm_fb_cma_helper.c Merge branch 'for-next' of http://git.agner.ch/git/linux-drm-fsl-dcu into drm-next 2016-07-02 16:21:35 +10:00
drm_fb_helper.c drm: Cancel drm_fb_helper_resume_work on unload 2017-03-15 10:02:50 +08:00
drm_flip_work.c drm/core: get rid of -Iinclude/drm 2015-05-13 11:28:22 +02:00
drm_fops.c drm: reference count event->completion 2017-03-30 09:41:28 +02:00
drm_fourcc.c drm: move drm_mode_legacy_fb_format to drm_fourcc.c 2016-08-29 15:37:28 +02:00
drm_framebuffer.c drm: Extract drm_plane.[hc] 2016-09-22 00:01:56 -07:00
drm_gem.c drm: use drm_file to tag vm-bos 2016-09-19 11:22:08 +02:00
drm_gem_cma_helper.c drm: Wrap direct calls to driver->gem_free_object from CMA 2016-06-01 15:00:28 +10:00
drm_global.c drm: modify drm_global_item_ref to avoid two times of writing ref->object 2016-09-14 15:10:29 -04:00
drm_hashtab.c drm: fix signed integer overflow 2016-09-06 13:56:41 -04:00
drm_info.c drm: Print device information again in debugfs 2016-10-17 16:20:53 +10:00
drm_internal.h drm: drop obsolete drm_core.h 2016-09-19 13:57:38 +02:00
drm_ioc32.c drm: drop obsolete drm_core.h 2016-09-19 13:57:38 +02:00
drm_ioctl.c drm: Don't call drm_for_each_crtc with a non-KMS driver 2016-11-30 10:13:00 +01:00
drm_irq.c drm: avoid uninitialized timestamp use in wait_vblank 2017-01-19 20:18:06 +01:00
drm_kms_helper_common.c drm: Don't export dp-aux devnode functions 2016-08-16 18:49:26 +02:00
drm_legacy.h drm: Hide hw.lock cleanup in filp->release better 2016-06-16 10:16:37 +02:00
drm_lock.c drm: Used DRM_LEGACY for all legacy functions 2016-08-08 10:05:23 +02:00
drm_memory.c drm: Fix broken use of _PAGE_NO_CACHE on powerpc 2016-07-12 13:20:39 +02:00
drm_mipi_dsi.c drm/dsi: Implement DCS set/get display brightness 2016-08-24 13:34:00 +02:00
drm_mm.c drm: Initialise drm_mm.head_node.allocated 2017-01-19 20:18:06 +01:00
drm_mode_object.c drm: Move property validation to a helper, v2. 2016-09-12 10:32:49 -04:00
drm_modes.c drm: Fix broken VT switch with video=1366x768 option 2017-02-01 08:33:02 +01:00
drm_modeset_helper.c drm/kms-helpers: Extract drm_modeset_helper.[hc] 2016-08-16 16:10:19 +02:00
drm_modeset_lock.c drm/doc: Switch to sphinx/rst fixed-width quoting 2016-06-03 20:58:24 +02:00
drm_of.c drm: add drm_of_encoder_active_endpoint helpers 2016-02-10 14:19:21 +01:00
drm_panel.c drm/panel: Flesh out kerneldoc 2016-05-06 16:04:48 +02:00
drm_pci.c drm: Don't swallow error codes in drm_dev_alloc() 2016-09-22 04:03:48 -07:00
drm_plane.c drm: Undo damage to page_flip_ioctl 2016-10-04 12:53:12 +10:00
drm_plane_helper.c drm: Fix kerneldoc in drm_plane_helper.c 2016-08-16 18:50:04 +02:00
drm_platform.c drm: Don't swallow error codes in drm_dev_alloc() 2016-09-22 04:03:48 -07:00
drm_prime.c drm: Fix up kerneldoc for new drm_gem_dmabuf_export() 2016-10-10 11:19:42 +02:00
drm_probe_helper.c drm: Schedule the output_poll_work with 1s delay if we have delayed event 2017-02-01 08:33:02 +01:00
drm_property.c Revert "drm: Unify handling of blob and object properties" 2016-09-07 13:24:22 +03:00
drm_rect.c drm: Warn about negative sizes when calculating scale factor 2016-08-08 14:17:56 -04:00
drm_scatter.c drm: Used DRM_LEGACY for all legacy functions 2016-08-08 10:05:23 +02:00
drm_simple_kms_helper.c drm: simple_kms_helper: Add prepare_fb and cleanup_fb hooks 2016-10-05 15:18:02 +02:00
drm_sysfs.c drm: drop obsolete drm_core.h 2016-09-19 13:57:38 +02:00
drm_trace.h tracing/drm: Remove unused TRACE_SYSTEM_STRING define 2015-04-07 12:29:23 -04:00
drm_trace_points.c UAPI: (Scripted) Convert #include "..." to #include <path/...> in drivers/gpu/ 2012-10-02 18:01:07 +01:00
drm_vm.c drm: Fix broken use of _PAGE_NO_CACHE on powerpc 2016-07-12 13:20:39 +02:00
drm_vma_manager.c drm: use drm_file to tag vm-bos 2016-09-19 11:22:08 +02:00
Kconfig Revert "drm: make DRI1 drivers depend on BROKEN" 2016-09-01 06:16:12 +10:00
Makefile drm: Extract drm_color_mgmt.[hc] 2016-09-22 00:04:02 -07:00