From patchwork Mon Aug 19 15:50:24 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Francis X-Patchwork-Id: 11101301 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 1D5B01395 for ; Mon, 19 Aug 2019 15:50:51 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 00AA7283B2 for ; Mon, 19 Aug 2019 15:50:51 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id F2DE92871E; Mon, 19 Aug 2019 15:50:50 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.2 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 516D6286C7 for ; Mon, 19 Aug 2019 15:50:49 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 44D396E1C0; Mon, 19 Aug 2019 15:50:47 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from NAM02-BL2-obe.outbound.protection.outlook.com (mail-eopbgr750088.outbound.protection.outlook.com [40.107.75.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id 074236E1C0; Mon, 19 Aug 2019 15:50:46 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=KSVI4hA7V7OGIPGfz7DogTA3drW/WgQIynmq4FNOrlUPBHpkXLcZWYeXQdifaMN3F5FP3q/HbEcU9L/iIqpeQl+EmZ/ZafHBAC1aeq736qaR7UeHOQF1D+UbmeSFJCrcS1/Kr4gH25DXbdFZdBxK9SzlPcWHlQ+qcXruRvDVsPmHhpLOg4JjC9ahfldV0xbzNBYLzf96HuzxtLaGCcAdGdObU93+tCuj357fQnTPfBwN0yjuBxOxJ9HLWkA+McIrrE3EReIya04e0Bx4qPXNEolgSVthvcCeOXVVLvKsQ0FCUmBdlPYh/1cVQhYiXqO2yhwxLrJ3VGOYvDfrMEnARA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Ebm8o9ww1aN8xg4ByfDq7H6z4Hub17FsB21CgxQC8Uc=; b=QnEii8ezCSfXBbcRiCVoFCydGpTzJgDGjhS6EN25bb5hOn7RXaxMbvNTOwgvaO9l7moqgrOFrlQzYAPm06DDtwDtJCxg9RTNcpq+bqG7ArVbYLDaU475NAN7x2ZcGiV3NVqww1C0sAAqkBa9lbugCodHnsq9LZRBTJ6d/7SPSW51iW75HHCMplC2myqiEyAqu4dyKfUSOKz8Y04pC0FPXzBSksCxBEF2z9Re2G7ZrAoltlHICSVK1au/ykKDr9OmvtM9TflSJR0K72Ii6MUWJl5xqJGoxI8ISrmIEnPwz9XoPY/0VpMvxJRcEYPegIejjti+sDJPrZB0+V2FILW9Uw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none (sender ip is 165.204.84.17) smtp.rcpttodomain=lists.freedesktop.org smtp.mailfrom=amd.com; dmarc=permerror action=none header.from=amd.com; dkim=none (message not signed); arc=none Received: from BN4PR12CA0002.namprd12.prod.outlook.com (2603:10b6:403:2::12) by SN6PR12MB2718.namprd12.prod.outlook.com (2603:10b6:805:70::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2178.16; Mon, 19 Aug 2019 15:50:44 +0000 Received: from BY2NAM03FT064.eop-NAM03.prod.protection.outlook.com (2a01:111:f400:7e4a::203) by BN4PR12CA0002.outlook.office365.com (2603:10b6:403:2::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.2178.16 via Frontend Transport; Mon, 19 Aug 2019 15:50:43 +0000 Received-SPF: None (protection.outlook.com: amd.com does not designate permitted sender hosts) Received: from SATLEXCHOV02.amd.com (165.204.84.17) by BY2NAM03FT064.mail.protection.outlook.com (10.152.85.143) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.2178.16 via Frontend Transport; Mon, 19 Aug 2019 15:50:43 +0000 Received: from localhost.localdomain (10.180.168.240) by SATLEXCHOV02.amd.com (10.181.40.72) with Microsoft SMTP Server id 14.3.389.1; Mon, 19 Aug 2019 10:50:42 -0500 From: David Francis To: , Subject: [PATCH 00/14] Display Stream Compression (DSC) for AMD Navi Date: Mon, 19 Aug 2019 11:50:24 -0400 Message-ID: <20190819155038.1771-1-David.Francis@amd.com> X-Mailer: git-send-email 2.17.1 MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:165.204.84.17; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(4636009)(346002)(39860400002)(136003)(396003)(376002)(2980300002)(428003)(189003)(199004)(316002)(50226002)(50466002)(51416003)(478600001)(2906002)(86362001)(356004)(6666004)(47776003)(110136005)(16586007)(8936002)(70206006)(305945005)(81156014)(70586007)(81166006)(8676002)(5660300002)(186003)(450100002)(49486002)(36756003)(1076003)(26005)(336012)(426003)(53936002)(486006)(126002)(2616005)(476003)(48376002)(4326008)(14444005); DIR:OUT; SFP:1101; SCL:1; SRVR:SN6PR12MB2718; H:SATLEXCHOV02.amd.com; FPR:; SPF:None; LANG:en; PTR:InfoDomainNonexistent; MX:1; A:1; X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 94b131bd-3c19-4e30-7601-08d724bcfe2a X-Microsoft-Antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(5600148)(711020)(4605104)(1401327)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(2017052603328); SRVR:SN6PR12MB2718; X-MS-TrafficTypeDiagnostic: SN6PR12MB2718: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:8273; X-Forefront-PRVS: 0134AD334F X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Message-Info: H539b3kcYpQsSqfwwFEg2VW2BA84GzU5lFOqVFulzZcV2uh7UglZV6Xzi4xwmJj4UkQ318iPjG7TI0J251CHjes9xozSjbggIvb0QSUX+nT0bz75ICPNESkb2YewMNY++G8LCQ19Lsv8QgMggcWjj/hur8wq5I5GO0+X3msPTCFV1XGZtGhhuSLPig91UkF7hMYYQlPZnKMtnHNaBR89UlX3JHr2zX9yEXXdEmiN7YqjhcKYa1J/mbTpC1cl6zWV+BbJyrz/6t/uJbKHGZ51W13iuFqA1RhA3vahgCuzbSg1+BYFKCNLFhrUHe7oJJDaxxE7agBgbwavXK15riHbYPCpT+o/0SpJRp0/02OXHzVTJJZIobYQLqnk00nu3a/juEqCFpYCE0BHd703iD5jpXZmYwKnwPU+nwzWNqpJPC8= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Aug 2019 15:50:43.1380 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 94b131bd-3c19-4e30-7601-08d724bcfe2a 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.17]; Helo=[SATLEXCHOV02.amd.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR12MB2718 X-Mailman-Original-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amdcloud.onmicrosoft.com; s=selector2-amdcloud-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Ebm8o9ww1aN8xg4ByfDq7H6z4Hub17FsB21CgxQC8Uc=; b=ZspKr4zWIBwyE4ZK0/8ZoU7w9Pe/eMCNMku6x9m2mmQo5iKceljrqQhk1pI+qp8U6gX78WpPl/C+MHjnd/5L6oQZtVxyzV7L85TNXbs1EncpauYKdn+fXQ/dx31+LCH4cMDkjMzzfg1yo3NR62iuQteeGGWuD361OVCUq/2evxI= X-Mailman-Original-Authentication-Results: spf=none (sender IP is 165.204.84.17) 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; X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: David Francis Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" X-Virus-Scanned: ClamAV using ClamSMTP This patchset enables Display Stream Compression (DSC) on DP connectors on Navi ASICs, both SST and DSC. 8k60 and 4k144 support requires ODM combine, an AMD internal feature that may be a bit buggy right now. Patches 1 through 5 enable DSC for SST. Most of the work was already done in the Navi promotion patches; this just hooks it up to the atomic interface. The first two reverts are of temporary changes to block off DSC. The third is of a commit that was accidentally promoted twice. The fourth and last revert fixes a potential issue with ODM combine. Patches 6 and 7 are fixes for bugs that would be exposed by MST DSC. One fix is with the MST code and the other in the DSC code. Patches 8, 9, and 10 are small DRM changes required for DSC MST: FEC, a new bit in the standard; some export definitions; and a previously uninitialized variable. Patches 11 through 14 are the DSC MST policy itself. This includes the code for detecting and validating DSC capabilities, enabling DSC over a link, computing the fair DSC configurations for multiple DSC displays, and adding to atomic state crtcs that might need reprogramming due to DSC. David Francis (14): Revert "drm/amd/display: skip dsc config for navi10 bring up" Revert "drm/amd/display: navi10 bring up skip dsc encoder config" Revert "drm/amd/display: add global master update lock for DCN2" Revert "drm/amd/display: Fix underscan not using proper scaling" drm/amd/display: Enable SST DSC in DM drm/amd/display: Use dc helpers to compute timeslot distribution drm/amd/display: Initialize DSC PPS variables to 0 drm/dp-mst: Parse FEC capability on MST ports drm/dp-mst: Export symbols for dpcd read/write drm/dp-mst: Fill branch->num_ports drm/amd/display: Validate DSC caps on MST endpoints drm/amd/display: Write DSC enable to MST DPCD drm/amd/display: MST DSC compute fair share drm/amd/display: Trigger modesets on MST DSC connectors .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 116 +++- .../amd/display/amdgpu_dm/amdgpu_dm_helpers.c | 71 +-- .../display/amdgpu_dm/amdgpu_dm_mst_types.c | 498 +++++++++++++++++- .../display/amdgpu_dm/amdgpu_dm_mst_types.h | 5 + drivers/gpu/drm/amd/display/dc/core/dc.c | 12 +- .../drm/amd/display/dc/core/dc_link_hwss.c | 3 + .../gpu/drm/amd/display/dc/dcn20/dcn20_dsc.c | 3 + .../drm/amd/display/dc/dcn20/dcn20_hwseq.c | 4 - .../gpu/drm/amd/display/dc/dcn20/dcn20_optc.c | 72 +-- .../gpu/drm/amd/display/dc/dcn20/dcn20_optc.h | 3 - .../drm/amd/display/dc/dcn20/dcn20_resource.c | 7 +- .../drm/amd/display/dc/dcn20/dcn20_resource.h | 1 + .../display/dc/dcn20/dcn20_stream_encoder.c | 8 - .../amd/display/dc/inc/hw/timing_generator.h | 2 - drivers/gpu/drm/drm_dp_mst_topology.c | 6 + include/drm/drm_dp_mst_helper.h | 3 + 16 files changed, 668 insertions(+), 146 deletions(-)