Lines Matching refs:crtc

41 static int ast_cursor_set(struct drm_crtc *crtc,
46 static int ast_cursor_move(struct drm_crtc *crtc,
63 static void ast_crtc_load_lut(struct drm_crtc *crtc) in ast_crtc_load_lut() argument
65 struct ast_private *ast = crtc->dev->dev_private; in ast_crtc_load_lut()
66 struct ast_crtc *ast_crtc = to_ast_crtc(crtc); in ast_crtc_load_lut()
69 if (!crtc->enabled) in ast_crtc_load_lut()
77 static bool ast_get_vbios_mode_info(struct drm_crtc *crtc, struct drm_display_mode *mode, in ast_get_vbios_mode_info() argument
81 struct ast_private *ast = crtc->dev->dev_private; in ast_get_vbios_mode_info()
87 switch (crtc->primary->fb->bits_per_pixel) { in ast_get_vbios_mode_info()
105 switch (crtc->mode.crtc_hdisplay) { in ast_get_vbios_mode_info()
116 if (crtc->mode.crtc_vdisplay == 800) in ast_get_vbios_mode_info()
128 if (crtc->mode.crtc_vdisplay == 900) in ast_get_vbios_mode_info()
137 if (crtc->mode.crtc_vdisplay == 1080) in ast_get_vbios_mode_info()
210 ast_set_index_reg(ast, AST_IO_CRTC_PORT, 0x92, crtc->primary->fb->bits_per_pixel); in ast_get_vbios_mode_info()
224 static void ast_set_std_reg(struct drm_crtc *crtc, struct drm_display_mode *mode, in ast_set_std_reg() argument
227 struct ast_private *ast = crtc->dev->dev_private; in ast_set_std_reg()
249 ast_set_index_reg(ast, AST_IO_CRTC_PORT, i, stdtable->crtc[i]); in ast_set_std_reg()
269 static void ast_set_crtc_reg(struct drm_crtc *crtc, struct drm_display_mode *mode, in ast_set_crtc_reg() argument
272 struct ast_private *ast = crtc->dev->dev_private; in ast_set_crtc_reg()
369 static void ast_set_offset_reg(struct drm_crtc *crtc) in ast_set_offset_reg() argument
371 struct ast_private *ast = crtc->dev->dev_private; in ast_set_offset_reg()
375 offset = crtc->primary->fb->pitches[0] >> 3; in ast_set_offset_reg()
394 static void ast_set_ext_reg(struct drm_crtc *crtc, struct drm_display_mode *mode, in ast_set_ext_reg() argument
397 struct ast_private *ast = crtc->dev->dev_private; in ast_set_ext_reg()
400 switch (crtc->primary->fb->bits_per_pixel) { in ast_set_ext_reg()
452 static bool ast_set_dac_reg(struct drm_crtc *crtc, struct drm_display_mode *mode, in ast_set_dac_reg() argument
455 switch (crtc->primary->fb->bits_per_pixel) { in ast_set_dac_reg()
464 static void ast_set_start_address_crt1(struct drm_crtc *crtc, unsigned offset) in ast_set_start_address_crt1() argument
466 struct ast_private *ast = crtc->dev->dev_private; in ast_set_start_address_crt1()
476 static void ast_crtc_dpms(struct drm_crtc *crtc, int mode) in ast_crtc_dpms() argument
478 struct ast_private *ast = crtc->dev->dev_private; in ast_crtc_dpms()
489 ast_set_dp501_video_output(crtc->dev, 1); in ast_crtc_dpms()
490 ast_crtc_load_lut(crtc); in ast_crtc_dpms()
494 ast_set_dp501_video_output(crtc->dev, 0); in ast_crtc_dpms()
500 static bool ast_crtc_mode_fixup(struct drm_crtc *crtc, in ast_crtc_mode_fixup() argument
508 static int ast_crtc_do_set_base(struct drm_crtc *crtc, in ast_crtc_do_set_base() argument
512 struct ast_private *ast = crtc->dev->dev_private; in ast_crtc_do_set_base()
531 ast_fb = to_ast_framebuffer(crtc->primary->fb); in ast_crtc_do_set_base()
555 ast_set_start_address_crt1(crtc, (u32)gpu_addr); in ast_crtc_do_set_base()
560 static int ast_crtc_mode_set_base(struct drm_crtc *crtc, int x, int y, in ast_crtc_mode_set_base() argument
563 return ast_crtc_do_set_base(crtc, old_fb, x, y, 0); in ast_crtc_mode_set_base()
566 static int ast_crtc_mode_set(struct drm_crtc *crtc, in ast_crtc_mode_set() argument
572 struct drm_device *dev = crtc->dev; in ast_crtc_mode_set()
573 struct ast_private *ast = crtc->dev->dev_private; in ast_crtc_mode_set()
581 ret = ast_get_vbios_mode_info(crtc, mode, adjusted_mode, &vbios_mode); in ast_crtc_mode_set()
588 ast_set_std_reg(crtc, adjusted_mode, &vbios_mode); in ast_crtc_mode_set()
589 ast_set_crtc_reg(crtc, adjusted_mode, &vbios_mode); in ast_crtc_mode_set()
590 ast_set_offset_reg(crtc); in ast_crtc_mode_set()
592 ast_set_ext_reg(crtc, adjusted_mode, &vbios_mode); in ast_crtc_mode_set()
594 ast_set_dac_reg(crtc, adjusted_mode, &vbios_mode); in ast_crtc_mode_set()
596 ast_crtc_mode_set_base(crtc, x, y, old_fb); in ast_crtc_mode_set()
601 static void ast_crtc_disable(struct drm_crtc *crtc) in ast_crtc_disable() argument
606 static void ast_crtc_prepare(struct drm_crtc *crtc) in ast_crtc_prepare() argument
611 static void ast_crtc_commit(struct drm_crtc *crtc) in ast_crtc_commit() argument
613 struct ast_private *ast = crtc->dev->dev_private; in ast_crtc_commit()
630 static void ast_crtc_reset(struct drm_crtc *crtc) in ast_crtc_reset() argument
635 static void ast_crtc_gamma_set(struct drm_crtc *crtc, u16 *red, u16 *green, in ast_crtc_gamma_set() argument
638 struct ast_crtc *ast_crtc = to_ast_crtc(crtc); in ast_crtc_gamma_set()
647 ast_crtc_load_lut(crtc); in ast_crtc_gamma_set()
651 static void ast_crtc_destroy(struct drm_crtc *crtc) in ast_crtc_destroy() argument
653 drm_crtc_cleanup(crtc); in ast_crtc_destroy()
654 kfree(crtc); in ast_crtc_destroy()
668 struct ast_crtc *crtc; in ast_crtc_init() local
671 crtc = kzalloc(sizeof(struct ast_crtc), GFP_KERNEL); in ast_crtc_init()
672 if (!crtc) in ast_crtc_init()
675 drm_crtc_init(dev, &crtc->base, &ast_crtc_funcs); in ast_crtc_init()
676 drm_mode_crtc_set_gamma_size(&crtc->base, 256); in ast_crtc_init()
677 drm_crtc_helper_add(&crtc->base, &ast_crtc_helper_funcs); in ast_crtc_init()
680 crtc->lut_r[i] = i; in ast_crtc_init()
681 crtc->lut_g[i] = i; in ast_crtc_init()
682 crtc->lut_b[i] = i; in ast_crtc_init()
1063 static void ast_show_cursor(struct drm_crtc *crtc) in ast_show_cursor() argument
1065 struct ast_private *ast = crtc->dev->dev_private; in ast_show_cursor()
1074 static void ast_hide_cursor(struct drm_crtc *crtc) in ast_hide_cursor() argument
1076 struct ast_private *ast = crtc->dev->dev_private; in ast_hide_cursor()
1136 static int ast_cursor_set(struct drm_crtc *crtc, in ast_cursor_set() argument
1142 struct ast_private *ast = crtc->dev->dev_private; in ast_cursor_set()
1143 struct ast_crtc *ast_crtc = to_ast_crtc(crtc); in ast_cursor_set()
1153 ast_hide_cursor(crtc); in ast_cursor_set()
1160 obj = drm_gem_object_lookup(crtc->dev, file_priv, handle); in ast_cursor_set()
1212 ast_show_cursor(crtc); in ast_cursor_set()
1221 static int ast_cursor_move(struct drm_crtc *crtc, in ast_cursor_move() argument
1224 struct ast_crtc *ast_crtc = to_ast_crtc(crtc); in ast_cursor_move()
1225 struct ast_private *ast = crtc->dev->dev_private; in ast_cursor_move()