void ast_init_3rdtx(struct drm_device *dev) { struct ast_private *ast = dev->dev_private; u8 jreg; u32 data; if (ast->chip == AST2300 || ast->chip == AST2400) { jreg = ast_get_index_reg_mask(ast, AST_IO_CRTC_PORT, 0xd1, 0xff); switch (jreg & 0x0e) { case 0x04: ast_init_dvo(dev); break; case 0x08: ast_launch_m68k(dev); break; case 0x0c: ast_init_dvo(dev); break; default: if (ast->tx_chip_type == AST_TX_SIL164) ast_init_dvo(dev); else { ast_write32(ast, 0x12000, 0x1688a8a8); data = ast_read32(ast, 0x1202c); data &= 0xfffcffff; ast_write32(ast, 0, data); } } } }
void ast_init_3rdtx(struct drm_device *dev) { struct ast_private *ast = dev->dev_private; u8 jreg; if (ast->chip == AST2300 || ast->chip == AST2400) { jreg = ast_get_index_reg_mask(ast, AST_IO_CRTC_PORT, 0xd1, 0xff); switch (jreg & 0x0e) { case 0x04: ast_init_dvo(dev); break; case 0x08: ast_launch_m68k(dev); break; case 0x0c: ast_init_dvo(dev); break; default: if (ast->tx_chip_type == AST_TX_SIL164) ast_init_dvo(dev); else ast_init_analog(dev); } } }