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);
63 * If the kms backend supports async commit, it should implement
68 ktime_t (*vsync_time)(struct msm_kms *kms, struct drm_crtc *crtc);
74 void (*prepare_commit)(struct msm_kms *kms, struct drm_atomic_state *state);
81 void (*flush_commit)(struct msm_kms *kms, unsigned crtc_mask);
90 void (*wait_flush)(struct msm_kms *kms, unsigned crtc_mask);
97 void (*complete_commit)(struct msm_kms *kms, unsigned crtc_mask);
104 const struct msm_format *(*get_format)(struct msm_kms *kms,
108 int (*check_modified_format)(const struct msm_kms *kms,
114 long (*round_pixclk)(struct msm_kms *kms, unsigned long rate,
116 int (*set_split_display)(struct msm_kms *kms,
120 void (*set_encoder_mode)(struct msm_kms *kms,
124 void (*destroy)(struct msm_kms *kms);
127 int (*debugfs_init)(struct msm_kms *kms, struct drm_minor *minor);
140 struct msm_kms *kms;
163 static inline void msm_kms_init(struct msm_kms *kms,
168 mutex_init(&kms->commit_lock);
169 kms->funcs = funcs;
171 for (i = 0; i < ARRAY_SIZE(kms->pending_timers); i++)
172 msm_atomic_init_pending_timer(&kms->pending_timers[i], kms, i);