Dhinakaran Pandiyan
d0bb96b4be
drm/vblank: Restoring vblank counts after device PM events.
...
The HW frame counter can get reset if device enters a low power state after
vblank interrupts were disabled. This messes up any following vblank count
update as a negative diff (huge unsigned diff) is calculated from the HW
frame counter change. We cannot ignore negative diffs altogther as there
could be legitimate wrap arounds. So, allow drivers to update vblank->count
with missed vblanks for the time interrupts were disabled. This is similar
to _crtc_vblank_on() except that vblanks interrupts are not enabled at the
end as this function is expected to be called from the driver
_enable_vblank() vfunc.
v2: drm_crtc_vblank_restore should take crtc as arg. (Chris)
Add docs and sprinkle some asserts.
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Michel Dänzer <michel@daenzer.net>
Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20180203051302.9974-9-dhinakaran.pandiyan@intel.com
2018-02-15 11:50:14 -08:00
..
bridge
drm/bridge/sii8620: add remote control support
2017-10-11 13:14:25 +02:00
i2c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
tinydrm
drm/tinydrm: Use drm_fb_cma_fbdev_init_with_funcs/fini()
2017-12-10 15:37:07 +01:00
ttm
drm/ttm: remove ttm_bo_default_io_mem_pfn
2018-01-10 15:44:51 -05:00
amd_asic_type.h
drm/amdgpu Moving amdgpu asic types to a separate file
2017-10-18 10:56:27 -04:00
ati_pcigart.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
drm_agpsupport.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
drm_atomic.h
drm/atomic: Handle 64-bit return from drm_crtc_vblank_count()
2018-02-15 11:49:57 -08:00
drm_atomic_helper.h
drm: Move drm_plane_helper_check_state() into drm_atomic_helper.c
2017-11-20 21:14:22 +02:00
drm_auth.h
drm: Add drm_object lease infrastructure [v5]
2017-10-25 16:31:29 +10:00
drm_blend.h
drm_bridge.h
drm/bridge: change return type of drm_bridge_add function
2017-08-21 08:51:53 +05:30
drm_cache.h
drm_color_mgmt.h
drm_connector.h
Linux 4.15-rc4
2017-12-19 21:37:24 +10:00
drm_crtc.h
drm/mode_object: fix documentation for object lookups.
2017-11-10 13:50:47 +10:00
drm_crtc_helper.h
drm_debugfs.h
drm_debugfs_crc.h
drm_device.h
drm: Add drm_device->fb_helper pointer
2017-10-31 19:06:05 +01:00
drm_displayid.h
drm_dp_dual_mode_helper.h
drm_dp_helper.h
Merge tag 'drm-misc-next-2017-11-30' of git://anongit.freedesktop.org/drm/drm-misc into drm-next
2017-12-04 05:42:49 +10:00
drm_dp_mst_helper.h
drm/dp/mst: Sideband message transaction to power up/down nodes
2017-09-11 16:03:57 +03:00
drm_drv.h
Merge airlied/drm-next into drm-misc-next
2017-11-21 14:17:56 +01:00
drm_edid.h
drm: Update edid-derived drm_display_info fields at edid property set [v2]
2017-12-13 14:51:37 +01:00
drm_encoder.h
Merge airlied/drm-next into drm-misc-next
2017-11-21 14:17:56 +01:00
drm_encoder_slave.h
drm_fb_cma_helper.h
drm/cma-helper: Add drm_fb_cma_fbdev_init/fini()
2017-12-08 14:27:47 +01:00
drm_fb_helper.h
drm/fb-helper: Add drm_fb_helper_defio_init()
2017-12-20 14:52:22 +01:00
drm_file.h
drm_fixed.h
drm_flip_work.h
drm_fourcc.h
drm_framebuffer.h
drm/framebuffer: Print task that allocated the fb in debug info.
2017-12-20 15:30:17 +01:00
drm_gem.h
drm/gem: Add drm_gem_dumb_map_offset()
2017-07-29 13:49:55 +02:00
drm_gem_cma_helper.h
Merge tag 'drm-misc-next-2017-11-30' of git://anongit.freedesktop.org/drm/drm-misc into drm-next
2017-12-04 05:42:49 +10:00
drm_gem_framebuffer_helper.h
drm/gem-fb-helper: Use debug message on gem lookup failure
2017-09-16 14:06:53 +02:00
drm_global.h
drm_hashtab.h
drm_ioctl.h
drm_irq.h
drm_lease.h
drm: Add four ioctls for managing drm mode object leases [v7]
2017-10-25 16:31:30 +10:00
drm_legacy.h
drm_mipi_dsi.h
drm_mm.h
drm/drm_mm.h: Fix the name of the referenced function in comment
2017-11-02 11:10:47 -02:00
drm_mode_config.h
drm-misc-next for 4.16:
2017-12-22 10:00:38 +10:00
drm_mode_object.h
drm: Add four ioctls for managing drm mode object leases [v7]
2017-10-25 16:31:30 +10:00
drm_modes.h
drm: add helper functions for YCBCR420 handling
2017-07-14 21:23:54 +03:00
drm_modeset_helper.h
drm/modeset-helper: Add simple modeset suspend/resume helpers
2017-11-30 18:18:08 +01:00
drm_modeset_helper_vtables.h
drm/edid: make drm_edid_to_eld() static
2017-11-07 17:43:35 +02:00
drm_modeset_lock.h
drm/atomic: Prepare drm_modeset_lock infrastructure for interruptible waiting, v2.
2017-09-13 09:50:52 +02:00
drm_of.h
main drm pull request for v4.15
2017-11-15 20:42:10 -08:00
drm_os_linux.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
drm_panel.h
drm_pci.h
drm_pciids.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
drm_plane.h
Merge airlied/drm-next into drm-misc-next
2017-11-21 14:17:56 +01:00
drm_plane_helper.h
drm: Move drm_plane_helper_check_state() into drm_atomic_helper.c
2017-11-20 21:14:22 +02:00
drm_prime.h
drm_print.h
drm/print: Unconfuse kerneldoc
2017-12-15 11:13:39 +01:00
drm_property.h
drm/mode_object: fix documentation for object lookups.
2017-11-10 13:50:47 +10:00
drm_rect.h
drm_scdc_helper.h
drm: Fix warning when building docs for scdc_helper
2017-07-31 14:24:14 +02:00
drm_simple_kms_helper.h
drm: Plumb modifiers through plane init
2017-08-01 17:50:06 +01:00
drm_syncobj.h
drm/syncobj: some kerneldoc polish
2017-12-15 11:26:52 +01:00
drm_sysfs.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
drm_utils.h
drm: Add panel orientation quirks, v6.
2017-12-04 23:03:21 +01:00
drm_vblank.h
drm/vblank: Restoring vblank counts after device PM events.
2018-02-15 11:50:14 -08:00
drm_vma_manager.h
drm/vma-manager: drm_vma_node_start() constify argument
2017-11-11 11:19:37 +01:00
drmP.h
drm: Add new LEASE debug level
2017-10-25 16:31:29 +10:00
gma_drm.h
gpu_scheduler.h
drm/sched: move fence slab handling to module init/exit
2017-12-07 11:52:14 -05:00
gpu_scheduler_trace.h
drm: move amd_gpu_scheduler into common location
2017-12-07 11:51:56 -05:00
i915_component.h
drm/i915/cnl: Add Port F definition.
2018-01-19 17:51:35 -02:00
i915_drm.h
x86/early-quirks: export the stolen region as a resource
2017-12-12 12:30:18 +02:00
i915_pciids.h
drm/i915/cnl: Sync PCI ID with Spec.
2018-02-14 16:21:37 -08:00
intel-gtt.h
drm/i915: prefer resource_size_t for everything stolen
2017-12-12 12:30:22 +02:00
intel_lpe_audio.h
spsc_queue.h
drm: move amd_gpu_scheduler into common location
2017-12-07 11:51:56 -05:00