diff options
Diffstat (limited to 'common/recipes-kernel/linux/files/0607-drm-amd-dal-share-initialization-between-connectors.patch')
-rw-r--r-- | common/recipes-kernel/linux/files/0607-drm-amd-dal-share-initialization-between-connectors.patch | 221 |
1 files changed, 0 insertions, 221 deletions
diff --git a/common/recipes-kernel/linux/files/0607-drm-amd-dal-share-initialization-between-connectors.patch b/common/recipes-kernel/linux/files/0607-drm-amd-dal-share-initialization-between-connectors.patch deleted file mode 100644 index ff9eec50..00000000 --- a/common/recipes-kernel/linux/files/0607-drm-amd-dal-share-initialization-between-connectors.patch +++ /dev/null @@ -1,221 +0,0 @@ -From c0f9678f83fea7283f961c8853062637400b4693 Mon Sep 17 00:00:00 2001 -From: Mykola Lysenko <Mykola.Lysenko@amd.com> -Date: Thu, 10 Dec 2015 20:12:49 +0800 -Subject: [PATCH 0607/1110] drm/amd/dal: share initialization between - connectors - -Also initialize DPMS to OFF state - -Signed-off-by: Harry Wentland <harry.wentland@amd.com> -Acked-by: Harry Wentland<harry.wentland@amd.com> ---- - .../drm/amd/dal/amdgpu_dm/amdgpu_dm_mst_types.c | 37 +++++++--- - .../gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm_types.c | 82 +++++++++++++--------- - .../gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm_types.h | 7 ++ - 3 files changed, 84 insertions(+), 42 deletions(-) - -diff --git a/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm_mst_types.c b/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm_mst_types.c -index ba1c854..3246dcd 100644 ---- a/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm_mst_types.c -+++ b/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm_mst_types.c -@@ -261,6 +261,7 @@ static struct drm_connector *dm_dp_add_mst_connector(struct drm_dp_mst_topology_ - { - struct amdgpu_connector *master = container_of(mgr, struct amdgpu_connector, mst_mgr); - struct drm_device *dev = master->base.dev; -+ struct amdgpu_device *adev = dev->dev_private; - struct amdgpu_connector *aconnector; - struct drm_connector *connector; - -@@ -272,21 +273,41 @@ static struct drm_connector *dm_dp_add_mst_connector(struct drm_dp_mst_topology_ - connector = &aconnector->base; - aconnector->port = port; - aconnector->mst_port = master; -- aconnector->dc_link = master->dc_link; -- aconnector->base.polled = DRM_CONNECTOR_POLL_HPD; - -- sema_init(&aconnector->mst_sem, 1); -+ if (drm_connector_init( -+ dev, -+ connector, -+ &dm_dp_mst_connector_funcs, -+ DRM_MODE_CONNECTOR_DisplayPort)) { -+ kfree(aconnector); -+ return NULL; -+ } -+ drm_connector_helper_add(connector, &dm_dp_mst_connector_helper_funcs); - -- /* Initialize connector state before adding the connectror to drm and framebuffer lists */ -- amdgpu_dm_connector_funcs_reset(connector); -+ amdgpu_dm_connector_init_helper( -+ &adev->dm, -+ aconnector, -+ DRM_MODE_CONNECTOR_DisplayPort, -+ master->dc_link, -+ master->connector_id); - -- drm_connector_init(dev, connector, &dm_dp_mst_connector_funcs, DRM_MODE_CONNECTOR_DisplayPort); -- drm_connector_helper_add(connector, &dm_dp_mst_connector_helper_funcs); - aconnector->mst_encoder = dm_dp_create_fake_mst_encoder(master); - -- drm_object_attach_property(&connector->base, dev->mode_config.path_property, 0); -+ /* -+ * TODO: understand why this one is needed -+ */ -+ drm_object_attach_property( -+ &connector->base, -+ dev->mode_config.path_property, -+ 0); -+ - drm_mode_connector_set_path_property(connector, pathprop); - -+ /* -+ * Initialize connector state before adding the connectror to drm and -+ * framebuffer lists -+ */ -+ amdgpu_dm_connector_funcs_reset(connector); - - DRM_DEBUG_KMS(":%d\n", connector->base.id); - -diff --git a/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm_types.c b/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm_types.c -index ea7a623..45a2a68 100644 ---- a/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm_types.c -+++ b/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm_types.c -@@ -1753,45 +1753,24 @@ int amdgpu_dm_connector_get_modes(struct drm_connector *connector) - return amdgpu_connector->num_modes; - } - --/* Note: this function assumes that dc_link_detect() was called for the -- * dc_link which will be represented by this aconnector. */ --int amdgpu_dm_connector_init( -+void amdgpu_dm_connector_init_helper( - struct amdgpu_display_manager *dm, - struct amdgpu_connector *aconnector, -- uint32_t link_index, -- struct amdgpu_encoder *aencoder) -+ int connector_type, -+ const struct dc_link *link, -+ int link_index) - { -- int res, connector_type; - struct amdgpu_device *adev = dm->ddev->dev_private; -- struct dc *dc = dm->dc; -- const struct dc_link *link = dc_get_link_at_index(dc, link_index); -- -- DRM_DEBUG_KMS("%s()\n", __func__); -- -- connector_type = to_drm_connector_type(link->connector_signal); -- -- res = drm_connector_init( -- dm->ddev, -- &aconnector->base, -- &amdgpu_dm_connector_funcs, -- connector_type); -- -- if (res) { -- DRM_ERROR("connector_init failed\n"); -- aconnector->connector_id = -1; -- return res; -- } -- -- drm_connector_helper_add( -- &aconnector->base, -- &amdgpu_dm_connector_helper_funcs); - - aconnector->connector_id = link_index; - aconnector->dc_link = link; - aconnector->base.interlace_allowed = true; - aconnector->base.doublescan_allowed = true; -+ aconnector->base.dpms = DRM_MODE_DPMS_OFF; - aconnector->hpd.hpd = link_index; /* maps to 'enum amdgpu_hpd_id' */ - -+ -+ - /*configure suport HPD hot plug connector_>polled default value is 0 - * which means HPD hot plug not supported*/ - switch (connector_type) { -@@ -1822,15 +1801,51 @@ int amdgpu_dm_connector_init( - adev->mode_info.underscan_vborder_property, - 0); - -- /* TODO: Don't do this manually anymore -- aconnector->base.encoder = &aencoder->base; -- */ -+ sema_init(&aconnector->mst_sem, 1); -+} -+ -+/* Note: this function assumes that dc_link_detect() was called for the -+ * dc_link which will be represented by this aconnector. */ -+int amdgpu_dm_connector_init( -+ struct amdgpu_display_manager *dm, -+ struct amdgpu_connector *aconnector, -+ uint32_t link_index, -+ struct amdgpu_encoder *aencoder) -+{ -+ int res, connector_type; -+ struct dc *dc = dm->dc; -+ const struct dc_link *link = dc_get_link_at_index(dc, link_index); -+ -+ DRM_DEBUG_KMS("%s()\n", __func__); -+ -+ connector_type = to_drm_connector_type(link->connector_signal); -+ -+ res = drm_connector_init( -+ dm->ddev, -+ &aconnector->base, -+ &amdgpu_dm_connector_funcs, -+ connector_type); -+ -+ if (res) { -+ DRM_ERROR("connector_init failed\n"); -+ aconnector->connector_id = -1; -+ return res; -+ } -+ -+ drm_connector_helper_add( -+ &aconnector->base, -+ &amdgpu_dm_connector_helper_funcs); -+ -+ amdgpu_dm_connector_init_helper( -+ dm, -+ aconnector, -+ connector_type, -+ link, -+ link_index); - - drm_mode_connector_attach_encoder( - &aconnector->base, &aencoder->base); - -- /*drm_sysfs_connector_add(&dm_connector->base);*/ -- - drm_connector_register(&aconnector->base); - - if (connector_type == DRM_MODE_CONNECTOR_DisplayPort) -@@ -1856,7 +1871,6 @@ int amdgpu_dm_connector_init( - dm->backlight_link = link; - } - #endif -- sema_init(&aconnector->mst_sem, 1); - - return 0; - } -diff --git a/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm_types.h b/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm_types.h -index 0639732..1b8b3eb 100644 ---- a/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm_types.h -+++ b/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm_types.h -@@ -85,6 +85,13 @@ int amdgpu_dm_connector_atomic_set_property( - - int amdgpu_dm_get_encoder_crtc_mask(struct amdgpu_device *adev); - -+void amdgpu_dm_connector_init_helper( -+ struct amdgpu_display_manager *dm, -+ struct amdgpu_connector *aconnector, -+ int connector_type, -+ const struct dc_link *link, -+ int link_index); -+ - extern const struct drm_encoder_helper_funcs amdgpu_dm_encoder_helper_funcs; - - #endif /* __AMDGPU_DM_TYPES_H__ */ --- -2.7.4 - |