#include <drm/drm_atomic_uapi.h>
#include <drm/drm_vblank.h>
#include "msm_atomic_trace.h"
#include "msm_drv.h"
#include "msm_gem.h"
#include "msm_kms.h"
static void vblank_get(struct msm_kms *kms, unsigned crtc_mask)
{ … }
static void vblank_put(struct msm_kms *kms, unsigned crtc_mask)
{ … }
static void lock_crtcs(struct msm_kms *kms, unsigned int crtc_mask)
{ … }
static void unlock_crtcs(struct msm_kms *kms, unsigned int crtc_mask)
{ … }
static void msm_atomic_async_commit(struct msm_kms *kms, int crtc_idx)
{ … }
static void msm_atomic_pending_work(struct kthread_work *work)
{ … }
int msm_atomic_init_pending_timer(struct msm_pending_timer *timer,
struct msm_kms *kms, int crtc_idx)
{ … }
void msm_atomic_destroy_pending_timer(struct msm_pending_timer *timer)
{ … }
static bool can_do_async(struct drm_atomic_state *state,
struct drm_crtc **async_crtc)
{ … }
static unsigned get_crtc_mask(struct drm_atomic_state *state)
{ … }
int msm_atomic_check(struct drm_device *dev, struct drm_atomic_state *state)
{ … }
void msm_atomic_commit_tail(struct drm_atomic_state *state)
{ … }