Lines Matching refs:ast

54 static inline void ast_load_palette_index(struct ast_device *ast,  in ast_load_palette_index()  argument
58 ast_io_write8(ast, AST_IO_DAC_INDEX_WRITE, index); in ast_load_palette_index()
59 ast_io_read8(ast, AST_IO_SEQ_PORT); in ast_load_palette_index()
60 ast_io_write8(ast, AST_IO_DAC_DATA, red); in ast_load_palette_index()
61 ast_io_read8(ast, AST_IO_SEQ_PORT); in ast_load_palette_index()
62 ast_io_write8(ast, AST_IO_DAC_DATA, green); in ast_load_palette_index()
63 ast_io_read8(ast, AST_IO_SEQ_PORT); in ast_load_palette_index()
64 ast_io_write8(ast, AST_IO_DAC_DATA, blue); in ast_load_palette_index()
65 ast_io_read8(ast, AST_IO_SEQ_PORT); in ast_load_palette_index()
68 static void ast_crtc_set_gamma_linear(struct ast_device *ast, in ast_crtc_set_gamma_linear() argument
78 ast_load_palette_index(ast, i, i, i, i); in ast_crtc_set_gamma_linear()
81 drm_warn_once(&ast->base, "Unsupported format %p4cc for gamma correction\n", in ast_crtc_set_gamma_linear()
87 static void ast_crtc_set_gamma(struct ast_device *ast, in ast_crtc_set_gamma() argument
98 ast_load_palette_index(ast, i, in ast_crtc_set_gamma()
104 drm_warn_once(&ast->base, "Unsupported format %p4cc for gamma correction\n", in ast_crtc_set_gamma()
235 static void ast_set_vbios_color_reg(struct ast_device *ast, in ast_set_vbios_color_reg() argument
256 ast_set_index_reg(ast, AST_IO_CRTC_PORT, 0x8c, (u8)((color_index & 0x0f) << 4)); in ast_set_vbios_color_reg()
258 ast_set_index_reg(ast, AST_IO_CRTC_PORT, 0x91, 0x00); in ast_set_vbios_color_reg()
261 ast_set_index_reg(ast, AST_IO_CRTC_PORT, 0x91, 0xa8); in ast_set_vbios_color_reg()
262 ast_set_index_reg(ast, AST_IO_CRTC_PORT, 0x92, format->cpp[0] * 8); in ast_set_vbios_color_reg()
266 static void ast_set_vbios_mode_reg(struct ast_device *ast, in ast_set_vbios_mode_reg() argument
275 ast_set_index_reg(ast, AST_IO_CRTC_PORT, 0x8d, refresh_rate_index & 0xff); in ast_set_vbios_mode_reg()
276 ast_set_index_reg(ast, AST_IO_CRTC_PORT, 0x8e, mode_id & 0xff); in ast_set_vbios_mode_reg()
278 ast_set_index_reg(ast, AST_IO_CRTC_PORT, 0x91, 0x00); in ast_set_vbios_mode_reg()
281 ast_set_index_reg(ast, AST_IO_CRTC_PORT, 0x91, 0xa8); in ast_set_vbios_mode_reg()
282 ast_set_index_reg(ast, AST_IO_CRTC_PORT, 0x93, adjusted_mode->clock / 1000); in ast_set_vbios_mode_reg()
283 ast_set_index_reg(ast, AST_IO_CRTC_PORT, 0x94, adjusted_mode->crtc_hdisplay); in ast_set_vbios_mode_reg()
284 ast_set_index_reg(ast, AST_IO_CRTC_PORT, 0x95, adjusted_mode->crtc_hdisplay >> 8); in ast_set_vbios_mode_reg()
285 ast_set_index_reg(ast, AST_IO_CRTC_PORT, 0x96, adjusted_mode->crtc_vdisplay); in ast_set_vbios_mode_reg()
286 ast_set_index_reg(ast, AST_IO_CRTC_PORT, 0x97, adjusted_mode->crtc_vdisplay >> 8); in ast_set_vbios_mode_reg()
290 static void ast_set_std_reg(struct ast_device *ast, in ast_set_std_reg() argument
301 ast_io_write8(ast, AST_IO_MISC_PORT_WRITE, jreg); in ast_set_std_reg()
304 ast_set_index_reg(ast, AST_IO_SEQ_PORT, 0x00, 0x03); in ast_set_std_reg()
305 ast_set_index_reg_mask(ast, AST_IO_SEQ_PORT, 0x01, 0xdf, stdtable->seq[0]); in ast_set_std_reg()
308 ast_set_index_reg(ast, AST_IO_SEQ_PORT, (i + 1), jreg); in ast_set_std_reg()
312 ast_set_index_reg_mask(ast, AST_IO_CRTC_PORT, 0x11, 0x7f, 0x00); in ast_set_std_reg()
314 ast_set_index_reg(ast, AST_IO_CRTC_PORT, i, stdtable->crtc[i]); in ast_set_std_reg()
316 ast_set_index_reg(ast, AST_IO_CRTC_PORT, i, stdtable->crtc[i]); in ast_set_std_reg()
318 ast_set_index_reg(ast, AST_IO_CRTC_PORT, i, stdtable->crtc[i]); in ast_set_std_reg()
321 jreg = ast_io_read8(ast, AST_IO_INPUT_STATUS1_READ); in ast_set_std_reg()
324 ast_io_write8(ast, AST_IO_AR_PORT_WRITE, (u8)i); in ast_set_std_reg()
325 ast_io_write8(ast, AST_IO_AR_PORT_WRITE, jreg); in ast_set_std_reg()
327 ast_io_write8(ast, AST_IO_AR_PORT_WRITE, 0x14); in ast_set_std_reg()
328 ast_io_write8(ast, AST_IO_AR_PORT_WRITE, 0x00); in ast_set_std_reg()
330 jreg = ast_io_read8(ast, AST_IO_INPUT_STATUS1_READ); in ast_set_std_reg()
331 ast_io_write8(ast, AST_IO_AR_PORT_WRITE, 0x20); in ast_set_std_reg()
335 ast_set_index_reg(ast, AST_IO_GR_PORT, i, stdtable->gr[i]); in ast_set_std_reg()
338 static void ast_set_crtc_reg(struct ast_device *ast, in ast_set_crtc_reg() argument
345 if ((IS_AST_GEN6(ast) || IS_AST_GEN7(ast)) && in ast_set_crtc_reg()
349 ast_set_index_reg_mask(ast, AST_IO_CRTC_PORT, 0x11, 0x7f, 0x00); in ast_set_crtc_reg()
354 ast_set_index_reg_mask(ast, AST_IO_CRTC_PORT, 0x00, 0x00, temp); in ast_set_crtc_reg()
359 ast_set_index_reg_mask(ast, AST_IO_CRTC_PORT, 0x01, 0x00, temp); in ast_set_crtc_reg()
364 ast_set_index_reg_mask(ast, AST_IO_CRTC_PORT, 0x02, 0x00, temp); in ast_set_crtc_reg()
371 ast_set_index_reg_mask(ast, AST_IO_CRTC_PORT, 0x03, 0xE0, (temp & 0x1f)); in ast_set_crtc_reg()
376 ast_set_index_reg_mask(ast, AST_IO_CRTC_PORT, 0x04, 0x00, temp); in ast_set_crtc_reg()
381 ast_set_index_reg_mask(ast, AST_IO_CRTC_PORT, 0x05, 0x60, (u8)((temp & 0x1f) | jreg05)); in ast_set_crtc_reg()
383 ast_set_index_reg_mask(ast, AST_IO_CRTC_PORT, 0xAC, 0x00, jregAC); in ast_set_crtc_reg()
384 ast_set_index_reg_mask(ast, AST_IO_CRTC_PORT, 0xAD, 0x00, jregAD); in ast_set_crtc_reg()
387 if (IS_AST_GEN7(ast) && (mode->crtc_vdisplay == 1080)) in ast_set_crtc_reg()
388 ast_set_index_reg_mask(ast, AST_IO_CRTC_PORT, 0xFC, 0xFD, 0x02); in ast_set_crtc_reg()
390 ast_set_index_reg_mask(ast, AST_IO_CRTC_PORT, 0xFC, 0xFD, 0x00); in ast_set_crtc_reg()
400 ast_set_index_reg_mask(ast, AST_IO_CRTC_PORT, 0x06, 0x00, temp); in ast_set_crtc_reg()
409 ast_set_index_reg_mask(ast, AST_IO_CRTC_PORT, 0x10, 0x00, temp); in ast_set_crtc_reg()
416 ast_set_index_reg_mask(ast, AST_IO_CRTC_PORT, 0x11, 0x70, temp & 0xf); in ast_set_crtc_reg()
425 ast_set_index_reg_mask(ast, AST_IO_CRTC_PORT, 0x12, 0x00, temp); in ast_set_crtc_reg()
434 ast_set_index_reg_mask(ast, AST_IO_CRTC_PORT, 0x15, 0x00, temp); in ast_set_crtc_reg()
439 ast_set_index_reg_mask(ast, AST_IO_CRTC_PORT, 0x16, 0x00, temp); in ast_set_crtc_reg()
441 ast_set_index_reg_mask(ast, AST_IO_CRTC_PORT, 0x07, 0x00, jreg07); in ast_set_crtc_reg()
442 ast_set_index_reg_mask(ast, AST_IO_CRTC_PORT, 0x09, 0xdf, jreg09); in ast_set_crtc_reg()
443 ast_set_index_reg_mask(ast, AST_IO_CRTC_PORT, 0xAE, 0x00, (jregAE | 0x80)); in ast_set_crtc_reg()
446 ast_set_index_reg_mask(ast, AST_IO_CRTC_PORT, 0xb6, 0x3f, 0x80); in ast_set_crtc_reg()
448 ast_set_index_reg_mask(ast, AST_IO_CRTC_PORT, 0xb6, 0x3f, 0x00); in ast_set_crtc_reg()
450 ast_set_index_reg_mask(ast, AST_IO_CRTC_PORT, 0x11, 0x7f, 0x80); in ast_set_crtc_reg()
453 static void ast_set_offset_reg(struct ast_device *ast, in ast_set_offset_reg() argument
459 ast_set_index_reg(ast, AST_IO_CRTC_PORT, 0x13, (offset & 0xff)); in ast_set_offset_reg()
460 ast_set_index_reg(ast, AST_IO_CRTC_PORT, 0xb0, (offset >> 8) & 0x3f); in ast_set_offset_reg()
463 static void ast_set_dclk_reg(struct ast_device *ast, in ast_set_dclk_reg() argument
469 if (IS_AST_GEN6(ast) || IS_AST_GEN7(ast)) in ast_set_dclk_reg()
474 ast_set_index_reg_mask(ast, AST_IO_CRTC_PORT, 0xc0, 0x00, clk_info->param1); in ast_set_dclk_reg()
475 ast_set_index_reg_mask(ast, AST_IO_CRTC_PORT, 0xc1, 0x00, clk_info->param2); in ast_set_dclk_reg()
476 ast_set_index_reg_mask(ast, AST_IO_CRTC_PORT, 0xbb, 0x0f, in ast_set_dclk_reg()
481 static void ast_set_color_reg(struct ast_device *ast, in ast_set_color_reg() argument
505 ast_set_index_reg_mask(ast, AST_IO_CRTC_PORT, 0xa0, 0x8f, jregA0); in ast_set_color_reg()
506 ast_set_index_reg_mask(ast, AST_IO_CRTC_PORT, 0xa3, 0xf0, jregA3); in ast_set_color_reg()
507 ast_set_index_reg_mask(ast, AST_IO_CRTC_PORT, 0xa8, 0xfd, jregA8); in ast_set_color_reg()
510 static void ast_set_crtthd_reg(struct ast_device *ast) in ast_set_crtthd_reg() argument
513 if (IS_AST_GEN7(ast)) { in ast_set_crtthd_reg()
514 ast_set_index_reg(ast, AST_IO_CRTC_PORT, 0xa7, 0xe0); in ast_set_crtthd_reg()
515 ast_set_index_reg(ast, AST_IO_CRTC_PORT, 0xa6, 0xa0); in ast_set_crtthd_reg()
516 } else if (IS_AST_GEN6(ast) || IS_AST_GEN5(ast) || IS_AST_GEN4(ast)) { in ast_set_crtthd_reg()
517 ast_set_index_reg(ast, AST_IO_CRTC_PORT, 0xa7, 0x78); in ast_set_crtthd_reg()
518 ast_set_index_reg(ast, AST_IO_CRTC_PORT, 0xa6, 0x60); in ast_set_crtthd_reg()
519 } else if (IS_AST_GEN3(ast) || IS_AST_GEN2(ast)) { in ast_set_crtthd_reg()
520 ast_set_index_reg(ast, AST_IO_CRTC_PORT, 0xa7, 0x3f); in ast_set_crtthd_reg()
521 ast_set_index_reg(ast, AST_IO_CRTC_PORT, 0xa6, 0x2f); in ast_set_crtthd_reg()
523 ast_set_index_reg(ast, AST_IO_CRTC_PORT, 0xa7, 0x2f); in ast_set_crtthd_reg()
524 ast_set_index_reg(ast, AST_IO_CRTC_PORT, 0xa6, 0x1f); in ast_set_crtthd_reg()
528 static void ast_set_sync_reg(struct ast_device *ast, in ast_set_sync_reg() argument
534 jreg = ast_io_read8(ast, AST_IO_MISC_PORT_READ); in ast_set_sync_reg()
540 ast_io_write8(ast, AST_IO_MISC_PORT_WRITE, jreg); in ast_set_sync_reg()
543 static void ast_set_start_address_crt1(struct ast_device *ast, in ast_set_start_address_crt1() argument
549 ast_set_index_reg(ast, AST_IO_CRTC_PORT, 0x0d, (u8)(addr & 0xff)); in ast_set_start_address_crt1()
550 ast_set_index_reg(ast, AST_IO_CRTC_PORT, 0x0c, (u8)((addr >> 8) & 0xff)); in ast_set_start_address_crt1()
551 ast_set_index_reg(ast, AST_IO_CRTC_PORT, 0xaf, (u8)((addr >> 16) & 0xff)); in ast_set_start_address_crt1()
555 static void ast_wait_for_vretrace(struct ast_device *ast) in ast_wait_for_vretrace() argument
561 vgair1 = ast_io_read8(ast, AST_IO_INPUT_STATUS1_READ); in ast_wait_for_vretrace()
644 struct ast_device *ast = to_ast_device(dev); in ast_primary_plane_helper_atomic_update() local
660 ast_set_color_reg(ast, fb->format); in ast_primary_plane_helper_atomic_update()
661 ast_set_vbios_color_reg(ast, fb->format, vbios_mode_info); in ast_primary_plane_helper_atomic_update()
676 ast_set_offset_reg(ast, fb); in ast_primary_plane_helper_atomic_update()
682 struct ast_device *ast = to_ast_device(plane->dev); in ast_primary_plane_helper_atomic_enable() local
691 ast_set_start_address_crt1(ast, (u32)ast_plane->offset); in ast_primary_plane_helper_atomic_enable()
692 ast_set_index_reg_mask(ast, AST_IO_SEQ_PORT, 0x1, 0xdf, 0x00); in ast_primary_plane_helper_atomic_enable()
698 struct ast_device *ast = to_ast_device(plane->dev); in ast_primary_plane_helper_atomic_disable() local
700 ast_set_index_reg_mask(ast, AST_IO_SEQ_PORT, 0x1, 0xdf, 0x20); in ast_primary_plane_helper_atomic_disable()
718 static int ast_primary_plane_init(struct ast_device *ast) in ast_primary_plane_init() argument
720 struct drm_device *dev = &ast->base; in ast_primary_plane_init()
721 struct ast_plane *ast_primary_plane = &ast->primary_plane; in ast_primary_plane_init()
723 void __iomem *vaddr = ast->vram; in ast_primary_plane_init()
726 unsigned long size = ast->vram_fb_available - cursor_size; in ast_primary_plane_init()
811 static void ast_set_cursor_base(struct ast_device *ast, u64 address) in ast_set_cursor_base() argument
817 ast_set_index_reg(ast, AST_IO_CRTC_PORT, 0xc8, addr0); in ast_set_cursor_base()
818 ast_set_index_reg(ast, AST_IO_CRTC_PORT, 0xc9, addr1); in ast_set_cursor_base()
819 ast_set_index_reg(ast, AST_IO_CRTC_PORT, 0xca, addr2); in ast_set_cursor_base()
822 static void ast_set_cursor_location(struct ast_device *ast, u16 x, u16 y, in ast_set_cursor_location() argument
830 ast_set_index_reg(ast, AST_IO_CRTC_PORT, 0xc2, x_offset); in ast_set_cursor_location()
831 ast_set_index_reg(ast, AST_IO_CRTC_PORT, 0xc3, y_offset); in ast_set_cursor_location()
832 ast_set_index_reg(ast, AST_IO_CRTC_PORT, 0xc4, x0); in ast_set_cursor_location()
833 ast_set_index_reg(ast, AST_IO_CRTC_PORT, 0xc5, x1); in ast_set_cursor_location()
834 ast_set_index_reg(ast, AST_IO_CRTC_PORT, 0xc6, y0); in ast_set_cursor_location()
835 ast_set_index_reg(ast, AST_IO_CRTC_PORT, 0xc7, y1); in ast_set_cursor_location()
838 static void ast_set_cursor_enabled(struct ast_device *ast, bool enabled) in ast_set_cursor_enabled() argument
848 ast_set_index_reg_mask(ast, AST_IO_CRTC_PORT, 0xcb, mask, vgacrcb); in ast_set_cursor_enabled()
887 struct ast_device *ast = to_ast_device(plane->dev); in ast_cursor_plane_helper_atomic_update() local
905 ast_set_cursor_base(ast, dst_off); in ast_cursor_plane_helper_atomic_update()
933 ast_set_cursor_location(ast, x, y, x_offset, y_offset); in ast_cursor_plane_helper_atomic_update()
936 ast_set_cursor_enabled(ast, true); in ast_cursor_plane_helper_atomic_update()
942 struct ast_device *ast = to_ast_device(plane->dev); in ast_cursor_plane_helper_atomic_disable() local
944 ast_set_cursor_enabled(ast, false); in ast_cursor_plane_helper_atomic_disable()
961 static int ast_cursor_plane_init(struct ast_device *ast) in ast_cursor_plane_init() argument
963 struct drm_device *dev = &ast->base; in ast_cursor_plane_init()
964 struct ast_plane *ast_cursor_plane = &ast->cursor_plane; in ast_cursor_plane_init()
978 if (ast->vram_fb_available < size) in ast_cursor_plane_init()
981 vaddr = ast->vram + ast->vram_fb_available - size; in ast_cursor_plane_init()
982 offset = ast->vram_fb_available - size; in ast_cursor_plane_init()
995 ast->vram_fb_available -= size; in ast_cursor_plane_init()
1006 struct ast_device *ast = to_ast_device(crtc->dev); in ast_crtc_dpms() local
1017 ast_set_index_reg_mask(ast, AST_IO_SEQ_PORT, 0x01, 0xdf, 0); in ast_crtc_dpms()
1018 ast_set_index_reg_mask(ast, AST_IO_CRTC_PORT, 0xb6, 0xfc, 0); in ast_crtc_dpms()
1019 if (ast->tx_chip_types & AST_TX_DP501_BIT) in ast_crtc_dpms()
1022 if (ast->tx_chip_types & AST_TX_ASTDP_BIT) { in ast_crtc_dpms()
1024 ast_wait_for_vretrace(ast); in ast_crtc_dpms()
1034 ast_set_color_reg(ast, format); in ast_crtc_dpms()
1035 ast_set_vbios_color_reg(ast, format, vbios_mode_info); in ast_crtc_dpms()
1037 ast_crtc_set_gamma(ast, format, crtc->state->gamma_lut->data); in ast_crtc_dpms()
1039 ast_crtc_set_gamma_linear(ast, format); in ast_crtc_dpms()
1046 if (ast->tx_chip_types & AST_TX_DP501_BIT) in ast_crtc_dpms()
1049 if (ast->tx_chip_types & AST_TX_ASTDP_BIT) { in ast_crtc_dpms()
1054 ast_set_index_reg_mask(ast, AST_IO_SEQ_PORT, 0x01, 0xdf, 0x20); in ast_crtc_dpms()
1055 ast_set_index_reg_mask(ast, AST_IO_CRTC_PORT, 0xb6, 0xfc, ch); in ast_crtc_dpms()
1063 struct ast_device *ast = to_ast_device(crtc->dev); in ast_crtc_helper_mode_valid() local
1067 if (ast->support_wide_screen) { in ast_crtc_helper_mode_valid()
1081 if ((ast->chip == AST2100) || // GEN2, but not AST1100 (?) in ast_crtc_helper_mode_valid()
1082 (ast->chip == AST2200) || // GEN3, but not AST2150 (?) in ast_crtc_helper_mode_valid()
1083 IS_AST_GEN4(ast) || IS_AST_GEN5(ast) || in ast_crtc_helper_mode_valid()
1084 IS_AST_GEN6(ast) || IS_AST_GEN7(ast)) { in ast_crtc_helper_mode_valid()
1089 jtemp = ast_get_index_reg_mask(ast, AST_IO_CRTC_PORT, 0xd1, 0xff); in ast_crtc_helper_mode_valid()
1189 struct ast_device *ast = to_ast_device(dev); in ast_crtc_helper_atomic_flush() local
1199 ast_crtc_set_gamma(ast, in ast_crtc_helper_atomic_flush()
1203 ast_crtc_set_gamma_linear(ast, ast_crtc_state->format); in ast_crtc_helper_atomic_flush()
1207 if (ast->tx_chip_types & AST_TX_ASTDP_BIT) in ast_crtc_helper_atomic_flush()
1214 struct ast_device *ast = to_ast_device(dev); in ast_crtc_helper_atomic_enable() local
1221 ast_set_vbios_mode_reg(ast, adjusted_mode, vbios_mode_info); in ast_crtc_helper_atomic_enable()
1222 ast_set_index_reg(ast, AST_IO_CRTC_PORT, 0xa1, 0x06); in ast_crtc_helper_atomic_enable()
1223 ast_set_std_reg(ast, adjusted_mode, vbios_mode_info); in ast_crtc_helper_atomic_enable()
1224 ast_set_crtc_reg(ast, adjusted_mode, vbios_mode_info); in ast_crtc_helper_atomic_enable()
1225 ast_set_dclk_reg(ast, adjusted_mode, vbios_mode_info); in ast_crtc_helper_atomic_enable()
1226 ast_set_crtthd_reg(ast); in ast_crtc_helper_atomic_enable()
1227 ast_set_sync_reg(ast, adjusted_mode, vbios_mode_info); in ast_crtc_helper_atomic_enable()
1236 struct ast_device *ast = to_ast_device(dev); in ast_crtc_helper_atomic_disable() local
1256 ast_wait_for_vretrace(ast); in ast_crtc_helper_atomic_disable()
1324 struct ast_device *ast = to_ast_device(dev); in ast_crtc_init() local
1325 struct drm_crtc *crtc = &ast->crtc; in ast_crtc_init()
1328 ret = drm_crtc_init_with_planes(dev, crtc, &ast->primary_plane.base, in ast_crtc_init()
1329 &ast->cursor_plane.base, &ast_crtc_funcs, in ast_crtc_init()
1350 struct ast_device *ast = to_ast_device(dev); in ast_vga_connector_helper_get_modes() local
1361 mutex_lock(&ast->ioregs_lock); in ast_vga_connector_helper_get_modes()
1367 mutex_unlock(&ast->ioregs_lock); in ast_vga_connector_helper_get_modes()
1375 mutex_unlock(&ast->ioregs_lock); in ast_vga_connector_helper_get_modes()
1423 static int ast_vga_output_init(struct ast_device *ast) in ast_vga_output_init() argument
1425 struct drm_device *dev = &ast->base; in ast_vga_output_init()
1426 struct drm_crtc *crtc = &ast->crtc; in ast_vga_output_init()
1427 struct drm_encoder *encoder = &ast->output.vga.encoder; in ast_vga_output_init()
1428 struct ast_vga_connector *ast_vga_connector = &ast->output.vga.vga_connector; in ast_vga_output_init()
1456 struct ast_device *ast = to_ast_device(dev); in ast_sil164_connector_helper_get_modes() local
1467 mutex_lock(&ast->ioregs_lock); in ast_sil164_connector_helper_get_modes()
1473 mutex_unlock(&ast->ioregs_lock); in ast_sil164_connector_helper_get_modes()
1481 mutex_unlock(&ast->ioregs_lock); in ast_sil164_connector_helper_get_modes()
1529 static int ast_sil164_output_init(struct ast_device *ast) in ast_sil164_output_init() argument
1531 struct drm_device *dev = &ast->base; in ast_sil164_output_init()
1532 struct drm_crtc *crtc = &ast->crtc; in ast_sil164_output_init()
1533 struct drm_encoder *encoder = &ast->output.sil164.encoder; in ast_sil164_output_init()
1534 struct ast_sil164_connector *ast_sil164_connector = &ast->output.sil164.sil164_connector; in ast_sil164_output_init()
1589 struct ast_device *ast = to_ast_device(connector->dev); in ast_dp501_connector_helper_detect_ctx() local
1591 if (ast_dp501_is_connected(ast)) in ast_dp501_connector_helper_detect_ctx()
1628 static int ast_dp501_output_init(struct ast_device *ast) in ast_dp501_output_init() argument
1630 struct drm_device *dev = &ast->base; in ast_dp501_output_init()
1631 struct drm_crtc *crtc = &ast->crtc; in ast_dp501_output_init()
1632 struct drm_encoder *encoder = &ast->output.dp501.encoder; in ast_dp501_output_init()
1633 struct drm_connector *connector = &ast->output.dp501.connector; in ast_dp501_output_init()
1660 struct ast_device *ast = to_ast_device(dev); in ast_astdp_connector_helper_get_modes() local
1673 mutex_lock(&ast->ioregs_lock); in ast_astdp_connector_helper_get_modes()
1679 mutex_unlock(&ast->ioregs_lock); in ast_astdp_connector_helper_get_modes()
1688 mutex_unlock(&ast->ioregs_lock); in ast_astdp_connector_helper_get_modes()
1699 struct ast_device *ast = to_ast_device(connector->dev); in ast_astdp_connector_helper_detect_ctx() local
1701 if (ast_astdp_is_connected(ast)) in ast_astdp_connector_helper_detect_ctx()
1738 static int ast_astdp_output_init(struct ast_device *ast) in ast_astdp_output_init() argument
1740 struct drm_device *dev = &ast->base; in ast_astdp_output_init()
1741 struct drm_crtc *crtc = &ast->crtc; in ast_astdp_output_init()
1742 struct drm_encoder *encoder = &ast->output.astdp.encoder; in ast_astdp_output_init()
1743 struct drm_connector *connector = &ast->output.astdp.connector; in ast_astdp_output_init()
1787 static int ast_bmc_output_init(struct ast_device *ast) in ast_bmc_output_init() argument
1789 struct drm_device *dev = &ast->base; in ast_bmc_output_init()
1790 struct drm_crtc *crtc = &ast->crtc; in ast_bmc_output_init()
1791 struct drm_encoder *encoder = &ast->output.bmc.encoder; in ast_bmc_output_init()
1792 struct drm_connector *connector = &ast->output.bmc.connector; in ast_bmc_output_init()
1822 struct ast_device *ast = to_ast_device(state->dev); in ast_mode_config_helper_atomic_commit_tail() local
1830 mutex_lock(&ast->ioregs_lock); in ast_mode_config_helper_atomic_commit_tail()
1832 mutex_unlock(&ast->ioregs_lock); in ast_mode_config_helper_atomic_commit_tail()
1843 struct ast_device *ast = to_ast_device(dev); in ast_mode_config_mode_valid() local
1846 max_fbpages = (ast->vram_fb_available) >> PAGE_SHIFT; in ast_mode_config_mode_valid()
1864 int ast_mode_config_init(struct ast_device *ast) in ast_mode_config_init() argument
1866 struct drm_device *dev = &ast->base; in ast_mode_config_init()
1878 if (ast->chip == AST2100 || // GEN2, but not AST1100 (?) in ast_mode_config_init()
1879 ast->chip == AST2200 || // GEN3, but not AST2150 (?) in ast_mode_config_init()
1880 IS_AST_GEN7(ast) || in ast_mode_config_init()
1881 IS_AST_GEN6(ast) || in ast_mode_config_init()
1882 IS_AST_GEN5(ast) || in ast_mode_config_init()
1883 IS_AST_GEN4(ast)) { in ast_mode_config_init()
1893 ret = ast_primary_plane_init(ast); in ast_mode_config_init()
1897 ret = ast_cursor_plane_init(ast); in ast_mode_config_init()
1903 if (ast->tx_chip_types & AST_TX_NONE_BIT) { in ast_mode_config_init()
1904 ret = ast_vga_output_init(ast); in ast_mode_config_init()
1908 if (ast->tx_chip_types & AST_TX_SIL164_BIT) { in ast_mode_config_init()
1909 ret = ast_sil164_output_init(ast); in ast_mode_config_init()
1913 if (ast->tx_chip_types & AST_TX_DP501_BIT) { in ast_mode_config_init()
1914 ret = ast_dp501_output_init(ast); in ast_mode_config_init()
1918 if (ast->tx_chip_types & AST_TX_ASTDP_BIT) { in ast_mode_config_init()
1919 ret = ast_astdp_output_init(ast); in ast_mode_config_init()
1923 ret = ast_bmc_output_init(ast); in ast_mode_config_init()