linux_dsm_epyc7002/drivers/gpu/drm
Daniel Vetter 9625604ceb drm/irq: Add drm_crtc_vblank_reset
At driver load we need to tell the vblank code about the state of the
pipes, so that the logic around reject vblank_get when the pipe is off
works correctly.

Thus far i915 used drm_vblank_off, but one of the side-effects of it
is that it also saves the vblank counter. And for that it calls down
into the ->get_vblank_counter hook. Which isn't really a good idea
when the pipe is off for a few reasons:
- With runtime pm the register might not respond.
- If the pipe is off some datastructures might not be around or
  unitialized.

The later is what blew up on gen3: We look at intel_crtc->config to
compute the vblank counter, and for a disabled pipe at boot-up that's
just not there. Thus far this was papered over by a check for
intel_crtc->active, but I want to get rid of that (since it's fairly
race, vblank hooks are called from all kinds of places).

So prep for that by adding a _reset functions which only does what we
really need to be done at driver load: Mark the vblank pipe as off,
but don't do any vblank counter saving or event flushing - neither of
that is required.

v2: Clarify the code flow slightly as suggested by Ville.

v3: Fix kerneldoc spelling, spotted by Laurent.

Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Cc: Imre Deak <imre.deak@intel.com>
Reviewed-by: Imre Deak <imre.deak@intel.com> (v2)
Acked-by: Dave Airlie <airlied@redhat.com>
Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
2015-02-23 10:53:38 +01:00
..
amd drm/amdkfd: change amdkfd version to 0.7.1 2015-01-22 17:53:03 +02:00
armada Merge tag 'topic/core-stuff-2014-12-19' of git://anongit.freedesktop.org/drm-intel into drm-next 2015-01-09 09:13:41 +10:00
ast drm/fb-helper: Propagate errors from initial config failure 2015-01-21 14:57:03 +01:00
atmel-hlcdc drm: add Atmel HLCDC Display Controller support 2015-01-21 09:46:02 +01:00
bochs drm/fb-helper: Propagate errors from initial config failure 2015-01-21 14:57:03 +01:00
bridge imx-drm: encoder prepare/mode_set must use adjusted mode 2015-01-07 19:15:03 +01:00
cirrus drm/fb-helper: Propagate errors from initial config failure 2015-01-21 14:57:03 +01:00
exynos Merge branch 'exynos-drm-next' of git://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos into drm-next 2015-01-27 09:38:29 +10:00
gma500 drm/fb-helper: Propagate errors from initial config failure 2015-01-21 14:57:03 +01:00
i2c drm: adv7511: Remove interlaced mode check 2014-12-23 12:01:47 +02:00
i810
i915 drm/irq: Add drm_crtc_vblank_reset 2015-02-23 10:53:38 +01:00
imx imx-drm: core: handling of DI clock flags to ipu_crtc_mode_set() 2015-01-07 21:32:07 +01:00
mga
mgag200 drm/fb-helper: Propagate errors from initial config failure 2015-01-21 14:57:03 +01:00
msm drm/fb-helper: Propagate errors from initial config failure 2015-01-21 14:57:03 +01:00
nouveau Merge tag 'topic/core-stuff-2015-01-23' of git://anongit.freedesktop.org/drm-intel into drm-next 2015-01-27 08:54:11 +10:00
omapdrm drm/fb-helper: Propagate errors from initial config failure 2015-01-21 14:57:03 +01:00
panel drm: panel: simple-panel: add bus format information for foxlink panel 2015-01-21 09:45:56 +01:00
qxl drm/fb-helper: Propagate errors from initial config failure 2015-01-21 14:57:03 +01:00
r128 drm: remove unnecessary sizeof(u8) 2014-11-20 11:30:37 +10:00
radeon Merge branch 'drm-next-3.20' of git://people.freedesktop.org/~agd5f/linux into drm-next 2015-01-27 09:39:58 +10:00
rcar-du Merge branch 'drm/next/du' of git://linuxtv.org/pinchartl/fbdev into drm-next 2015-01-21 10:16:24 +10:00
rockchip Merge branch 'drm-next' of https://github.com/markyzq/kernel-drm-rockchip into drm-next 2015-01-27 10:05:44 +10:00
savage
shmobile Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux 2014-12-15 15:52:01 -08:00
sis
sti Merge branch 'drm-sti-next-add-dvo' of git://git.linaro.org/people/benjamin.gaignard/kernel into drm-next 2015-01-22 09:59:25 +10:00
tdfx
tegra Merge tag 'topic/core-stuff-2014-12-19' of git://anongit.freedesktop.org/drm-intel into drm-next 2015-01-09 09:13:41 +10:00
tilcdc Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux 2014-12-15 15:52:01 -08:00
ttm drm/ttm: optionally move duplicates to a separate list 2014-12-03 18:26:52 -05:00
udl drm/fb-helper: Propagate errors from initial config failure 2015-01-21 14:57:03 +01:00
via
vmwgfx drm/ttm: optionally move duplicates to a separate list 2014-12-03 18:26:52 -05:00
ati_pcigart.c
drm_agpsupport.c
drm_atomic_helper.c drm/atomic: atomic_check functions 2015-01-05 13:55:27 +01:00
drm_atomic.c drm: Add rotation value to plane state 2015-01-27 18:48:53 +10:00
drm_auth.c
drm_bufs.c
drm_cache.c drm/cache: Use wbinvd helpers 2014-12-16 08:56:55 +01:00
drm_context.c
drm_crtc_helper.c drm: add support for tiled/compressed/etc modifier in addfb2 2015-02-13 23:28:12 +01:00
drm_crtc_internal.h drm/atomic: Hide drm.ko internal interfaces 2015-01-05 13:55:30 +01:00
drm_crtc.c drm: add support for tiled/compressed/etc modifier in addfb2 2015-02-13 23:28:12 +01:00
drm_debugfs.c
drm_dma.c
drm_dp_helper.c drm/dp: retry AUX transactions 32 times (v1.1) 2014-12-09 09:56:44 +10:00
drm_dp_mst_topology.c drm/tile: expose the tile property to userspace (v3) 2014-12-09 09:56:48 +10:00
drm_drv.c drm: add atomic properties 2015-01-05 13:54:38 +01:00
drm_edid_load.c drm/edid: Deletion of an unnecessary check before the function call "release_firmware" 2014-11-21 12:16:27 +10:00
drm_edid.c Merge tag 'topic/core-stuff-2014-12-10' of git://anongit.freedesktop.org/drm-intel into drm-next 2014-12-11 10:12:57 +10:00
drm_encoder_slave.c
drm_fb_cma_helper.c
drm_fb_helper.c Merge tag 'topic/core-stuff-2015-01-23' of git://anongit.freedesktop.org/drm-intel into drm-next 2015-01-27 08:54:11 +10:00
drm_flip_work.c
drm_fops.c drm: Make drm_read() more robust against multithreaded races 2015-01-21 14:57:03 +01:00
drm_gem_cma_helper.c
drm_gem.c
drm_global.c
drm_hashtab.c
drm_info.c drm/info: Remove unused code 2014-12-16 18:44:34 +01:00
drm_internal.h drm/info: Remove unused code 2014-12-16 18:44:34 +01:00
drm_ioc32.c
drm_ioctl.c drm: add support for tiled/compressed/etc modifier in addfb2 2015-02-13 23:28:12 +01:00
drm_irq.c drm/irq: Add drm_crtc_vblank_reset 2015-02-23 10:53:38 +01:00
drm_legacy.h
drm_lock.c
drm_memory.c
drm_mipi_dsi.c
drm_mm.c
drm_modes.c imx-drm mode fixup support, imx-hdmi bridge conversion and imx-drm cleanup 2015-01-21 10:17:16 +10:00
drm_modeset_lock.c
drm_of.c
drm_panel.c
drm_pci.c
drm_plane_helper.c Merge branch 'topic/core-stuff' into topic/atomic-core 2014-12-17 20:24:02 +01:00
drm_platform.c
drm_prime.c
drm_probe_helper.c drm/probe-helper: clamp unknown connector status in the poll work 2015-01-22 06:11:39 +01:00
drm_rect.c
drm_scatter.c
drm_sysfs.c
drm_trace_points.c
drm_trace.h
drm_vm.c
drm_vma_manager.c
Kconfig drm/radeon: make MMU_NOTIFIER optional 2015-01-22 10:42:21 -05:00
Makefile Merge remote-tracking branch 'origin/master' into drm-next 2015-01-22 10:44:41 +10:00