From patchwork Fri Jan 22 22:07:28 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Harry Wentland X-Patchwork-Id: 8093691 Return-Path: X-Original-To: patchwork-dri-devel@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork1.web.kernel.org (Postfix) with ESMTP id 903149F744 for ; Fri, 22 Jan 2016 22:08:40 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 75737205BB for ; Fri, 22 Jan 2016 22:08:39 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) by mail.kernel.org (Postfix) with ESMTP id 9A065205BE for ; Fri, 22 Jan 2016 22:08:37 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id E7A567A013; Fri, 22 Jan 2016 14:08:36 -0800 (PST) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from na01-bl2-obe.outbound.protection.outlook.com (mail-bl2on0074.outbound.protection.outlook.com [65.55.169.74]) by gabe.freedesktop.org (Postfix) with ESMTPS id 6E6907A014 for ; Fri, 22 Jan 2016 14:08:35 -0800 (PST) Received: from CY1PR1201CA0042.namprd12.prod.outlook.com (10.169.17.180) by BN4PR12MB0851.namprd12.prod.outlook.com (10.164.59.13) with Microsoft SMTP Server (TLS) id 15.1.390.13; Fri, 22 Jan 2016 22:08:32 +0000 Received: from CO1NAM03FT021.eop-NAM03.prod.protection.outlook.com (2a01:111:f400:7e48::202) by CY1PR1201CA0042.outlook.office365.com (2a01:111:e400:5b9a::52) with Microsoft SMTP Server (TLS) id 15.1.390.13 via Frontend Transport; Fri, 22 Jan 2016 22:08:33 +0000 Authentication-Results: spf=none (sender IP is 165.204.84.222) smtp.mailfrom=amd.com; lists.freedesktop.org; dkim=none (message not signed) header.d=none;lists.freedesktop.org; dmarc=permerror action=none header.from=amd.com; Received-SPF: None (protection.outlook.com: amd.com does not designate permitted sender hosts) Received: from atltwp02.amd.com (165.204.84.222) by CO1NAM03FT021.mail.protection.outlook.com (10.152.80.180) with Microsoft SMTP Server id 15.1.390.12 via Frontend Transport; Fri, 22 Jan 2016 22:08:32 +0000 X-WSS-ID: 0O1DK65-08-AL5-02 X-M-MSG: Received: from satlvexedge02.amd.com (satlvexedge02.amd.com [10.177.96.29]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by atltwp02.amd.com (Axway MailGate 5.3.1) with ESMTPS id 22D6BD2302A for ; Fri, 22 Jan 2016 17:08:28 -0500 (EST) Received: from SATLEXDAG04.amd.com (10.181.40.9) by SATLVEXEDGE02.amd.com (10.177.96.29) with Microsoft SMTP Server (TLS) id 14.3.195.1; Fri, 22 Jan 2016 16:08:35 -0600 Received: from STOREXDAG02.amd.com (10.1.13.11) by satlexdag04.amd.com (10.181.40.9) with Microsoft SMTP Server (TLS) id 14.3.266.1; Fri, 22 Jan 2016 17:08:29 -0500 Received: from cnhwentlanub.amd.com (172.29.225.36) by storexdag02.amd.com (10.1.13.11) with Microsoft SMTP Server id 14.3.266.1; Fri, 22 Jan 2016 17:08:28 -0500 From: Harry Wentland To: Subject: [PATCH 4/5] drm/dp/mst: move GUID storage from mgr, port to only mst branch Date: Fri, 22 Jan 2016 17:07:28 -0500 Message-ID: <1453500449-9224-5-git-send-email-harry.wentland@amd.com> X-Mailer: git-send-email 2.1.4 In-Reply-To: <1453500449-9224-1-git-send-email-harry.wentland@amd.com> References: <1453500449-9224-1-git-send-email-harry.wentland@amd.com> MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-Forefront-Antispam-Report: CIP:165.204.84.222; CTRY:US; IPV:NLI; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(2980300002)(428002)(199003)(189002)(53416004)(36756003)(19580395003)(106466001)(229853001)(19580405001)(105586002)(2351001)(2950100001)(4326007)(92566002)(101416001)(586003)(33646002)(77096005)(76176999)(87936001)(50986999)(2906002)(189998001)(5003600100002)(97736004)(110136002)(47776003)(5003940100001)(5008740100001)(50226001)(50466002)(48376002)(86362001)(450100001)(1096002)(1220700001); DIR:OUT; SFP:1101; SCL:1; SRVR:BN4PR12MB0851; H:atltwp02.amd.com; FPR:; SPF:None; PTR:InfoDomainNonexistent; A:1; MX:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BN4PR12MB0851; 2:HbCY3GWWoBa+PjOLrN9Qy1UlD+IrhDMruP2kTJaJWXzcXf95nF4qC3EL4yyshWTgMM3MpJXygt7nKF98BSHKsV54k0eJGvHPvEW6AEt/dgSe3GJ5CjORxsQjLDNfe48QCpakrBHMg3NPDgJJGJXVUQ==; 3:sRm3wL7GuDxx2liexfq6KBKMJ4iqGBgqaf7dzk2h9VTFHXsgIUQtVXn3306qo4RARwqkBZKjH+gIBg9c/Lr1wM4zQUoO5cslCpixhGR3QKdGbZb1W182+MEjGp0rDw0gQQRKTEDIAns3T3pF2Kau9aBkumgObKx0vTiUTi6/wCykrExyLEoToQ5VgSenvZosk0Ty4+tRXSLXsv3Zc0adec+DvFmzOVmGRnpdakPfG74=; 25:wzZb+2YUObNi0604/I5Hq1FZU0d995OUplfqLf7eDluI8gE4ZMMailyKhlGx0ANF3FSauUkDZs7SJNNJ8/zkVVWrm3HPhgQhOFZPdpR4FUH3hxQMujGvUs6Tu+UPQjF9FpyGwBr+KRe5M9GLADo5+QTN13gImO9QakueI0MkgWYC/icNsR5QEHo2ltMW5vF14jPUldvlusL6NRdGHHr+N7LlLkQaPJWbCzcJrMQsqLk928nerx/JazsS+oLWwAzf X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BN4PR12MB0851; X-MS-Office365-Filtering-Correlation-Id: e2178fa4-1e17-43c1-9fd4-08d323789110 X-Microsoft-Exchange-Diagnostics: 1; BN4PR12MB0851; 20:qypoxCMWD3OXqjqVDpg7e0dU1C1IrQR64QKa2rnAtqKXucKSo+n5HJ/7HSiGUhi1sKivJNDwaD/ap+FBYGXD1JbsXLsWHGl30wBADRPpWrLJdV09Kabzznzc6DAhFfCNYa03X/TSUuJkmU+z9cTASGOp9e37kvsyaCzC1euaQdfcpWdekatX+vK+CuiFW21cfbKN/RXBf+mSp/5pLTP2j98Z4GDXG3OlY44rQr/siPRyAj5n69iDciPVMS5jtbA9Uc4vAvfXwtdE58E42NF6qFa7XwskUKR7Anv4QuKf6Bykv4Le4iLyiG2PVS2Ngl5uV8QVwfGHadFXXaOuc+qUADDSqWXmi+wGd5bZaXx5jw0ycucxcDYjTs9MZPcnCZYwOdzycJ3Whyc8TxbHWKg67m0fmvrlmH6FtT/inpE32vmwNamNnwdV7mRPGkgyiriQen7RY1y4psKu28ZuqbvGHrPETx1rW2iZdIUSVtFcQWmyVu+h0rlwOewMXyPGxq9p X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(767451399110); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(123027)(601004)(2401047)(13018025)(520078)(13023025)(13015025)(13017025)(8121501046)(13024025)(5005006)(3002001)(10201501046); SRVR:BN4PR12MB0851; BCL:0; PCL:0; RULEID:; SRVR:BN4PR12MB0851; X-Microsoft-Exchange-Diagnostics: 1; BN4PR12MB0851; 4:f40Y2bXM24zLgY2FWg9PQ8dV1RefZxD8G225lO2iRM3FTcIBOrI3T6DVvHcK6uGQy16KDC1oQnOsjbcuj8u2HwK+iizXiluHhGr9B7kMX9AxONPiIW3nVx4gcX0ZAPWQLLcIAiLecClU2NkpLUYzyTqnhzl1ly2HbAl5btB3pO+yMvC3qbVrX4i3yHtqe/81efLUF9taizViSqPXMF8Q2ZvLs7DP3E+urbJ6o7kkob08abbjKMfLTMXjVrRIL6XQu9bDVdxEOEdeYuCyRuwHwMwCYt/zFsBTKp9gPMMlTNZw60EWsnOOR+izAqZXrGqgYmlCB1R35BIBbE8k9aJRjiMuYXGtZQEslO/7wGXYaGqKKjijahwJtJe8Qh/5Z+EMIq7IsVPXaeNto0X68GcVMvjzqTRdaLQdlM79iZ4mjFGMd4QLlhxYDjvFVxrF1P1B/NuNe+TmUpx1b5xahU7RFi4k1adhJLg0PZGFSv8trT9YHBN55skg5TbeeX126ThVodz3YVaOrwdUOSbG6NWMVw== X-Forefront-PRVS: 08296C9B35 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN4PR12MB0851; 23:iHtpe6fwDyatpYQQ/y76gn29zu7rK6LuwZ8eAeRlR?= =?us-ascii?Q?xw7B/vj9wsjfz2yRaEfks0iaMQrpKllvw0kgTaP7FWfOtkxt0LHWreo3XfkQ?= =?us-ascii?Q?kAJiC4MlMksn52UHAIa31cTkc6aMGns1IRlG98K0BQXWnXo7nxS9Q2EHeUsl?= =?us-ascii?Q?iPKrulzL5Jv2RPrFc+rULYKOeUg+NglDa4J01HqXRh00uZ4qyGnW0ojDWsL0?= =?us-ascii?Q?Oc97nWhaC+siMaYvonSvIwuerVrmmMYncAKavtbJsH+NukhByfI1c1/UZYs8?= =?us-ascii?Q?z1MvCnQOwYQpkSyx6bYeSTa+paPEhGXiQEYsCppudQtNOZSFfBTtd3O9dgkc?= =?us-ascii?Q?NKtUihWF0siJ+GySfmjGWzqvriVLPIHy18MWxhWm6Pb2fEPC7nnNEOkvyE4i?= =?us-ascii?Q?gJbPTz6pe6I7jBEZW4WSjlG+YX8hJ2qu4nI+MJSqVp9/1j3fvVq++6JIoLTo?= =?us-ascii?Q?VI3Lvpm55bNzjy7U1HCtbj9XoQfPGrDxNfQXLSfUqeG6d5r4vUOiIL9hEpbI?= =?us-ascii?Q?LxRqurvRWx1UGdSHNG0MO1cNGzA8BM6EFLPWl7bgxj0FNh2yjU8keHkMGlEI?= =?us-ascii?Q?Cm6Gv5Ck5Rryuxs0rPLzkkN/lk9lirHY/VXE1kFOWzQ//a4yfmIx7N90HXGi?= =?us-ascii?Q?GYWKsoB3bTO9QmNKh45oMc99O8j/dqGf8N9elwBvAYqSeM+ggn1yt2FnSKwA?= =?us-ascii?Q?XDtXmXRErLL5O9j5OATjC24qwjrQVWj4HVaLOaXe1J4o08o5mfEz9B/usS/9?= =?us-ascii?Q?YMYLgh2q+71Z4cgIwuW1qopoPsDGiZoGRkIYtvR5Wb1Ml0yAebPqTguTm/13?= =?us-ascii?Q?Rz6AH6WE9+/gFN+UVPhl6tRwTU1IUwU0sMurE4B7a+VHrAlX2Varnqm0VSa1?= =?us-ascii?Q?Kr0VA5aPEkSfgb0I8YKPTM72LAhLzej0eflWO+Es/dREkjPdVDpm8u+c2MK2?= =?us-ascii?Q?o84mAIA9i85dPLnn4IDrwCt5DSDnfzWe/x94tvcrYzeAHBh8dCqMrqv3MO+E?= =?us-ascii?Q?3b71Y9RST9ocjGSuTPdFUaC?= X-Microsoft-Exchange-Diagnostics: 1; BN4PR12MB0851; 5:UqEb6sciDS5ZPEG69MhoRPIoBlpHLTy2fIWHlsMw2vp6v/xT4zyxZ2Uq5s7t8Yr4j899p6tapc2kB02W6a4q2xSZpyKwsDhG98CbfiTW5upXlyLkOViuN2OVpLT6lm9+C0tyyNfVwOE9d+M1LTzruw==; 24:eC3vnhG9WqbPAZjk2Zq2AMBXFeYvacI6T1plIyHpAgebIbuaSCIRiNFzIYRgsvqGgfHfuzkyniPvHSNglOOn/4ZNTWrT6TnlR0CUCwc8lr8=; 20:RU6AbJ/LH4TxSB1YqqnyLVyT1vNYuM8lEnhRHg9+pQ2kNB+3fBsEqiHKVpMV/hrOb+fyPr5lPP7urNx7QoljXe20HmkOFuzsNqpH3O3lTrA57x1+d//yybVTwCyZT3pL8Ea5nAqc1jKsblFmnMtNTpbsS8J3/zWCzznTf5TwwxS9udpksiCLXaVf4xQmByRiSVtzTM/+X5zmWoUY4CNV9P5QB/WzwmKIWKGyw9JNhU/eaFRuBse5rvQ4GydHIfb6 SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Jan 2016 22:08:32.3395 (UTC) X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d; Ip=[165.204.84.222]; Helo=[atltwp02.amd.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN4PR12MB0851 Cc: Hersen Wu X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" X-Spam-Status: No, score=-4.2 required=5.0 tests=BAD_ENC_HEADER,BAYES_00, RCVD_IN_DNSWL_MED, RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP From: Hersen Wu Previous implementation does not handle case below: boot up one MST branch to DP connector of ASIC. After boot up, hot plug 2nd MST branch to DP output of 1st MST, GUID is not created for 2nd MST branch. When downstream port of 2nd MST branch send upstream request, it fails because 2nd MST branch GUID is not available. New Implementation: only create GUID for MST branch and save it within Branch. Signed-off-by: Hersen Wu Reviewed-by: Harry Wentland Acked-by: Alex Deucher --- drivers/gpu/drm/drm_dp_mst_topology.c | 64 +++++++++++++++-------------------- include/drm/drm_dp_mst_helper.h | 25 ++++++-------- 2 files changed, 38 insertions(+), 51 deletions(-) diff --git a/drivers/gpu/drm/drm_dp_mst_topology.c b/drivers/gpu/drm/drm_dp_mst_topology.c index 052c20ca35ee..01a7d0198e15 100644 --- a/drivers/gpu/drm/drm_dp_mst_topology.c +++ b/drivers/gpu/drm/drm_dp_mst_topology.c @@ -1018,18 +1018,27 @@ static bool drm_dp_port_setup_pdt(struct drm_dp_mst_port *port) return send_link; } -static void drm_dp_check_port_guid(struct drm_dp_mst_branch *mstb, - struct drm_dp_mst_port *port) +static void drm_dp_check_mstb_guid(struct drm_dp_mst_branch *mstb, u8 *guid) { int ret; - if (port->dpcd_rev >= 0x12) { - port->guid_valid = drm_dp_validate_guid(mstb->mgr, port->guid); - if (!port->guid_valid) { - ret = drm_dp_send_dpcd_write(mstb->mgr, - port, - DP_GUID, - 16, port->guid); - port->guid_valid = true; + + memcpy(mstb->guid, guid, 16); + + if (!drm_dp_validate_guid(mstb->mgr, mstb->guid)) { + if (mstb->port_parent) { + ret = drm_dp_send_dpcd_write( + mstb->mgr, + mstb->port_parent, + DP_GUID, + 16, + mstb->guid); + } else { + + ret = drm_dp_dpcd_write( + mstb->mgr->aux, + DP_GUID, + mstb->guid, + 16); } } } @@ -1086,7 +1095,6 @@ static void drm_dp_add_port(struct drm_dp_mst_branch *mstb, port->dpcd_rev = port_msg->dpcd_revision; port->num_sdp_streams = port_msg->num_sdp_streams; port->num_sdp_stream_sinks = port_msg->num_sdp_stream_sinks; - memcpy(port->guid, port_msg->peer_guid, 16); /* manage mstb port lists with mgr lock - take a reference for this list */ @@ -1099,11 +1107,9 @@ static void drm_dp_add_port(struct drm_dp_mst_branch *mstb, if (old_ddps != port->ddps) { if (port->ddps) { - drm_dp_check_port_guid(mstb, port); if (!port->input) drm_dp_send_enum_path_resources(mstb->mgr, mstb, port); } else { - port->guid_valid = false; port->available_pbn = 0; } } @@ -1161,9 +1167,7 @@ static void drm_dp_update_port(struct drm_dp_mst_branch *mstb, if (old_ddps != port->ddps) { dowork = true; if (port->ddps) { - drm_dp_check_port_guid(mstb, port); } else { - port->guid_valid = false; port->available_pbn = 0; } } @@ -1220,13 +1224,14 @@ static struct drm_dp_mst_branch *get_mst_branch_device_by_guid_helper( struct drm_dp_mst_branch *found_mstb; struct drm_dp_mst_port *port; + if (memcmp(mstb->guid, guid, 16) == 0) + return mstb; + + list_for_each_entry(port, &mstb->ports, next) { if (!port->mstb) continue; - if (port->guid_valid && memcmp(port->guid, guid, 16) == 0) - return port->mstb; - found_mstb = get_mst_branch_device_by_guid_helper(port->mstb, guid); if (found_mstb) @@ -1245,10 +1250,7 @@ static struct drm_dp_mst_branch *drm_dp_get_mst_branch_device_by_guid( /* find the port by iterating down */ mutex_lock(&mgr->lock); - if (mgr->guid_valid && memcmp(mgr->guid, guid, 16) == 0) - mstb = mgr->mst_primary; - else - mstb = get_mst_branch_device_by_guid_helper(mgr->mst_primary, guid); + mstb = get_mst_branch_device_by_guid_helper(mgr->mst_primary, guid); if (mstb) kref_get(&mstb->kref); @@ -1566,6 +1568,9 @@ static void drm_dp_send_link_address(struct drm_dp_mst_topology_mgr *mgr, txmsg->reply.u.link_addr.ports[i].num_sdp_streams, txmsg->reply.u.link_addr.ports[i].num_sdp_stream_sinks); } + + drm_dp_check_mstb_guid(mstb, txmsg->reply.u.link_addr.guid); + for (i = 0; i < txmsg->reply.u.link_addr.nports; i++) { drm_dp_add_port(mstb, mgr->dev, &txmsg->reply.u.link_addr.ports[i]); } @@ -2006,20 +2011,6 @@ int drm_dp_mst_topology_mgr_set_mst(struct drm_dp_mst_topology_mgr *mgr, bool ms goto out_unlock; } - - /* sort out guid */ - ret = drm_dp_dpcd_read(mgr->aux, DP_GUID, mgr->guid, 16); - if (ret != 16) { - DRM_DEBUG_KMS("failed to read DP GUID %d\n", ret); - goto out_unlock; - } - - mgr->guid_valid = drm_dp_validate_guid(mgr, mgr->guid); - if (!mgr->guid_valid) { - ret = drm_dp_dpcd_write(mgr->aux, DP_GUID, mgr->guid, 16); - mgr->guid_valid = true; - } - queue_work(system_long_wq, &mgr->work); ret = 0; @@ -2241,6 +2232,7 @@ static int drm_dp_mst_handle_up_req(struct drm_dp_mst_topology_mgr *mgr) } drm_dp_update_port(mstb, &msg.u.conn_stat); + DRM_DEBUG_KMS("Got CSN: pn: %d ldps:%d ddps: %d mcs: %d ip: %d pdt: %d\n", msg.u.conn_stat.port_number, msg.u.conn_stat.legacy_device_plug_status, msg.u.conn_stat.displayport_device_plug_status, msg.u.conn_stat.message_capability_status, msg.u.conn_stat.input_port, msg.u.conn_stat.peer_device_type); } else if (msg.req_type == DP_RESOURCE_STATUS_NOTIFY) { drm_dp_send_up_ack_reply(mgr, mgr->mst_primary, msg.req_type, seqno, false); diff --git a/include/drm/drm_dp_mst_helper.h b/include/drm/drm_dp_mst_helper.h index 24ab1787b771..fdb47051d549 100644 --- a/include/drm/drm_dp_mst_helper.h +++ b/include/drm/drm_dp_mst_helper.h @@ -44,8 +44,6 @@ struct drm_dp_vcpi { /** * struct drm_dp_mst_port - MST port * @kref: reference count for this port. - * @guid_valid: for DP 1.2 devices if we have validated the GUID. - * @guid: guid for DP 1.2 device on this port. * @port_num: port number * @input: if this port is an input port. * @mcs: message capability status - DP 1.2 spec. @@ -70,10 +68,6 @@ struct drm_dp_vcpi { struct drm_dp_mst_port { struct kref kref; - /* if dpcd 1.2 device is on this port - its GUID info */ - bool guid_valid; - u8 guid[16]; - u8 port_num; bool input; bool mcs; @@ -110,10 +104,12 @@ struct drm_dp_mst_port { * @tx_slots: transmission slots for this device. * @last_seqno: last sequence number used to talk to this. * @link_address_sent: if a link address message has been sent to this device yet. + * @guid: guid for DP 1.2 branch device. port under this branch can be + * identified by port #. * * This structure represents an MST branch device, there is one - * primary branch device at the root, along with any others connected - * to downstream ports + * primary branch device at the root, along with any other branches connected + * to downstream port of parent branches. */ struct drm_dp_mst_branch { struct kref kref; @@ -132,6 +128,9 @@ struct drm_dp_mst_branch { struct drm_dp_sideband_msg_tx *tx_slots[2]; int last_seqno; bool link_address_sent; + + /* global unique identifier to identify branch devices */ + u8 guid[16]; }; @@ -406,11 +405,9 @@ struct drm_dp_payload { * @conn_base_id: DRM connector ID this mgr is connected to. * @down_rep_recv: msg receiver state for down replies. * @up_req_recv: msg receiver state for up requests. - * @lock: protects mst state, primary, guid, dpcd. + * @lock: protects mst state, primary, dpcd. * @mst_state: if this manager is enabled for an MST capable port. * @mst_primary: pointer to the primary branch device. - * @guid_valid: GUID valid for the primary branch device. - * @guid: GUID for primary port. * @dpcd: cache of DPCD for primary port. * @pbn_div: PBN to slots divisor. * @@ -432,13 +429,11 @@ struct drm_dp_mst_topology_mgr { struct drm_dp_sideband_msg_rx up_req_recv; /* pointer to info about the initial MST device */ - struct mutex lock; /* protects mst_state + primary + guid + dpcd */ + struct mutex lock; /* protects mst_state + primary + dpcd */ bool mst_state; struct drm_dp_mst_branch *mst_primary; - /* primary MST device GUID */ - bool guid_valid; - u8 guid[16]; + u8 dpcd[DP_RECEIVER_CAP_SIZE]; u8 sink_count; int pbn_div;