File Index
Files and directories
Sign in
FILE

drm_vblank_helper.h

File preview with syntax highlighting.

linux-6.19.14/include/drm/drm_vblank_helper.h C
 1/* SPDX-License-Identifier: GPL-2.0+ */
 2
 3#ifndef _DRM_VBLANK_HELPER_H_
 4#define _DRM_VBLANK_HELPER_H_
 5
 6#include <linux/hrtimer_types.h>
 7#include <linux/types.h>
 8
 9struct drm_atomic_state;
10struct drm_crtc;
11
12/*
13 * VBLANK helpers
14 */
15
16void drm_crtc_vblank_atomic_flush(struct drm_crtc *crtc,
17				  struct drm_atomic_state *state);
18void drm_crtc_vblank_atomic_enable(struct drm_crtc *crtc,
19				   struct drm_atomic_state *state);
20void drm_crtc_vblank_atomic_disable(struct drm_crtc *crtc,
21				    struct drm_atomic_state *crtc_state);
22
23/**
24 * DRM_CRTC_HELPER_VBLANK_FUNCS - Default implementation for VBLANK helpers
25 *
26 * This macro initializes struct &drm_crtc_helper_funcs to default helpers
27 * for VBLANK handling.
28 */
29#define DRM_CRTC_HELPER_VBLANK_FUNCS \
30	.atomic_flush = drm_crtc_vblank_atomic_flush, \
31	.atomic_enable = drm_crtc_vblank_atomic_enable, \
32	.atomic_disable = drm_crtc_vblank_atomic_disable
33
34/*
35 * VBLANK timer
36 */
37
38int drm_crtc_vblank_helper_enable_vblank_timer(struct drm_crtc *crtc);
39void drm_crtc_vblank_helper_disable_vblank_timer(struct drm_crtc *crtc);
40bool drm_crtc_vblank_helper_get_vblank_timestamp_from_timer(struct drm_crtc *crtc,
41							    int *max_error,
42							    ktime_t *vblank_time,
43							    bool in_vblank_irq);
44
45/**
46 * DRM_CRTC_VBLANK_TIMER_FUNCS - Default implementation for VBLANK timers
47 *
48 * This macro initializes struct &drm_crtc_funcs to default helpers for
49 * VBLANK timers.
50 */
51#define DRM_CRTC_VBLANK_TIMER_FUNCS \
52	.enable_vblank = drm_crtc_vblank_helper_enable_vblank_timer, \
53	.disable_vblank = drm_crtc_vblank_helper_disable_vblank_timer, \
54	.get_vblank_timestamp = drm_crtc_vblank_helper_get_vblank_timestamp_from_timer
55
56#endif
~/ Read-only file preview.