static int drm_kms_blit_to_hdmi(struct gralloc_drm_t *drm, struct gralloc_drm_bo_t *bo)
{
int ret = 0;
- if (drm->hdmi.active && drm->hdmi_mode == HDMI_CLONED && drm->hdmi.bo) {
+ if (drm->hdmi.active && drm->hdmi.output_mode == DRM_OUTPUT_CLONED && drm->hdmi.bo) {
int dst_x1 = 0, dst_y1 = 0;
}
pthread_mutex_lock(&drm->hdmi_mutex);
- if (drm->hdmi.active && drm->hdmi_mode == HDMI_CLONED && drm->hdmi.bo)
+ if (drm->hdmi.active && drm->hdmi.output_mode == DRM_OUTPUT_CLONED && drm->hdmi.bo)
drm_kms_set_crtc(drm, &drm->hdmi, drm->hdmi.bo->fb_id);
pthread_mutex_unlock(&drm->hdmi_mutex);
ret = drm_kms_set_crtc(drm, &drm->primary, bo->fb_id);
pthread_mutex_lock(&drm->hdmi_mutex);
- if (drm->hdmi.active && drm->hdmi_mode == HDMI_CLONED && drm->hdmi.bo)
+ if (drm->hdmi.active && drm->hdmi.output_mode == DRM_OUTPUT_CLONED && drm->hdmi.bo)
drm_kms_set_crtc(drm, &drm->hdmi, drm->hdmi.bo->fb_id);
pthread_mutex_unlock(&drm->hdmi_mutex);
return err;
}
- drm->hdmi_mode = HDMI_CLONED;
+ drm->hdmi.output_mode = DRM_OUTPUT_CLONED;
drm->hdmi.active = 1;
return 0;
DRM_SWAP_SETCRTC,
};
-enum hdmi_output_mode {
- HDMI_CLONED,
- HDMI_EXTENDED,
+enum drm_output_mode {
+ DRM_OUTPUT_PRIMARY,
+ DRM_OUTPUT_CLONED,
+ DRM_OUTPUT_EXTENDED,
};
struct gralloc_drm_plane_t {
int bpp;
uint32_t active;
+ enum drm_output_mode output_mode;
+
/* 'private fb' for this output */
struct gralloc_drm_bo_t *bo;
};
drmModeResPtr resources;
struct gralloc_drm_output primary;
struct gralloc_drm_output hdmi;
- enum hdmi_output_mode hdmi_mode;
/* hdmi hotplug */
pthread_mutex_t hdmi_mutex;