Lines Matching refs:kms
19 * snapdragon version, the kms support is split out and the appropriate
20 * implementation is loaded at runtime. The kms module is responsible
25 int (*hw_init)(struct msm_kms *kms);
27 void (*irq_preinstall)(struct msm_kms *kms);
28 int (*irq_postinstall)(struct msm_kms *kms);
29 void (*irq_uninstall)(struct msm_kms *kms);
30 irqreturn_t (*irq)(struct msm_kms *kms);
31 int (*enable_vblank)(struct msm_kms *kms, struct drm_crtc *crtc);
32 void (*disable_vblank)(struct msm_kms *kms, struct drm_crtc *crtc);
59 void (*enable_commit)(struct msm_kms *kms);
60 void (*disable_commit)(struct msm_kms *kms);
66 void (*prepare_commit)(struct msm_kms *kms, struct drm_atomic_state *state);
73 void (*flush_commit)(struct msm_kms *kms, unsigned crtc_mask);
82 void (*wait_flush)(struct msm_kms *kms, unsigned crtc_mask);
89 void (*complete_commit)(struct msm_kms *kms, unsigned crtc_mask);
96 const struct msm_format *(*get_format)(struct msm_kms *kms,
100 int (*check_modified_format)(const struct msm_kms *kms,
106 long (*round_pixclk)(struct msm_kms *kms, unsigned long rate,
108 int (*set_split_display)(struct msm_kms *kms,
113 void (*destroy)(struct msm_kms *kms);
116 void (*snapshot)(struct msm_disp_state *disp_state, struct msm_kms *kms);
120 int (*debugfs_init)(struct msm_kms *kms, struct drm_minor *minor);
133 struct msm_kms *kms;
162 static inline int msm_kms_init(struct msm_kms *kms,
167 for (i = 0; i < ARRAY_SIZE(kms->commit_lock); i++)
168 mutex_init(&kms->commit_lock[i]);
170 kms->funcs = funcs;
172 for (i = 0; i < ARRAY_SIZE(kms->pending_timers); i++) {
173 ret = msm_atomic_init_pending_timer(&kms->pending_timers[i], kms, i);
182 static inline void msm_kms_destroy(struct msm_kms *kms)
186 for (i = 0; i < ARRAY_SIZE(kms->pending_timers); i++)
187 msm_atomic_destroy_pending_timer(&kms->pending_timers[i]);