Lines Matching refs:crtc

81 /* simple single crtc case helper function */
286 static void drm_fb_helper_save_lut_atomic(struct drm_crtc *crtc, struct drm_fb_helper *helper)
291 r_base = crtc->gamma_store;
292 g_base = r_base + crtc->gamma_size;
293 b_base = g_base + crtc->gamma_size;
295 for (i = 0; i < crtc->gamma_size; i++)
296 helper->funcs->gamma_get(crtc, &r_base[i], &g_base[i], &b_base[i], i);
299 static void drm_fb_helper_restore_lut_atomic(struct drm_crtc *crtc)
303 r_base = crtc->gamma_store;
304 g_base = r_base + crtc->gamma_size;
305 b_base = g_base + crtc->gamma_size;
307 crtc->funcs->gamma_set(crtc, r_base, g_base, b_base, 0, crtc->gamma_size);
326 if (!mode_set->crtc->enabled)
329 funcs = mode_set->crtc->helper_private;
330 drm_fb_helper_save_lut_atomic(mode_set->crtc, helper);
331 funcs->mode_set_base_atomic(mode_set->crtc,
345 static struct drm_framebuffer *drm_mode_config_fb(struct drm_crtc *crtc)
347 struct drm_device *dev = crtc->dev;
351 if (crtc->base.id == c->base.id)
363 struct drm_crtc *crtc;
370 crtc = mode_set->crtc;
371 funcs = crtc->helper_private;
372 fb = drm_mode_config_fb(crtc);
374 if (!crtc->enabled)
382 drm_fb_helper_restore_lut_atomic(mode_set->crtc);
383 funcs->mode_set_base_atomic(mode_set->crtc, fb, crtc->x,
384 crtc->y, LEAVE_ATOMIC_MODE_SET);
448 DRM_ERROR("Failed to restore crtc configuration\n");
478 struct drm_crtc *crtc;
485 * For each CRTC in this fb, turn the crtc on then,
490 crtc = fb_helper->crtc_info[i].mode_set.crtc;
491 crtc_funcs = crtc->helper_private;
493 if (!crtc->enabled)
496 crtc_funcs->dpms(crtc, DRM_MODE_DPMS_ON);
508 if (encoder->crtc == crtc) {
525 struct drm_crtc *crtc;
537 crtc = fb_helper->crtc_info[i].mode_set.crtc;
538 crtc_funcs = crtc->helper_private;
540 if (!crtc->enabled)
553 if (encoder->crtc == crtc) {
560 crtc_funcs->dpms(crtc, DRM_MODE_DPMS_OFF);
614 struct drm_crtc *crtc;
639 list_for_each_entry(crtc, &dev->mode_config.crtc_list, head) {
640 fb_helper->crtc_info[i].crtc_id = crtc->base.id;
641 fb_helper->crtc_info[i].mode_set.crtc = crtc;
667 static int setcolreg(struct drm_crtc *crtc, u16 red, u16 green,
711 fb_helper->funcs->gamma_set(crtc, red,
715 fb_helper->funcs->gamma_get(crtc, &r,
720 fb_helper->funcs->gamma_set(crtc, r,
727 fb_helper->funcs->gamma_set(crtc, red, green, blue, pindex);
738 struct drm_crtc *crtc;
743 crtc = fb_helper->crtc_info[i].mode_set.crtc;
744 crtc_funcs = crtc->helper_private;
762 rc = setcolreg(crtc, hred, hgreen, hblue, start++, info);
766 crtc_funcs->load_lut(crtc);
872 struct drm_crtc *crtc;
883 crtc = fb_helper->crtc_info[i].mode_set.crtc;
884 ret = crtc->funcs->set_config(&fb_helper->crtc_info[i].mode_set);
907 struct drm_crtc *crtc;
913 crtc = fb_helper->crtc_info[i].mode_set.crtc;
921 ret = crtc->funcs->set_config(modeset);
994 gamma_size = fb_helper->crtc_info[i].mode_set.crtc->gamma_size;
1010 DRM_INFO("Cannot find any crtc or sizes - going 1024x768\n");
1288 /* only contemplate cloning in the single crtc case */
1398 struct drm_fb_helper_crtc **crtcs, *crtc;
1430 /* select a crtc for this connector and then attempt to configure
1433 crtc = &fb_helper->crtc_info[c];
1440 if (best_crtcs[o] == crtc)
1444 /* ignore cloning unless only a single crtc */
1452 crtcs[n] = crtc;
1457 best_crtc = crtc;
1485 /* clean out all the encoder/crtc combos */
1487 encoder->crtc = NULL;
1513 /* fill out the connector<->crtc mappings into the modesets */
1525 DRM_DEBUG_KMS("desired mode %s set on crtc %d\n",
1526 mode->name, fb_crtc->mode_set.crtc->base.id);
1585 struct drm_crtc *crtc;
1591 list_for_each_entry(crtc, &dev->mode_config.crtc_list, head) {
1592 if (crtc->fb)
1594 if (crtc->fb == fb_helper->fb)