Lines Matching +full:vga +full:- +full:connector
1 // SPDX-License-Identifier: GPL-2.0
20 release_firmware(ast->dp501_fw); in ast_release_firmware()
21 ast->dp501_fw = NULL; in ast_release_firmware()
26 struct drm_device *dev = &ast->base; in ast_load_dp501_microcode()
29 ret = request_firmware(&ast->dp501_fw, "ast_dp501_fw.bin", dev->dev); in ast_load_dp501_microcode()
33 return devm_add_action_or_reset(dev->dev, ast_release_firmware, ast); in ast_load_dp501_microcode()
194 if (ast->config_mode != ast_use_p2a) in ast_backup_fw()
214 if (ast->config_mode != ast_use_p2a) in ast_launch_m68k()
220 if (ast->dp501_fw_addr) { in ast_launch_m68k()
221 fw_addr = ast->dp501_fw_addr; in ast_launch_m68k()
224 if (!ast->dp501_fw && in ast_launch_m68k()
228 fw_addr = (u8 *)ast->dp501_fw->data; in ast_launch_m68k()
229 len = ast->dp501_fw->size; in ast_launch_m68k()
249 boot_address -= 0x200000; /* -2MB */ in ast_launch_m68k()
280 if (ast->config_mode == ast_use_p2a) { in ast_dp501_is_connected()
295 if (!ast->dp501_fw_buf) in ast_dp501_is_connected()
300 data = readl(ast->dp501_fw_buf + offset); in ast_dp501_is_connected()
304 data = readl(ast->dp501_fw_buf + offset); in ast_dp501_is_connected()
310 data = readl(ast->dp501_fw_buf + offset); in ast_dp501_is_connected()
324 return -EIO; in ast_dp512_read_edid_block()
328 if (ast->config_mode == ast_use_p2a) { in ast_dp512_read_edid_block()
333 memcpy(buf, &ediddata, min((len - i), 4)); in ast_dp512_read_edid_block()
338 ediddata = readl(ast->dp501_fw_buf + offset + i); in ast_dp512_read_edid_block()
339 memcpy(buf, &ediddata, min((len - i), 4)); in ast_dp512_read_edid_block()
366 /* multi-pins for DVO single-edge */ in ast_init_dvo()
371 /* multi-pins for DVO single-edge */ in ast_init_dvo()
376 /* multi-pins for DVO single-edge */ in ast_init_dvo()
382 /* multi-pins for DVO single-edge */ in ast_init_dvo()
387 /* multi-pins for DVO single-edge */ in ast_init_dvo()
392 /* multi-pins for DVO single-edge */ in ast_init_dvo()
397 /* multi-pins for DVO single-edge */ in ast_init_dvo()
402 /* multi-pins for DVO single-edge */ in ast_init_dvo()
413 /* Init VGA DVO Settings */ in ast_init_dvo()
424 * Set DAC source to VGA mode in SCU2C via the P2A in ast_init_analog()
463 if (ast->tx_chip == AST_TX_SIL164) in ast_init_3rdtx()
482 struct ast_device *ast = to_ast_device(encoder->dev); in ast_dp501_encoder_helper_atomic_enable()
490 struct ast_device *ast = to_ast_device(encoder->dev); in ast_dp501_encoder_helper_atomic_disable()
501 * Connector
504 static int ast_dp501_connector_helper_get_modes(struct drm_connector *connector) in ast_dp501_connector_helper_get_modes() argument
506 struct ast_connector *ast_connector = to_ast_connector(connector); in ast_dp501_connector_helper_get_modes()
509 if (ast_connector->physical_status == connector_status_connected) { in ast_dp501_connector_helper_get_modes()
510 struct ast_device *ast = to_ast_device(connector->dev); in ast_dp501_connector_helper_get_modes()
513 drm_edid = drm_edid_read_custom(connector, ast_dp512_read_edid_block, ast); in ast_dp501_connector_helper_get_modes()
514 drm_edid_connector_update(connector, drm_edid); in ast_dp501_connector_helper_get_modes()
515 count = drm_edid_connector_add_modes(connector); in ast_dp501_connector_helper_get_modes()
518 drm_edid_connector_update(connector, NULL); in ast_dp501_connector_helper_get_modes()
521 * There's no EDID data without a connected monitor. Set BMC- in ast_dp501_connector_helper_get_modes()
525 count = drm_add_modes_noedid(connector, 4096, 4096); in ast_dp501_connector_helper_get_modes()
527 drm_set_preferred_mode(connector, 1024, 768); in ast_dp501_connector_helper_get_modes()
533 static int ast_dp501_connector_helper_detect_ctx(struct drm_connector *connector, in ast_dp501_connector_helper_detect_ctx() argument
537 struct ast_connector *ast_connector = to_ast_connector(connector); in ast_dp501_connector_helper_detect_ctx()
538 struct ast_device *ast = to_ast_device(connector->dev); in ast_dp501_connector_helper_detect_ctx()
544 if (status != ast_connector->physical_status) in ast_dp501_connector_helper_detect_ctx()
545 ++connector->epoch_counter; in ast_dp501_connector_helper_detect_ctx()
546 ast_connector->physical_status = status; in ast_dp501_connector_helper_detect_ctx()
570 struct drm_device *dev = &ast->base; in ast_dp501_output_init()
571 struct drm_crtc *crtc = &ast->crtc; in ast_dp501_output_init()
574 struct drm_connector *connector; in ast_dp501_output_init() local
579 encoder = &ast->output.dp501.encoder; in ast_dp501_output_init()
586 encoder->possible_crtcs = drm_crtc_mask(crtc); in ast_dp501_output_init()
588 /* connector */ in ast_dp501_output_init()
590 ast_connector = &ast->output.dp501.connector; in ast_dp501_output_init()
591 connector = &ast_connector->base; in ast_dp501_output_init()
592 ret = drm_connector_init(dev, connector, &ast_dp501_connector_funcs, in ast_dp501_output_init()
596 drm_connector_helper_add(connector, &ast_dp501_connector_helper_funcs); in ast_dp501_output_init()
598 connector->interlace_allowed = 0; in ast_dp501_output_init()
599 connector->doublescan_allowed = 0; in ast_dp501_output_init()
600 connector->polled = DRM_CONNECTOR_POLL_CONNECT | DRM_CONNECTOR_POLL_DISCONNECT; in ast_dp501_output_init()
602 ast_connector->physical_status = connector->status; in ast_dp501_output_init()
604 ret = drm_connector_attach_encoder(connector, encoder); in ast_dp501_output_init()