Lines Matching refs:kms
27 int (*hw_init)(struct msm_kms *kms);
29 void (*irq_preinstall)(struct msm_kms *kms);
30 int (*irq_postinstall)(struct msm_kms *kms);
31 void (*irq_uninstall)(struct msm_kms *kms);
32 irqreturn_t (*irq)(struct msm_kms *kms);
33 int (*enable_vblank)(struct msm_kms *kms, struct drm_crtc *crtc);
34 void (*disable_vblank)(struct msm_kms *kms, struct drm_crtc *crtc);
61 void (*enable_commit)(struct msm_kms *kms);
62 void (*disable_commit)(struct msm_kms *kms);
69 int (*check_mode_changed)(struct msm_kms *kms, struct drm_atomic_state *state);
75 void (*prepare_commit)(struct msm_kms *kms, struct drm_atomic_state *state);
82 void (*flush_commit)(struct msm_kms *kms, unsigned crtc_mask);
91 void (*wait_flush)(struct msm_kms *kms, unsigned crtc_mask);
98 void (*complete_commit)(struct msm_kms *kms, unsigned crtc_mask);
105 long (*round_pixclk)(struct msm_kms *kms, unsigned long rate,
108 void (*destroy)(struct msm_kms *kms);
111 void (*snapshot)(struct msm_disp_state *disp_state, struct msm_kms *kms);
115 int (*debugfs_init)(struct msm_kms *kms, struct drm_minor *minor);
128 struct msm_kms *kms; member
175 static inline int msm_kms_init(struct msm_kms *kms, in msm_kms_init() argument
180 for (i = 0; i < ARRAY_SIZE(kms->commit_lock); i++) in msm_kms_init()
181 mutex_init(&kms->commit_lock[i]); in msm_kms_init()
183 kms->funcs = funcs; in msm_kms_init()
185 kms->wq = alloc_ordered_workqueue("msm", 0); in msm_kms_init()
186 if (!kms->wq) in msm_kms_init()
189 for (i = 0; i < ARRAY_SIZE(kms->pending_timers); i++) { in msm_kms_init()
190 ret = msm_atomic_init_pending_timer(&kms->pending_timers[i], kms, i); in msm_kms_init()
199 static inline void msm_kms_destroy(struct msm_kms *kms) in msm_kms_destroy() argument
203 for (i = 0; i < ARRAY_SIZE(kms->pending_timers); i++) in msm_kms_destroy()
204 msm_atomic_destroy_pending_timer(&kms->pending_timers[i]); in msm_kms_destroy()
206 destroy_workqueue(kms->wq); in msm_kms_destroy()