mirror of
https://github.com/torvalds/linux.git
synced 2026-05-31 10:33:41 +02:00
drm/vc4: crtc: Create vblank reporting function
We'll need that code in the HVS driver, so let's create a shared function to reuse it. Acked-by: Thomas Zimmermann <tzimmermann@suse.de> Signed-off-by: Maxime Ripard <maxime@cerno.tech> Link: https://lore.kernel.org/r/20220711173939.1132294-15-maxime@cerno.tech
This commit is contained in:
parent
4a9551237d
commit
68e4a69aec
|
|
@ -544,6 +544,20 @@ int vc4_crtc_disable_at_boot(struct drm_crtc *crtc)
|
|||
return 0;
|
||||
}
|
||||
|
||||
void vc4_crtc_send_vblank(struct drm_crtc *crtc)
|
||||
{
|
||||
struct drm_device *dev = crtc->dev;
|
||||
unsigned long flags;
|
||||
|
||||
if (!crtc->state || !crtc->state->event)
|
||||
return;
|
||||
|
||||
spin_lock_irqsave(&dev->event_lock, flags);
|
||||
drm_crtc_send_vblank_event(crtc, crtc->state->event);
|
||||
crtc->state->event = NULL;
|
||||
spin_unlock_irqrestore(&dev->event_lock, flags);
|
||||
}
|
||||
|
||||
static void vc4_crtc_atomic_disable(struct drm_crtc *crtc,
|
||||
struct drm_atomic_state *state)
|
||||
{
|
||||
|
|
@ -567,14 +581,7 @@ static void vc4_crtc_atomic_disable(struct drm_crtc *crtc,
|
|||
* Make sure we issue a vblank event after disabling the CRTC if
|
||||
* someone was waiting it.
|
||||
*/
|
||||
if (crtc->state->event) {
|
||||
unsigned long flags;
|
||||
|
||||
spin_lock_irqsave(&dev->event_lock, flags);
|
||||
drm_crtc_send_vblank_event(crtc, crtc->state->event);
|
||||
crtc->state->event = NULL;
|
||||
spin_unlock_irqrestore(&dev->event_lock, flags);
|
||||
}
|
||||
vc4_crtc_send_vblank(crtc);
|
||||
}
|
||||
|
||||
static void vc4_crtc_atomic_enable(struct drm_crtc *crtc,
|
||||
|
|
|
|||
|
|
@ -862,6 +862,7 @@ void vc4_crtc_destroy_state(struct drm_crtc *crtc,
|
|||
struct drm_crtc_state *state);
|
||||
void vc4_crtc_reset(struct drm_crtc *crtc);
|
||||
void vc4_crtc_handle_vblank(struct vc4_crtc *crtc);
|
||||
void vc4_crtc_send_vblank(struct drm_crtc *crtc);
|
||||
void vc4_crtc_get_margins(struct drm_crtc_state *state,
|
||||
unsigned int *left, unsigned int *right,
|
||||
unsigned int *top, unsigned int *bottom);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user