Commit aae74ff9 authored by Ainux's avatar Ainux Committed by Thomas Zimmermann
Browse files

drm/ast: Add detect function support



The existence of the connector cannot be detected,
so add the detect function to support.

Signed-off-by: default avatarAinux <ainux.wang@gmail.com>
Signed-off-by: default avatarThomas Zimmermann <tzimmermann@suse.de>
Link: https://patchwork.freedesktop.org/patch/msgid/20210526111515.40015-1-ainux.wang@gmail.com
parent c2a61865
Loading
Loading
Loading
Loading
+17 −1
Original line number Diff line number Diff line
@@ -1293,6 +1293,18 @@ static enum drm_mode_status ast_mode_valid(struct drm_connector *connector,
	return flags;
}

static enum drm_connector_status ast_connector_detect(struct drm_connector
						   *connector, bool force)
{
	int r;

	r = ast_get_modes(connector);
	if (r < 0)
		return connector_status_disconnected;

	return connector_status_connected;
}

static void ast_connector_destroy(struct drm_connector *connector)
{
	struct ast_connector *ast_connector = to_ast_connector(connector);
@@ -1307,6 +1319,7 @@ static const struct drm_connector_helper_funcs ast_connector_helper_funcs = {

static const struct drm_connector_funcs ast_connector_funcs = {
	.reset = drm_atomic_helper_connector_reset,
	.detect = ast_connector_detect,
	.fill_modes = drm_helper_probe_single_connector_modes,
	.destroy = ast_connector_destroy,
	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
@@ -1334,7 +1347,8 @@ static int ast_connector_init(struct drm_device *dev)
	connector->interlace_allowed = 0;
	connector->doublescan_allowed = 0;

	connector->polled = DRM_CONNECTOR_POLL_CONNECT;
	connector->polled = DRM_CONNECTOR_POLL_CONNECT |
						DRM_CONNECTOR_POLL_DISCONNECT;

	drm_connector_attach_encoder(connector, encoder);

@@ -1403,6 +1417,8 @@ int ast_mode_config_init(struct ast_private *ast)

	drm_mode_config_reset(dev);

	drm_kms_helper_poll_init(dev);

	return 0;
}