linux/drivers/gpu/drm
Mario Kleiner 7d2818f54e drm/vc4: Allow vblank_disable_immediate on non-fw-kms. (v2)
With instantaneous high precision vblank timestamping
that updates at leading edge of vblank, the emulated
"hw vblank counter" from vblank timestamping which
increments at leading edge of vblank, and reliable
page flip execution and completion at leading edge
of vblank, we should meet the requirements for fast
vblank irq disable/enable.

Testing against rpi-4.12-rc5 Linux kernel with timing
measurement equipment indicates this works fine,
so allow immediate vblank disable for power saving.

For debugging in case of unexpected trouble, booting
with kernel cmdline option drm.vblankoffdelay=0
would keep vblank irqs on to approximate old behavior.

v2: Respin onto drm-misc-next, per Eric's suggestion.
    Drop !vc4->firmware_kms check, as the firmware_kms
    implementation does not exist in upstream.

Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com>
Cc: Eric Anholt <eric@anholt.net>
Reviewed-by: Eric Anholt <eric@anholt.net>
Link: http://patchwork.freedesktop.org/patch/msgid/20170622012811.2139-1-mario.kleiner.de@gmail.com
2017-06-22 11:13:33 -07:00
..
amd drm/pci: Deprecate drm_pci_init/exit completely 2017-06-20 10:41:03 +02:00
arc drm: arcpgu: Use crtc->mode_valid() callback 2017-06-22 10:45:10 +02:00
arm drm/hdlcd|mali: Drop drm_vblank_cleanup 2017-06-01 08:02:14 +02:00
armada drm: armada: make of_device_ids const. 2017-06-21 09:06:44 +02:00
ast drm/pci: Deprecate drm_pci_init/exit completely 2017-06-20 10:41:03 +02:00
atmel-hlcdc drm/atmel-hlcdc: Remove unnecessary NULL check 2017-06-21 15:38:26 +02:00
bochs drm/pci: Deprecate drm_pci_init/exit completely 2017-06-20 10:41:03 +02:00
bridge drm/bridge: Refactor out the panel wrapper from the lvds-encoder bridge. 2017-06-05 14:00:40 +05:30
cirrus drm/pci: Deprecate drm_pci_init/exit completely 2017-06-20 10:41:03 +02:00
etnaviv drm: drop drm_[cm]alloc* helpers 2017-05-18 17:22:39 +02:00
exynos drm/exynos: Drop drm_vblank_cleanup 2017-06-01 11:43:41 +02:00
fsl-dcu
gma500 drm/pci: Deprecate drm_pci_init/exit completely 2017-06-20 10:41:03 +02:00
hisilicon drm/hisilicon: fix include notation and remove -Iinclude/drm flag 2017-05-17 14:35:22 +02:00
i2c drm/i2c: remove unneeded -Iinclude/drm compiler flag 2017-05-18 07:13:04 +02:00
i810 drm/pci: Deprecate drm_pci_init/exit completely 2017-06-20 10:41:03 +02:00
i915 drm: Remove drm_driver->set_busid hook 2017-06-20 10:40:49 +02:00
imx drm/bridge/synopsys: dw-hdmi: Use bridge->mode_valid() callback 2017-06-05 12:09:50 +05:30
lib
mediatek drm/mediatek: use drm_for_each_connector_iter() 2017-05-26 02:12:33 -03:00
meson drm/bridge/synopsys: dw-hdmi: Use bridge->mode_valid() callback 2017-06-05 12:09:50 +05:30
mga drm/pci: Deprecate drm_pci_init/exit completely 2017-06-20 10:41:03 +02:00
mgag200 drm/pci: Deprecate drm_pci_init/exit completely 2017-06-20 10:41:03 +02:00
msm drm: Add DRM_MODE_ROTATE_ and DRM_MODE_REFLECT_ to UAPI 2017-05-22 09:49:48 +02:00
mxsfb drm: mxsfb_crtc: Reset the eLCDIF controller 2017-06-15 13:30:45 -04:00
nouveau drm/pci: Deprecate drm_pci_init/exit completely 2017-06-20 10:41:03 +02:00
omapdrm drm: Add DRM_MODE_ROTATE_ and DRM_MODE_REFLECT_ to UAPI 2017-05-22 09:49:48 +02:00
panel drm/panel: s6e3ha2: Add support for s6e3hf2 panel on TM2e board 2017-06-14 20:18:22 +02:00
pl111 drm/pl111: Fix offset calculation for the primary plane. 2017-06-07 11:50:00 -07:00
qxl drm/pci: Deprecate drm_pci_init/exit completely 2017-06-20 10:41:03 +02:00
r128 drm/pci: Deprecate drm_pci_init/exit completely 2017-06-20 10:41:03 +02:00
radeon drm/pci: Deprecate drm_pci_init/exit completely 2017-06-20 10:41:03 +02:00
rcar-du
rockchip drm/rockchip: Remove unnecessary NULL check 2017-06-21 15:38:32 +02:00
savage drm/pci: Deprecate drm_pci_init/exit completely 2017-06-20 10:41:03 +02:00
selftests drm/mm: Split up long running selftests with cond_resched() 2017-05-04 08:11:46 +02:00
shmobile drm/shmob: Drop drm_vblank_cleanup 2017-06-22 08:41:15 +02:00
sis drm/pci: Deprecate drm_pci_init/exit completely 2017-06-20 10:41:03 +02:00
sti drm: sti: sti_hqvdp: undo preparation of a clock source. 2017-06-21 15:45:19 +02:00
stm drm/stm: Drop drm_vblank_cleanup 2017-05-31 10:48:58 +02:00
sun4i drm/sun4i: Drop drm_vblank_cleanup 2017-05-31 10:48:40 +02:00
tdfx drm/pci: Deprecate drm_pci_init/exit completely 2017-06-20 10:41:03 +02:00
tegra drm/tegra: Drop drm_vblank_cleanup 2017-06-20 10:20:40 +02:00
tilcdc drm/tilcdc: fix include notation and remove -Iinclude/drm flag 2017-05-17 14:36:49 +02:00
tinydrm drm: Use vsnprintf extension %ph 2017-05-31 10:30:38 +02:00
ttm drm: drop drm_[cm]alloc* helpers 2017-05-18 17:22:39 +02:00
udl drm/udl: Remove dummy busid callback 2017-06-20 10:40:31 +02:00
vc4 drm/vc4: Allow vblank_disable_immediate on non-fw-kms. (v2) 2017-06-22 11:13:33 -07:00
vgem drm/vgem: Fix return value check in vgem_init() 2017-05-22 09:47:34 +02:00
via drm/pci: Deprecate drm_pci_init/exit completely 2017-06-20 10:41:03 +02:00
virtio drm: Remove drm_device->virtdev 2017-05-29 20:57:25 +02:00
vmwgfx drm/pci: Deprecate drm_pci_init/exit completely 2017-06-20 10:41:03 +02:00
zte drm/zte: Drop drm_vblank_cleanup 2017-06-22 08:41:15 +02:00
ati_pcigart.c
drm_agpsupport.c
drm_atomic.c drm: Reduce scope of 'state' variable 2017-06-15 14:26:02 -04:00
drm_atomic_helper.c drm: Add drm_atomic_helper_wait_for_flip_done() 2017-06-22 15:11:51 +02:00
drm_auth.c
drm_blend.c drm: Add DRM_MODE_ROTATE_ and DRM_MODE_REFLECT_ to UAPI 2017-05-22 09:49:48 +02:00
drm_bridge.c drm: Introduce drm_bridge_mode_valid() 2017-05-30 08:37:50 +02:00
drm_bufs.c
drm_cache.c
drm_color_mgmt.c drm: More links for gamma support helpers 2017-06-20 12:13:11 +02:00
drm_connector.c drm/atomic: Add support for custom scaling mode properties, v2 2017-05-08 13:20:43 +02:00
drm_context.c
drm_crtc.c
drm_crtc_helper.c
drm_crtc_helper_internal.h drm: Add drm_{crtc/encoder/connector}_mode_valid() 2017-05-30 08:37:24 +02:00
drm_crtc_internal.h
drm_debugfs.c
drm_debugfs_crc.c
drm_dma.c
drm_dp_aux_dev.c
drm_dp_dual_mode_helper.c
drm_dp_helper.c
drm_dp_mst_topology.c drm: Use vsnprintf extension %ph 2017-05-31 10:30:38 +02:00
drm_drv.c
drm_dumb_buffers.c
drm_edid.c drm/edid: Add 10 bpc quirk for LGD 764 panel in HP zBook 17 G2 2017-05-02 10:37:45 +02:00
drm_edid_load.c
drm_encoder.c
drm_encoder_slave.c
drm_fb_cma_helper.c drm: Convert CMA fbdev console suspend helpers to use bool 2017-06-20 16:23:40 +02:00
drm_fb_helper.c drm: Add DRM_MODE_ROTATE_ and DRM_MODE_REFLECT_ to UAPI 2017-05-22 09:49:48 +02:00
drm_file.c drm/doc: Improve ioctl/fops docs a bit more 2017-06-20 10:41:29 +02:00
drm_flip_work.c
drm_fourcc.c
drm_framebuffer.c
drm_gem.c drm: drop drm_[cm]alloc* helpers 2017-05-18 17:22:39 +02:00
drm_gem_cma_helper.c
drm_global.c
drm_hashtab.c
drm_info.c
drm_internal.h drm: Remove drm_driver->set_busid hook 2017-06-20 10:40:49 +02:00
drm_ioc32.c
drm_ioctl.c drm: Check for drm_device->dev in drm_set_busid 2017-06-21 17:38:43 +02:00
drm_irq.c drm/doc: Polish irq helper documentation 2017-06-01 08:02:14 +02:00
drm_kms_helper_common.c
drm_legacy.h
drm_lock.c
drm_memory.c
drm_mipi_dsi.c
drm_mm.c
drm_mode_config.c
drm_mode_object.c
drm_modes.c
drm_modeset_helper.c
drm_modeset_lock.c
drm_of.c
drm_panel.c
drm_pci.c drm/pci: Deprecate drm_pci_init/exit completely 2017-06-20 10:41:03 +02:00
drm_plane.c
drm_plane_helper.c drm: Add DRM_MODE_ROTATE_ and DRM_MODE_REFLECT_ to UAPI 2017-05-22 09:49:48 +02:00
drm_prime.c drm/prime: Introduce drm_gem_prime_import_dev 2017-05-08 09:39:13 +02:00
drm_print.c
drm_probe_helper.c drm: Use new mode_valid() helpers in connector probe helper 2017-05-30 08:37:50 +02:00
drm_property.c
drm_rect.c drm: Add DRM_MODE_ROTATE_ and DRM_MODE_REFLECT_ to UAPI 2017-05-22 09:49:48 +02:00
drm_scatter.c
drm_scdc_helper.c
drm_simple_kms_helper.c
drm_sysfs.c
drm_trace.h
drm_trace_points.c
drm_vblank.c drm/vblank: Consistent drm_crtc_ prefix 2017-06-20 10:28:58 +02:00
drm_vm.c
drm_vma_manager.c
Kconfig drm/pl111: Initial drm/kms driver for pl111 2017-05-08 12:24:06 -07:00
Makefile drm/bridge: Build the panel wrapper in drm_kms_helper 2017-06-07 21:19:56 +05:30