OpenCloudOS-Kernel/drivers/gpu/drm
Rodrigo Siqueira 3a0709928b drm/vkms: Add vblank events simulated by hrtimers
This commit adds regular vblank events simulated through hrtimers, which
is a feature required by VKMS to mimic real hardware. Additionally, all
the vblank event send after pageflip is kept in the atomic_flush
function.

Changes since V1:
 - Compute the vblank timer interval per interruption
 Ville Syrjälä and Daniel Vetter:
 - Removes hardcoded vblank interval to get it from user space

Changes since V2:
 Chris Wilson
 - Removes unnecessary algorithm to compute the next period
 Daniel Vetter:
 - Uses drm_calc_timestamping_constants to get the vblank interval
   instead of calculating it manually
 - Adds disable_vblank helper that turns of crtc
 - Simplifies implementation by using drm_crtc_arm_vblank_event
 - Replaces the code in atomic_begin to atomic_flush
 - Removes unnecessary field in vkms_output

Changes since V3:
 Daniel Vetter:
 - Squash "drm/vkms: Add atomic helpers functions" into the commit that
   handling vblank events simulated by hrtimers

Signed-off-by: Rodrigo Siqueira <rodrigosiqueiramelo@gmail.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: https://patchwork.freedesktop.org/patch/msgid/7709bba40782ec06332d57fff337797b272581fc.1531359228.git.rodrigosiqueiramelo@gmail.com
2018-07-12 08:48:48 +02:00
..
amd Merge drm-upstream/drm-next into drm-misc-next 2018-07-06 13:34:13 -03:00
arc drm: add missing ctx argument to plane transitional helpers 2018-07-03 09:30:19 +02:00
arm Merge commit 'refs/for-upstream/mali-dp' of git://linux-arm.org/linux-ld into drm-next 2018-07-06 10:02:13 +10:00
armada dma-buf: remove kmap_atomic interface 2018-06-20 15:59:34 +02:00
ast
atmel-hlcdc Merge v4.18-rc3 into drm-next 2018-07-04 10:27:12 +10:00
bochs
bridge drm/panel: Make of_drm_find_panel() return an ERR_PTR() instead of NULL 2018-07-10 17:59:05 +02:00
cirrus drm/cirrus: cirrus_framebuffer -> drm_framebuffer 2018-05-18 14:52:30 +01:00
etnaviv drm/etnaviv: Remove unecessary dma_fence_ops 2018-07-03 13:13:27 +02:00
exynos drm/panel: Make of_drm_find_panel() return an ERR_PTR() instead of NULL 2018-07-10 17:59:05 +02:00
fsl-dcu drm/panel: Make of_drm_find_panel() return an ERR_PTR() instead of NULL 2018-07-10 17:59:05 +02:00
gma500 drm: gma500: Changed __attribute__((packed)) to __packed 2018-07-12 08:48:25 +02:00
hisilicon drm: kirin: Remove useless "Scale not support" error message 2018-06-25 18:09:38 +02:00
i2c Merge drm-upstream/drm-next into drm-misc-next 2018-06-20 13:22:22 -03:00
i810 drm/i810: off by one in i810_dma_vertex() 2018-07-03 15:00:42 +02:00
i915 Merge drm-upstream/drm-next into drm-misc-next 2018-07-06 13:34:13 -03:00
imx drm/imx: Use drm_plane_mask() 2018-07-02 18:45:56 +03:00
lib
mediatek Merge drm-upstream/drm-next into drm-misc-next 2018-06-20 13:22:22 -03:00
meson drm/meson: Fix an un-handled error path in 'meson_drv_bind_master()' 2018-06-26 10:22:29 +02:00
mga
mgag200
msm drm/panel: Make of_drm_find_panel() return an ERR_PTR() instead of NULL 2018-07-10 17:59:05 +02:00
mxsfb
nouveau drm/nouveau: Use drm_connector_for_each_possible_encoder() 2018-07-05 16:52:08 +03:00
omapdrm omapdrm changes for 4.19 2018-07-06 06:29:24 +10:00
panel drm/panel: simple: Add Sharp LQ035Q7DB03 panel support 2018-07-11 18:35:25 +02:00
pl111 drm/pl111: Set .gem_prime_vmap and .gem_prime_mmap 2018-07-10 14:52:54 +02:00
qxl drm/qxl: Remove unecessary dma_fence_ops 2018-07-03 13:13:56 +02:00
r128
radeon drm/radeon: Use drm_connector_for_each_possible_encoder() 2018-07-05 16:52:08 +03:00
rcar-du drm/panel: Make of_drm_find_panel() return an ERR_PTR() instead of NULL 2018-07-10 17:59:05 +02:00
rockchip drm/panel: Make of_drm_find_panel() return an ERR_PTR() instead of NULL 2018-07-10 17:59:05 +02:00
savage drm/savage: off by one in savage_bci_cmdbuf() 2018-07-04 14:27:01 +02:00
scheduler drm: Remove unecessary dma_fence_ops 2018-07-03 13:13:22 +02:00
selftests drm-misc-next for 4.19: 2018-06-22 12:58:08 +10:00
shmobile
sis
sti drm/panel: Make of_drm_find_panel() return an ERR_PTR() instead of NULL 2018-07-10 17:59:05 +02:00
stm drm/stm: ltdc: rework reset sequence 2018-07-06 10:15:47 +02:00
sun4i drm/sun4i: tcon-top: Remove mux configuration at probe time 2018-07-11 09:57:45 +02:00
tdfx
tegra drm/panel: Make of_drm_find_panel() return an ERR_PTR() instead of NULL 2018-07-10 17:59:05 +02:00
tilcdc drm/tilcdc: Use drm_connector_has_possible_encoder() 2018-07-05 16:52:08 +03:00
tinydrm drm/tinydrm: Fix doc build warnings 2018-07-11 22:24:02 +02:00
ttm Merge branch 'drm-next-4.19' of git://people.freedesktop.org/~agd5f/linux into drm-next 2018-06-22 13:19:05 +10:00
tve200
udl dma-buf: remove kmap_atomic interface 2018-06-20 15:59:34 +02:00
v3d drm/v3d: Fix a grammar nit in the scheduler docs. 2018-07-05 11:42:50 -07:00
vc4 drm/vc4: Support the case where the DSI device is disabled 2018-07-10 17:59:05 +02:00
vgem drm/vgem: off by one in vgem_gem_fault() 2018-07-03 15:06:15 +02:00
via treewide: Use array_size() in vzalloc() 2018-06-12 16:19:22 -07:00
virtio drm/virtio: Remove unecessary dma_fence_ops 2018-07-03 13:14:18 +02:00
vkms drm/vkms: Add vblank events simulated by hrtimers 2018-07-12 08:48:48 +02:00
vmwgfx drm/vmwgfx: Use drm_plane_mask() & co. 2018-07-02 18:45:56 +03:00
xen drm-misc-next for 4.19: 2018-06-22 12:58:08 +10:00
zte drm: add missing ctx argument to plane transitional helpers 2018-07-03 09:30:19 +02:00
Kconfig drm: vkms: select DRM_KMS_HELPER 2018-07-09 18:46:05 +02:00
Makefile drm: Begin an API for in-kernel clients 2018-07-10 14:51:37 +02:00
ati_pcigart.c
drm_agpsupport.c
drm_atomic.c drm/atomic: Avoid connector to writeback_connector casts 2018-07-07 07:51:19 +02:00
drm_atomic_helper.c drm/atomic: Call fake_vblank() from the generic commit_tail() helpers 2018-07-07 07:53:56 +02:00
drm_auth.c
drm_blend.c
drm_bridge.c
drm_bufs.c
drm_cache.c
drm_client.c drm/client: Fix: drm_client_new: Don't require DRM to be registered 2018-07-11 22:25:51 +02:00
drm_color_mgmt.c
drm_connector.c drm: Add drm_connector_has_possible_encoder() 2018-07-05 16:52:08 +03:00
drm_context.c
drm_crtc.c drm: Remove unecessary dma_fence_ops 2018-07-03 13:13:22 +02:00
drm_crtc_helper.c
drm_crtc_helper_internal.h
drm_crtc_internal.h drm: Make ioctls available for in-kernel clients 2018-06-25 16:20:14 +02:00
drm_debugfs.c drm/debugfs: Add internal client debugfs file 2018-07-10 14:53:35 +02:00
drm_debugfs_crc.c drm/crc: Only report a single overflow when a CRC fd is opened 2018-07-06 14:57:03 +02:00
drm_dma.c
drm_dp_aux_dev.c
drm_dp_dual_mode_helper.c
drm_dp_helper.c drm for v4.18-rc1 2018-06-06 08:16:33 -07:00
drm_dp_mst_topology.c
drm_drv.c drm: Begin an API for in-kernel clients 2018-07-10 14:51:37 +02:00
drm_dumb_buffers.c drm-misc-next for 4.19: 2018-06-28 13:29:07 +10:00
drm_edid.c drm-misc-next for 4.19: 2018-06-22 12:58:08 +10:00
drm_edid_load.c
drm_encoder.c
drm_encoder_slave.c
drm_fb_cma_helper.c drm/cma-helper: Remove drm_fb_cma_fbdev_init_with_funcs() 2018-07-10 14:54:50 +02:00
drm_fb_helper.c drm/fb-helper: Finish the generic fbdev emulation 2018-07-10 14:54:09 +02:00
drm_file.c drm: Begin an API for in-kernel clients 2018-07-10 14:51:37 +02:00
drm_flip_work.c
drm_fourcc.c
drm_framebuffer.c drm: Add drm_plane_mask() 2018-07-02 18:45:55 +03:00
drm_gem.c
drm_gem_cma_helper.c
drm_gem_framebuffer_helper.c drm/gem-fb-helper: Always do implicit sync 2018-06-20 14:43:13 +02:00
drm_global.c drm: add SPDX identifier and clarify license 2018-06-29 15:28:47 -05:00
drm_hashtab.c treewide: Use array_size() in vzalloc() 2018-06-12 16:19:22 -07:00
drm_info.c
drm_internal.h drm: provide management functions for drm_file 2018-06-25 16:17:03 +02:00
drm_ioc32.c
drm_ioctl.c drm: Make ioctls available for in-kernel clients 2018-06-25 16:20:14 +02:00
drm_irq.c
drm_kms_helper_common.c
drm_lease.c
drm_legacy.h
drm_lock.c
drm_memory.c treewide: Use array_size() in vmalloc() 2018-06-12 16:19:22 -07:00
drm_mipi_dsi.c
drm_mm.c drm/mm: Add a search-by-address variant to only inspect a single hole 2018-05-24 15:04:30 +01:00
drm_mode_config.c drm: writeback: Add client capability for exposing writeback connectors 2018-06-20 15:30:20 +01:00
drm_mode_object.c
drm_modes.c drm: Add support for extracting sync signal drive edge from videomode 2018-07-10 17:59:05 +02:00
drm_modeset_helper.c
drm_modeset_lock.c
drm_of.c drm/of: Make drm_of_find_panel_or_bridge() fail when the device is disabled 2018-07-10 17:59:05 +02:00
drm_panel.c drm/panel: Let of_drm_find_panel() return -ENODEV when the panel is disabled 2018-07-10 17:59:05 +02:00
drm_panel_orientation_quirks.c
drm_pci.c
drm_plane.c drm: Add checks for atomic_[duplicate/destroy]_state with atomic drivers 2018-06-18 09:20:51 +02:00
drm_plane_helper.c drm: add missing ctx argument to plane transitional helpers 2018-07-03 09:30:19 +02:00
drm_prime.c dma-buf: remove kmap_atomic interface 2018-06-20 15:59:34 +02:00
drm_print.c
drm_probe_helper.c drm: Begin an API for in-kernel clients 2018-07-10 14:51:37 +02:00
drm_property.c
drm_rect.c
drm_scatter.c
drm_scdc_helper.c
drm_simple_kms_helper.c drm: Use drm_crtc_mask() 2018-07-02 18:45:55 +03:00
drm_syncobj.c drm: Remove unecessary dma_fence_ops 2018-07-03 13:13:22 +02:00
drm_sysfs.c
drm_trace.h
drm_trace_points.c
drm_vblank.c
drm_vm.c gpu: drm: drm_vm: Adding new typedef vm_fault_t 2018-05-29 08:58:46 +02:00
drm_vma_manager.c drm: add SPDX idenitifier and clarify license 2018-06-29 15:28:47 -05:00
drm_writeback.c drm/writeback: Fix the "overview" section of the doc 2018-07-07 07:48:38 +02:00