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()
553 ast_set_start_address_crt1(crtc, (u32)gpu_addr); in ast_crtc_do_set_base()
558 static int ast_crtc_mode_set_base(struct drm_crtc *crtc, int x, int y, in ast_crtc_mode_set_base() argument
561 return ast_crtc_do_set_base(crtc, old_fb, x, y, 0); in ast_crtc_mode_set_base()
564 static int ast_crtc_mode_set(struct drm_crtc *crtc, in ast_crtc_mode_set() argument
570 struct drm_device *dev = crtc->dev; in ast_crtc_mode_set()
571 struct ast_private *ast = crtc->dev->dev_private; in ast_crtc_mode_set()
579 ret = ast_get_vbios_mode_info(crtc, mode, adjusted_mode, &vbios_mode); in ast_crtc_mode_set()
586 ast_set_std_reg(crtc, adjusted_mode, &vbios_mode); in ast_crtc_mode_set()
587 ast_set_crtc_reg(crtc, adjusted_mode, &vbios_mode); in ast_crtc_mode_set()
588 ast_set_offset_reg(crtc); in ast_crtc_mode_set()
590 ast_set_ext_reg(crtc, adjusted_mode, &vbios_mode); in ast_crtc_mode_set()
592 ast_set_dac_reg(crtc, adjusted_mode, &vbios_mode); in ast_crtc_mode_set()
594 ast_crtc_mode_set_base(crtc, x, y, old_fb); in ast_crtc_mode_set()
599 static void ast_crtc_disable(struct drm_crtc *crtc) in ast_crtc_disable() argument
604 static void ast_crtc_prepare(struct drm_crtc *crtc) in ast_crtc_prepare() argument
609 static void ast_crtc_commit(struct drm_crtc *crtc) in ast_crtc_commit() argument
611 struct ast_private *ast = crtc->dev->dev_private; in ast_crtc_commit()
628 static void ast_crtc_reset(struct drm_crtc *crtc) in ast_crtc_reset() argument
633 static void ast_crtc_gamma_set(struct drm_crtc *crtc, u16 *red, u16 *green, in ast_crtc_gamma_set() argument
636 struct ast_crtc *ast_crtc = to_ast_crtc(crtc); in ast_crtc_gamma_set()
645 ast_crtc_load_lut(crtc); in ast_crtc_gamma_set()
649 static void ast_crtc_destroy(struct drm_crtc *crtc) in ast_crtc_destroy() argument
651 drm_crtc_cleanup(crtc); in ast_crtc_destroy()
652 kfree(crtc); in ast_crtc_destroy()
666 struct ast_crtc *crtc; in ast_crtc_init() local
669 crtc = kzalloc(sizeof(struct ast_crtc), GFP_KERNEL); in ast_crtc_init()
670 if (!crtc) in ast_crtc_init()
673 drm_crtc_init(dev, &crtc->base, &ast_crtc_funcs); in ast_crtc_init()
674 drm_mode_crtc_set_gamma_size(&crtc->base, 256); in ast_crtc_init()
675 drm_crtc_helper_add(&crtc->base, &ast_crtc_helper_funcs); in ast_crtc_init()
678 crtc->lut_r[i] = i; in ast_crtc_init()
679 crtc->lut_g[i] = i; in ast_crtc_init()
680 crtc->lut_b[i] = i; in ast_crtc_init()
1061 static void ast_show_cursor(struct drm_crtc *crtc) in ast_show_cursor() argument
1063 struct ast_private *ast = crtc->dev->dev_private; in ast_show_cursor()
1072 static void ast_hide_cursor(struct drm_crtc *crtc) in ast_hide_cursor() argument
1074 struct ast_private *ast = crtc->dev->dev_private; in ast_hide_cursor()
1134 static int ast_cursor_set(struct drm_crtc *crtc, in ast_cursor_set() argument
1140 struct ast_private *ast = crtc->dev->dev_private; in ast_cursor_set()
1141 struct ast_crtc *ast_crtc = to_ast_crtc(crtc); in ast_cursor_set()
1151 ast_hide_cursor(crtc); in ast_cursor_set()
1158 obj = drm_gem_object_lookup(crtc->dev, file_priv, handle); in ast_cursor_set()
1210 ast_show_cursor(crtc); in ast_cursor_set()
1219 static int ast_cursor_move(struct drm_crtc *crtc, in ast_cursor_move() argument
1222 struct ast_crtc *ast_crtc = to_ast_crtc(crtc); in ast_cursor_move()
1223 struct ast_private *ast = crtc->dev->dev_private; in ast_cursor_move()