From nobody Fri Dec 19 16:21:30 2025 Received: from CH5PR02CU005.outbound.protection.outlook.com (mail-northcentralusazon11012002.outbound.protection.outlook.com [40.107.200.2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 332241C28E; Fri, 5 Dec 2025 06:52:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.200.2 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764917534; cv=fail; b=HoKEgPdh/TaTcSz60Wp92n6el0LBucaoUpn66sYcSP9elu4P+Z+4bgLe2wZ5UGm8CWdXkbnIXS5DvAPK4InCPYGwefw275zGZUnx4BFFbhvyFeYHw5E7S2jmLEpSNTSAZ1r8tY3vXysSPbBn0ORo1zmfjZZwQMVK7QI1ibwarX8= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764917534; c=relaxed/simple; bh=WNO0Wy5K5wTMtZyFMxcPyYSImLbwFKtO7i9+gf4yqe8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:CC; b=KUyt14oUZ4mFdks4Jef4QC/zoROQIOhW309bwzVz/1RekHqgGD/IRmUeClWlmKkJZ8gEZU82KEgojJTdNrECzGxolUpNV5FOgWnk1W+S6IF1Dxp4m9Qt0sPKWEA2M1D0dn4aLI2FDwPKHPI6YvRW5sblgPynnoL4VCGOYUpDggI= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=h7N68dE2; arc=fail smtp.client-ip=40.107.200.2 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="h7N68dE2" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=c+59hXR6DbQhNcRrzZ+Vg3DAQNaMIw1MTZnoGV12tSvZoSXu6T/QFjW96kbnM4pQQn2bt5FmLhVw4enlTcDBKWIY8i0kEZVNF0Fv1b9RDgFKcauzE+qngIoPCmhN+ZRDlv0h8IJOZ9y86sqifQH0RgGXNxnc7Bov+W3LXmS86sXsPchTdikvgJiz6ovdMAsIYAa0G7RG8tcUm3/fyyzB466yujnYdDdYBiz8v/3/7gkmMni+8YdfLNaOjOHNynK/XFtBCJUSE2Ug07MPsnTEtql/6hLbHYAru6LcStapG/h4X1GAo6fpOU4AIG6Sr6HR/ElMxQSq4jpPVZvlGSfG/A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=vyIWtr2z8j8UuD8E45E2bJfKHtju77iqpFw2K2Xzfvc=; b=xs2o23J3qv+KvbZb0w7sbrkX/+6pgsdY/+sHnkt9wv055bqAboSVwBVqXkSzJvqjTDh6qRrAFId600A9SrGqVt3cT/gbwRiJ1vD0KgztKytfw1ANuCfH6wExrokdE9L0Td4dfLItYNUGF9MkSb054MFXRp+4Rle3xtH5LVHaoB4JMH46iyFD5du2oll77xKMY+P5ELewSTY6eJBkNqhu4O2j1SFiR+nDHvJjJTcLsbCBC9QoLKZXsLRH9zDEMCcV2VEhx4MBxIX4z0jXuuQjapoIdBocMtitX+LO2YTbMKRTdIF28OtJ6pEAeLcdQEsR0qeJ4ZiOaQwiro0WvQ3ZmA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=lists.freedesktop.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=vyIWtr2z8j8UuD8E45E2bJfKHtju77iqpFw2K2Xzfvc=; b=h7N68dE2xJ/FjTlK4HhxdP4IAU5+1Zew2Yr5LcYEhxHoo7WpcjhOtlpW2yajHSdMVOA9e3OYIfB6jKACEYb47Ow26tiLJll4Sc0Gqu9UvQqKtuUguwP1ZjZ+ePGS6IVanw7M540m1dp7XnIvm/uabm4zg+6Y+jqLVjRDAYaQpy8= Received: from DM6PR05CA0048.namprd05.prod.outlook.com (2603:10b6:5:335::17) by SA5PPFE91247D15.namprd12.prod.outlook.com (2603:10b6:80f:fc04::8e8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.11; Fri, 5 Dec 2025 06:52:08 +0000 Received: from DS1PEPF00017090.namprd03.prod.outlook.com (2603:10b6:5:335:cafe::2f) by DM6PR05CA0048.outlook.office365.com (2603:10b6:5:335::17) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9412.1 via Frontend Transport; Fri, 5 Dec 2025 06:52:08 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by DS1PEPF00017090.mail.protection.outlook.com (10.167.17.132) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.8 via Frontend Transport; Fri, 5 Dec 2025 06:52:08 +0000 Received: from [127.0.1.1] (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Fri, 5 Dec 2025 00:52:03 -0600 From: "Yo-Jung Leo Lin (AMD)" Date: Fri, 5 Dec 2025 14:50:54 +0800 Subject: [PATCH v5 1/5] drm/amdgpu: parse UMA size-getting/setting bits in ATCS mask Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-ID: <20251205-vram-carveout-tuning-for-upstream-v5-1-1e87cf3b57be@amd.com> References: <20251205-vram-carveout-tuning-for-upstream-v5-0-1e87cf3b57be@amd.com> In-Reply-To: <20251205-vram-carveout-tuning-for-upstream-v5-0-1e87cf3b57be@amd.com> To: Alex Deucher , =?utf-8?q?Christian_K=C3=B6nig?= , David Airlie , Simona Vetter , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , Jonathan Corbet CC: , , , , "Tsao, Anson" , "Mario Limonciello (AMD) (kernel.org)" , "Yo-Jung Leo Lin (AMD)" X-Mailer: b4 0.13.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=2520; i=Leo.Lin@amd.com; h=from:subject:message-id; bh=WNO0Wy5K5wTMtZyFMxcPyYSImLbwFKtO7i9+gf4yqe8=; b=owEBbQKS/ZANAwAKAV8XsZZKKe6GAcsmYgBpMoEC6IiA1v5BJuVnpkxvv0mk2AtgM1jenDB2g TrVd0JMn26JAjMEAAEKAB0WIQQzqV4kW+yguuqHrw5fF7GWSinuhgUCaTKBAgAKCRBfF7GWSinu hgT7D/0YwGDyJXol+QfnJ0gJvANqxls5hDC9nTrdQY6E6NLmBwUM+tD508iAuwFjXvhhVMPihGS o5W1HPK+wGquy11CH7kJ2g4RlYUKa5edTCNsNwVUO2tATirG0PLClt5J1n5odv6B88GKSY80fXq uLrcqdlh2eHmstZU4Alh4yu6oBZmiBzf+ehodIfZLPjSVOZpIWn4ZUoRUCW7LjBHVRfEz+PFEez 7PbIYwh7/meDx9YvI/b1sH89CPac5fpuOzUv1atLFiCsuUi+mSYH6IQLQXNp1k8CuaSODckfzoJ ey1rUtgAvGq2OsuiDHP194RNqCc1cCx0UkSNQgChcqdHTNgEsL8ymaWh70prd/7zHKekm7KqiNv ND3RNFr742PnlFuqgE+PO1Li+BULzVblsRpxqXDfMAyMbB316fENKZs/sysi/I39a3cn8M6vF8e Vg0IJEPix0Hq2RC4SDeoq/ekVucDxho0ngcTL3hJksEiTS7vkxVS1ggUW344WMKjHYZAWrGyjKt FC5qY1SUvmbKlg60QlTfh2XbR1JucyT2Ca3JwEYPGNUPllOt2dfXUNFB5WcfeGizEuJVnPVkaNh kSqJaiZ0zo0CDYatcaerbJsOBIygHocSkYQOL8gkOAH/Dsjyr4dAL6APbE3EQSwAGhUCfPf37bW gYFQrfOWxSLEwrQ== X-Developer-Key: i=Leo.Lin@amd.com; a=openpgp; fpr=33A95E245BECA0BAEA87AF0E5F17B1964A29EE86 X-ClientProxiedBy: satlexmb08.amd.com (10.181.42.217) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS1PEPF00017090:EE_|SA5PPFE91247D15:EE_ X-MS-Office365-Filtering-Correlation-Id: cc685576-573f-48dc-1917-08de33caceef X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|82310400026|1800799024|7416014|376014; X-Microsoft-Antispam-Message-Info: =?utf-8?B?Vm1FS3RtZXh6R3pYZlNwcU1iVyt1VGlFYXBtZUpHQUU3M1piU3lSbTJXT3dI?= =?utf-8?B?Mzh5MEQyK0F0NWdqQndtN3UxS0diWDFTalp4cE00QTZibi9SMXROVlgweTc3?= =?utf-8?B?eS9ES3ZLb3JMU1NSbXQxS3czVU9EV0lNVnJnWGprbmZXSEZYSTJwUFFWbHZE?= =?utf-8?B?ZUoyVDM0WDNaWHpaK2FBSThMMldrQ3c1VGY3M2FRZXZCTEpQL0FBY2lBajlY?= =?utf-8?B?aW1vZTNSQjhEYWJvTzNSaXQ2RXJobjd4djYxUzkrNEVBbFBPUlM2dmhsWEdE?= =?utf-8?B?UlBFR2U5VThhMkgvMVdFbmlGRzF5cG5IVHQybXJzOENhZFBwUUJxRzZjZy9r?= =?utf-8?B?ajFMYlNaZjFhV1JqaW44aGRQa0hEUVVNMmt0ODBrZlluYTZYaVR0VTlzUGJN?= =?utf-8?B?VjMrSzFkU1ZzSW50bFIwMGlpL05WWXFaY3V6Y1ZmRUhHM3BZZjZtTzNjZ0RR?= =?utf-8?B?YkR4SmFaK0lvb2FRZEVGQUZyMGM0aDBoWUpmYWZ4dzJ4YkhRQlhQckRzRXFS?= =?utf-8?B?NktBU2RibWU1SWl0bXdQVXhoUVEyNEd3L014Z1V1UUd2bDllS2pja2pyQzFj?= =?utf-8?B?c0VzdWw3L2JUelZEMDJHdFhPM0w0dG5OWkhZUm5DQUZXdU5qRjlQOHBDUlpF?= =?utf-8?B?dzVtenMvNXY2TkpWV1JlYjFJVFN1TDB5a1FRLy9uOFBGbjBxbFpMMTQyS0pC?= =?utf-8?B?cFVyVHR1RDFUUDg1QnVjd1N3dmRNQ2xMQ3cyS3FwQlJPcndDTWRKNURJbXpY?= =?utf-8?B?TjQxaWljekRmZEdyT241elAvZ2ovV2N6cEVUN3c1ak1rdHlQODZLTy9vdEJH?= =?utf-8?B?RmgxTWRFTHVHSTBSNjFQcUk2K0R6UTNoOHhSdjFuSHllV2VtTlV5TXZweHJJ?= =?utf-8?B?c2I2RUNVWHY4eDBET1lSb3AwbVluK0RuVHRrRm02RWhwYXgxbGUyY3NRQ012?= =?utf-8?B?NkM4RUludWZEOVE1MUtVaVd2STQxUTR2RnBmUjlhVEp2aU9aUlNyUEQ3eWcz?= =?utf-8?B?SjFMeGV0N091WWFHK28xcjJUQ1ZLUXhOTVFVTk9hd2Z0d1B5Ti84RTFxbnpv?= =?utf-8?B?ZnV1aUd1cllJZDUzU1ltdHp5bTNDcHczODVYazdCcDhXclpXNyt0cjVlR05E?= =?utf-8?B?YXhBcmFjdVdLUVV4QThoY1lLa1loSmNpR1NJd1NVa3JKM2xoWFFWcmxjT0Ev?= =?utf-8?B?UWZxWm01MlIzYkt2UFB2RlVCbzlxR0p3a3BkRWs4OGxpV1JuYmdhYmdSWnE0?= =?utf-8?B?NG9OV3lLWjhpK0lkTUtiekVCU2lsUkVDQWtKNVhQSlFSRDVxeVZlNWdGQTd4?= =?utf-8?B?L01CU1o1M01MRk1wdmFsdW9xRkVaYmNxU3kwOExmQm9xTExFbEFLWlEwOTU5?= =?utf-8?B?aFhKV2hub1Q2UEg2T1ZpZHM5ZU16Q0NqdHlsWXlGa3FISm05a3lLS3V3T1lh?= =?utf-8?B?Ujh0NjVPT0tDVWNaZllpb09KNTIyeUxmMHF1VEVUZE5ObmJNYU9jZndlK0Z0?= =?utf-8?B?cTViVE9wVVpKZmYwMEJVQzhOSFlwY1ZFdUthbVpiNmFTWkxpUnBmK1hmUmo1?= =?utf-8?B?Q29aTk5qM0t0azdxT0o2c3JCQ01ZaSthaVJMd1BEcjBDa2tBbzBGaTArTSsr?= =?utf-8?B?dWYreEc3VzJkcUFRcWRvVUQ5a3gzb0JoemlzZ2FtWTBEZDRtR3ZLcStWc010?= =?utf-8?B?bVZxZkhRdHZjUmIyZkJ2NzYxdXBDcUZqY2g0ZXhNT2Uzc0hLNEY1T3NDc2cv?= =?utf-8?B?V1NkenllUncxVG82eUJiaVAxaUtSY1MwbXNvTzA3c0xITmI0NnpUenJiOGx5?= =?utf-8?B?cG9lODYrMUJCWXVobU9vdkc4WkhoQjlLaVcyVWRGZXhMcDlKSDBCVXRKSG5x?= =?utf-8?B?d2FTb1o5N0RuOG1xNFo3WW9FZHBOV090dkFCR1UyL1N0TC9taTRaV1g0bUNF?= =?utf-8?B?cjhVZDFYeUhWdWNoRVhpYUxFOTFxZVVYM2hzQndNamk2NGNjTEc0OG84QmZR?= =?utf-8?B?dmMvWWRaeXBvdG04Z05qbC9WQ0Z3UzZwL2ZwbnZxbmFCUjhteS9BbUFiQ1hr?= =?utf-8?B?RzdaL3pmMW1vZkJ2KzBGQWtob3hVcWNEUWRnQ3B1RGRSSU1DMkd3RWs3Qm92?= =?utf-8?Q?gAek=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(82310400026)(1800799024)(7416014)(376014);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Dec 2025 06:52:08.0562 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: cc685576-573f-48dc-1917-08de33caceef 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=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: DS1PEPF00017090.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA5PPFE91247D15 The capabilities of getting and setting VRAM carveout size are exposed in the ATCS mask. Parse and store these capabilities for future use. Co-developed-by: Mario Limonciello (AMD) Signed-off-by: Mario Limonciello (AMD) Reviewed-by: Alex Deucher Signed-off-by: Yo-Jung Leo Lin (AMD) --- drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c | 4 ++++ drivers/gpu/drm/amd/include/amd_acpi.h | 4 +++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c b/drivers/gpu/drm/amd= /amdgpu/amdgpu_acpi.c index d31460a9e958..610449d73a6c 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c @@ -116,7 +116,9 @@ struct amdgpu_atcs_functions { bool pcie_perf_req; bool pcie_dev_rdy; bool pcie_bus_width; + bool get_uma_size; bool power_shift_control; + bool set_uma_allocation_size; }; =20 struct amdgpu_atcs { @@ -587,7 +589,9 @@ static void amdgpu_atcs_parse_functions(struct amdgpu_a= tcs_functions *f, u32 mas f->pcie_perf_req =3D mask & ATCS_PCIE_PERFORMANCE_REQUEST_SUPPORTED; f->pcie_dev_rdy =3D mask & ATCS_PCIE_DEVICE_READY_NOTIFICATION_SUPPORTED; f->pcie_bus_width =3D mask & ATCS_SET_PCIE_BUS_WIDTH_SUPPORTED; + f->get_uma_size =3D mask & ACPI_ATCS_GET_UMA_SIZE_SUPPORTED; f->power_shift_control =3D mask & ATCS_SET_POWER_SHIFT_CONTROL_SUPPORTED; + f->set_uma_allocation_size =3D mask & ACPI_ATCS_SET_UMA_ALLOCATION_SIZE_S= UPPORTED; } =20 /** diff --git a/drivers/gpu/drm/amd/include/amd_acpi.h b/drivers/gpu/drm/amd/i= nclude/amd_acpi.h index 06badbf0c5b9..e582339e8e8e 100644 --- a/drivers/gpu/drm/amd/include/amd_acpi.h +++ b/drivers/gpu/drm/amd/include/amd_acpi.h @@ -427,7 +427,9 @@ struct atcs_pwr_shift_input { # define ATCS_PCIE_PERFORMANCE_REQUEST_SUPPORTED (1 << 1) # define ATCS_PCIE_DEVICE_READY_NOTIFICATION_SUPPORTED (1 << 2) # define ATCS_SET_PCIE_BUS_WIDTH_SUPPORTED (1 << 3) -# define ATCS_SET_POWER_SHIFT_CONTROL_SUPPORTED (1 << 7) +# define ACPI_ATCS_GET_UMA_SIZE_SUPPORTED (1 << 5) +# define ATCS_SET_POWER_SHIFT_CONTROL_SUPPORTED (1 << 7) +# define ACPI_ATCS_SET_UMA_ALLOCATION_SIZE_SUPPORTED (1 << 9) #define ATCS_FUNCTION_GET_EXTERNAL_STATE 0x1 /* ARG0: ATCS_FUNCTION_GET_EXTERNAL_STATE * ARG1: none --=20 2.43.0 From nobody Fri Dec 19 16:21:30 2025 Received: from SN4PR0501CU005.outbound.protection.outlook.com (mail-southcentralusazon11011014.outbound.protection.outlook.com [40.93.194.14]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8E73D2C0262; Fri, 5 Dec 2025 06:52:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.194.14 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764917537; cv=fail; b=F9bnR4Se0k1095tizmTjkV2ZS6dmqieCNfapjlv1ohElBUyCDlMZrq7TaF/87n6GgXHNY1VXP8Q04FpKSdx1biZPTDedl0kEtnuycFkFHmfaKPsLP3NLpx6qJSsVAxuA1lrPBqStXSa00G8UwAFDZGDB8SvPP1WP++qGgW19nTQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764917537; c=relaxed/simple; bh=ASdiq3kjKJdaJjxTBSLBkmVna+yxq0v6+iOeXV/tDKA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:CC; b=ACehze5d+sgjwvymBAjb1FZxlAXzOAQDOZujl81wHO21BWvtvLStupcwYhvtEgITD/64A2PNykVCgMXrtnF2RCAQv/ZozKAqxvxFcu1i15qO2azgVRoTTkRXNLWo4Qw43fvIAdIuAcbpTBANm+Kf0Oqqh2gelRhFiaAkbtvf4pU= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=BD5QxAIg; arc=fail smtp.client-ip=40.93.194.14 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="BD5QxAIg" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=GW9HlwfoXbSGBCJILdPOCBk8UF/KOQxu9k7ScddFVKRQGTU548VeymuBU351K2jIJUNUmEFjLbGTm4uBzFl8769Fo1IWiMchM8gtIlY8wUU4iUvpwHxdDRIQ4FQpXKYRb5O6PcPlrSnUG0lo6UiraJWP8kIl/d6KjICen5Gp/gH5Hmcn4DnTTZHfpnWiBIJQWBYRdagkm9n9ROB3x5KEfMfjHJXS906YvMhx9zE8fgC/mZwpC4UBkOQmk6Ou7whrKUfXa24FbpRcV+DXL9+Xjsn6ikfhAH327R9Q0+Et58ccm82PCVRo9U+hLrxtmhcYThyR3EUwRttYJwvN3gMjOg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=1s1agTl5/wK5jsZeSEoayqP66OsRkfzvC7pHS+q6110=; b=VOlrNr06Z5k++OOJ0nka2Rp6XPRdWVrQSS/ELdFGSDf0k3bownwoCecRk1IRYwsbH9Lu5b1W9JxiGsdsAt65sUFBYesgCodSVmphbkB7vTAXf7xwAcHl9eMcUYZf8EFsUuWjZlGcmwNnYPzQCDA64SzQbfi53rf+K4gSC7NAKfDNX1bmnZABQV4GWkTTf5k9s5IHzASAahRNmA66zhI3FkdLhoUziIwh7WL/SSOpOubNhJoVqT6sNUJSsSIt6hEsmAjIIwny8zcCw6o/2iivJtHXxEIU1QsIRAa+m8Tn6gMTMhUCV9z4AwxzilICEHYQUGXoEeEF+Y+cBYAd0WRdMQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=lists.freedesktop.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=1s1agTl5/wK5jsZeSEoayqP66OsRkfzvC7pHS+q6110=; b=BD5QxAIgL5LTc28l96FERPwWoRStBMxpng3aNuBxSTPDVvnDhaFF4/lDigmFqlYXUFpOEeAUXrPswbh8stL57TrRZVqC8UCRr05q6QZScVlXC4erkLC8ruSrGCrOuxKz2BOx8P/MJtJP2cIkXyu+ZxSPM/pjLQoNMVF0Xqnq4VE= Received: from DM5PR07CA0112.namprd07.prod.outlook.com (2603:10b6:4:ae::41) by MN0PR12MB6294.namprd12.prod.outlook.com (2603:10b6:208:3c1::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.17; Fri, 5 Dec 2025 06:52:11 +0000 Received: from DS1PEPF0001708F.namprd03.prod.outlook.com (2603:10b6:4:ae:cafe::e8) by DM5PR07CA0112.outlook.office365.com (2603:10b6:4:ae::41) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9388.11 via Frontend Transport; Fri, 5 Dec 2025 06:52:11 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by DS1PEPF0001708F.mail.protection.outlook.com (10.167.17.139) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.8 via Frontend Transport; Fri, 5 Dec 2025 06:52:10 +0000 Received: from [127.0.1.1] (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Fri, 5 Dec 2025 00:52:07 -0600 From: "Yo-Jung Leo Lin (AMD)" Date: Fri, 5 Dec 2025 14:50:55 +0800 Subject: [PATCH v5 2/5] drm/amdgpu: add helper to read UMA carveout info Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-ID: <20251205-vram-carveout-tuning-for-upstream-v5-2-1e87cf3b57be@amd.com> References: <20251205-vram-carveout-tuning-for-upstream-v5-0-1e87cf3b57be@amd.com> In-Reply-To: <20251205-vram-carveout-tuning-for-upstream-v5-0-1e87cf3b57be@amd.com> To: Alex Deucher , =?utf-8?q?Christian_K=C3=B6nig?= , David Airlie , Simona Vetter , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , Jonathan Corbet CC: , , , , "Tsao, Anson" , "Mario Limonciello (AMD) (kernel.org)" , "Yo-Jung Leo Lin (AMD)" X-Mailer: b4 0.13.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=5797; i=Leo.Lin@amd.com; h=from:subject:message-id; bh=ASdiq3kjKJdaJjxTBSLBkmVna+yxq0v6+iOeXV/tDKA=; b=owEBbQKS/ZANAwAKAV8XsZZKKe6GAcsmYgBpMoEDDBQdH58gK6t/T7ySDvQJ6cixksgW4rwY6 ATuyjU/b8aJAjMEAAEKAB0WIQQzqV4kW+yguuqHrw5fF7GWSinuhgUCaTKBAwAKCRBfF7GWSinu hqRDD/98iz0Ctgrxm43UIHme2neaqc+vqbHbJyZnTAT79boWSUiQLZYBwcd7J91sjqEQUk6Uz4w JC10u1Kfk4h1JV1VkMWUTZ+mBNDr2iH0QL8be2NWskrFyLJXJ1bfnVRyTcDa+gPt1uHFfROvZjv MhOCjwUeeKnQmqP+ZcU/kTaPdxMoJEw3UHP+y6AeXbbBu9qcgLuKSRlANTb02G08ZW69WGwWjD1 lZjAAXdo5byefrbu2nI+91ZTK0l+eoUZv2G/jzJsCFJr/Gva5CS3+G+j0fx4dvVNcZnjFxIr42N TkwdvQLYMxpHmaaxWz9nk5XOo8MdO7OR3bx++vPGWgQM3o+fU73Sh/0eMGxztCygX9FMekO7EMV 9Jo4OEAzTfQ0r2S7cy5dBG/bX0fQNyMn/EnI4HWtln0Dix9nNgJIVTRdc2urwoiQrG0CX/U+STo 57Dkxkw7lzUmzeRiWhXJVhY3zPVpR95K5yEEdNZ+XPTcIpfx5PBSEpGk4i8ScXlMSbESag+ld1v 5aGse4utq3EYD+/guF29lRQt/Ez9n9aSBDyb5fYNHyUn1kwEiAgiQyRKeEGqOttHfcjZYi5F/W1 XPE4MmPk3u49Yud5gTvteke3BTuPYQA6aHksXE+kTouOsUs8KFzvSwFpuupz99fMns4kA2bTq8v y52lXEiHHUgr4Og== X-Developer-Key: i=Leo.Lin@amd.com; a=openpgp; fpr=33A95E245BECA0BAEA87AF0E5F17B1964A29EE86 X-ClientProxiedBy: satlexmb08.amd.com (10.181.42.217) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS1PEPF0001708F:EE_|MN0PR12MB6294:EE_ X-MS-Office365-Filtering-Correlation-Id: 27adb972-d991-4d53-8f65-08de33cad097 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|36860700013|7416014|82310400026|1800799024; X-Microsoft-Antispam-Message-Info: =?utf-8?B?NE5zdmRXNnpUUW5hWjE3MlBEOVBsWVJFL1B3UDA0WkhTcHZFQ29jakJIRU1L?= =?utf-8?B?UXZrd1BBR1ZyRVY2TS81NFdjb0xTaWwwQ3ArOHZNRGJDK1o3YVhOZWkrZUto?= =?utf-8?B?VDNSSzZpUDNBK0xCTE0zanR0R0x4eXhLeVVKQktYS1lwdjh2Q0xmYnpXMURQ?= =?utf-8?B?WDc0dGR4NWtJNmZ1QVhTUmVwU1BzampJLzhCbEYvWXd3bmRxek9PV3FWdCtY?= =?utf-8?B?dEhVRWhneW9ielZGaDRLY1oyRmVRdG8wY0lNaU9aRWpXaWJmeXN5UzNhYy8v?= =?utf-8?B?WnQwTTlxQitIeGdjcE9WMDROZ2NYb2QvOG9lSUFvYzRnRkdyR2xUUHFydy9w?= =?utf-8?B?Y3NNV0Z3bXZQQk1wNmt2T0FEWVhQVmdNZlBJa1MwcGxKYTZ2YnhoclpZKzdk?= =?utf-8?B?RHRxWHlvUGZSQUJ0elJhM0ZtUlN4UnRpUjR5bStSTUlRZlpFcXR1ZmVPV1ZP?= =?utf-8?B?R2hqbHdXYjNKN3EvQ2xvcDF6UkNJc2d5UUdnNkFkbjd3eUtCWFFYYUZxN0dn?= =?utf-8?B?aWU2NTJqVGxQN21HNG5MVEFmYTNJNlR3TVJrbHBGODNaVVEwQUZHTjlLNFVp?= =?utf-8?B?aUtiZnBFNUZQNUFQMWMxaUxDR0FkTTJBcDUra1NZbWx5ZzFFNWs3TkpDOXZ0?= =?utf-8?B?K1hPUVYxcC9FUW5EbU1hTXlYNHNjV2VHMkdxMnI2ckVLWERNT242cHhhN3Fv?= =?utf-8?B?MGczREZmT3BZd3k5UFhoL2xvZ29FZ1pEVlhUQlEyT201RWl2Yy9pTTA2SDVl?= =?utf-8?B?TmhGQnU0MGFMbjNwZ25XZFRvTThOSlRYdTF4bk56SEpSbythQTFYLy9HQmRY?= =?utf-8?B?ZXA5a3FnaVBQblNMSGdFcnRmRFMramJaY0RlenVMVWtCU29TM0ZaakRFcnlj?= =?utf-8?B?aitwa3BpWUZUZWQ0ZkFWK0VhL2N4bEFPQmszc3Q0alZLOTFJY2hET1hHcTBy?= =?utf-8?B?dnlXUm1ZdFRXSXBLbjdZYVdhbXlrRmlNb0ZyVll2am9UQkFlQ21PYUd5RFVW?= =?utf-8?B?UmJNTDhnRldiTzlkNWY0bHJGZ1lBRkNWV3FXRDlDVFIzc0R0QzE0SW9XcGdx?= =?utf-8?B?K0p4aVFwQm9wM1hpdFJjVHNTVjhjZ0dZcm43SnA3SytmRTgyU3Z5OGxoNDhK?= =?utf-8?B?NmJmSG5zMnRGWXpjaWdCM29SeUhWay9Xb0E5VlI4UXV1WUNBa1BQTzBuUDJY?= =?utf-8?B?aU9ZTXVPNm9DMGNvbW5SMWJzSGZhTFNzUTRSZFIwTUJHbVJiaE4rb2F3ZDlU?= =?utf-8?B?R1FRMzNTRUpKSEJobGNIbmRCM25CQW91YzN0Q091ODdxMmFJcWZ5QSs0YWlt?= =?utf-8?B?V1lJQ285WDQwRVBWOU1uQnp5Rk9hVnI2cFpjdE9UV0FycndlS1FhcWdkTUFQ?= =?utf-8?B?NFZWYTFTZzdMQXJuRko2MWdUVmVib3Z6Mk5VWURsOVovSXRXRTRsaWpXWUlH?= =?utf-8?B?M3dwSjc5RVZQYS9kdXFka0VIUVVwQ25oMmJyVEh4TUZyLy9IWEVLOHJpckpk?= =?utf-8?B?VmV3QUFWMER0NU9hekh4YVZlTUZJK081NEp1WmxPcFJrakdVNDJVdy9lcy9k?= =?utf-8?B?WlFucklYS2FRdjMySy92N1dvRzh6cTBMbnk4T2dGNkQ4Q3lmWXhJc1NxNXlz?= =?utf-8?B?dGFuelZrR1JRbWZGekVQaE5SRGhXU3JYMHI0OEFKamo1VENUMzJETXRWVWdo?= =?utf-8?B?UytMUVhya2JWRXZwSFIvaDF2RzRaL0hqUWVkM1pQZjdHaWZFazF0TllHNkFG?= =?utf-8?B?WHBiNWpCS2s0NnFZc0RVNllJUnJic2tJOUVKaEMvMnh3WGxYSHA5Y1dFMHdx?= =?utf-8?B?V2l0N0NGdHE1NUlXRzZPUTJDYkNFQ052alJGU0dpajlheTFRT0gxMnU5TkNT?= =?utf-8?B?aDVxS0grMm9vcll5SWlDaXJVNkJqSHp2YmxwZkFHc0tHT1QxeVZCcGNCNjBO?= =?utf-8?B?aGF5MUZORjA3RzdXbXVtVEhQOG4razh6OUhCWmZVWUVsS0YxUGIzMENaWTBQ?= =?utf-8?B?V2QvYmU0NXJWQUpRelpYWDgxMHltams0M1RCNy94dDE1aHY4eXFZWjRERzFD?= =?utf-8?B?M3hJQjZyVlpWcSs2YkRTc0dhaFplT1F0NVVuQlhLSjc2YzFHZllxMXJhTU9N?= =?utf-8?Q?gCWQ=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(36860700013)(7416014)(82310400026)(1800799024);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Dec 2025 06:52:10.8416 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 27adb972-d991-4d53-8f65-08de33cad097 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=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: DS1PEPF0001708F.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN0PR12MB6294 Currently, the available UMA allocation configs in the integrated system information table have not been parsed. Add a helper function to retrieve and store these configs. Co-developed-by: Mario Limonciello (AMD) Signed-off-by: Mario Limonciello (AMD) Reviewed-by: Alex Deucher Signed-off-by: Yo-Jung Leo Lin (AMD) --- drivers/gpu/drm/amd/amdgpu/amdgpu.h | 34 +++++++++++ drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c | 77 ++++++++++++++++++++= ++++ drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.h | 2 + 3 files changed, 113 insertions(+) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdg= pu/amdgpu.h index 9f9774f58ce1..aca2ddddc64c 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h @@ -836,6 +836,38 @@ struct amdgpu_uid { struct amdgpu_device *adev; }; =20 +#define MAX_UMA_OPTION_NAME 28 +#define MAX_UMA_OPTION_ENTRIES 19 + +#define AMDGPU_UMA_FLAG_AUTO BIT(1) +#define AMDGPU_UMA_FLAG_CUSTOM BIT(0) + +/** + * struct amdgpu_uma_carveout_option - single UMA carveout option + * @name: Name of the carveout option + * @memory_carved_mb: Amount of memory carved in MB + * @flags: ATCS flags supported by this option + */ +struct amdgpu_uma_carveout_option { + char name[MAX_UMA_OPTION_NAME]; + uint32_t memory_carved_mb; + uint8_t flags; +}; + +/** + * struct amdgpu_uma_carveout_info - table of available UMA carveout optio= ns + * @num_entries: Number of available options + * @uma_option_index: The index of the option currently applied + * @update_lock: Lock to serialize changes to the option + * @entries: The array of carveout options + */ +struct amdgpu_uma_carveout_info { + uint8_t num_entries; + uint8_t uma_option_index; + struct mutex update_lock; + struct amdgpu_uma_carveout_option entries[MAX_UMA_OPTION_ENTRIES]; +}; + struct amd_powerplay { void *pp_handle; const struct amd_pm_funcs *pp_funcs; @@ -1319,6 +1351,8 @@ struct amdgpu_device { struct work_struct userq_reset_work; struct amdgpu_uid *uid_info; =20 + struct amdgpu_uma_carveout_info uma_info; + /* KFD * Must be last --ends in a flexible-array member. */ diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c b/drivers/gpu= /drm/amd/amdgpu/amdgpu_atomfirmware.c index 636385c80f64..7f4751e5caaf 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c @@ -296,6 +296,83 @@ static int convert_atom_mem_type_to_vram_type(struct a= mdgpu_device *adev, return vram_type; } =20 +static int amdgpu_atomfirmware_get_uma_carveout_info_v2_3(struct amdgpu_de= vice *adev, + union igp_info *igp_info, + struct amdgpu_uma_carveout_info *uma_info) +{ + struct uma_carveout_option *opts; + uint8_t nr_uma_options; + int i; + + nr_uma_options =3D igp_info->v23.UMACarveoutIndexMax; + + if (!nr_uma_options) + return -ENODEV; + + if (nr_uma_options > MAX_UMA_OPTION_ENTRIES) { + drm_dbg(adev_to_drm(adev), + "Number of UMA options exceeds max table size. Options will not be pars= ed"); + return -EINVAL; + } + + uma_info->num_entries =3D nr_uma_options; + uma_info->uma_option_index =3D igp_info->v23.UMACarveoutIndex; + + opts =3D igp_info->v23.UMASizeControlOption; + + for (i =3D 0; i < nr_uma_options; i++) { + if (!opts[i].memoryCarvedGb) + uma_info->entries[i].memory_carved_mb =3D 512; + else + uma_info->entries[i].memory_carved_mb =3D (uint32_t)opts[i].memoryCarve= dGb << 10; + + uma_info->entries[i].flags =3D opts[i].uma_carveout_option_flags.all8; + strscpy(uma_info->entries[i].name, opts[i].optionName, MAX_UMA_OPTION_NA= ME); + } + + return 0; +} + +int amdgpu_atomfirmware_get_uma_carveout_info(struct amdgpu_device *adev, + struct amdgpu_uma_carveout_info *uma_info) +{ + struct amdgpu_mode_info *mode_info =3D &adev->mode_info; + union igp_info *igp_info; + u16 data_offset, size; + u8 frev, crev; + int index; + + if (!(adev->flags & AMD_IS_APU)) + return -ENODEV; + + index =3D get_index_into_master_table(atom_master_list_of_data_tables_v2_= 1, + integratedsysteminfo); + + if (!amdgpu_atom_parse_data_header(mode_info->atom_context, + index, &size, + &frev, &crev, &data_offset)) { + return -EINVAL; + } + + igp_info =3D (union igp_info *) + (mode_info->atom_context->bios + data_offset); + + switch (frev) { + case 2: + switch (crev) { + case 3: + return amdgpu_atomfirmware_get_uma_carveout_info_v2_3(adev, igp_info, u= ma_info); + break; + default: + break; + } + break; + default: + break; + } + return -ENODEV; +} + int amdgpu_atomfirmware_get_vram_info(struct amdgpu_device *adev, int *vram_width, int *vram_type, diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.h b/drivers/gpu= /drm/amd/amdgpu/amdgpu_atomfirmware.h index 649b5530d8ae..67c8d105729b 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.h +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.h @@ -32,6 +32,8 @@ void amdgpu_atomfirmware_scratch_regs_init(struct amdgpu_= device *adev); int amdgpu_atomfirmware_allocate_fb_scratch(struct amdgpu_device *adev); int amdgpu_atomfirmware_get_vram_info(struct amdgpu_device *adev, int *vram_width, int *vram_type, int *vram_vendor); +int amdgpu_atomfirmware_get_uma_carveout_info(struct amdgpu_device *adev, + struct amdgpu_uma_carveout_info *uma_info); int amdgpu_atomfirmware_get_clock_info(struct amdgpu_device *adev); int amdgpu_atomfirmware_get_gfx_info(struct amdgpu_device *adev); bool amdgpu_atomfirmware_mem_ecc_supported(struct amdgpu_device *adev); --=20 2.43.0 From nobody Fri Dec 19 16:21:30 2025 Received: from CO1PR03CU002.outbound.protection.outlook.com (mail-westus2azon11010019.outbound.protection.outlook.com [52.101.46.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 90F9D21D3E6; Fri, 5 Dec 2025 06:52:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.46.19 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764917543; cv=fail; b=iTjcAxRT8cAMi1RKeWp0jpxInuUoHZucajqDnVkASMIn5vEY+13UpZ69BoWHJ8pGanwyLxilvjBfw9CR8Xrvgp7q1w/BF67Z8x71VGSJPQDG/97reetD7p+okWHoCl7ipflUObH3ssiqflIow8woW9yj4/hWjcsXDslYPCXZQxo= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764917543; c=relaxed/simple; bh=1JTUnYaMBwN88BupbbAJ9raQhG9A/tKHalgh9CtVNqY=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:CC; b=H+2zSkzUkYnu4hriinSy9VKZszu8Fv4BOBERZ6j0EbtTduKW3cYmKFNeNF56VCGYkfkZrUXZ2KqRllA3dTRzAWEvXStYInXljjO/22CJK2kshLbGCKxWSzWCosZ1Cu54t73xFWeK7YW01ISTQx5yz64PH9/+bA3UEyclf4MIjF4= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=Juq4hEvw; arc=fail smtp.client-ip=52.101.46.19 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="Juq4hEvw" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=JH4zKflzqY+Lx38jjbXwMim0TDUqTVL6lutaUPBuXBSuA0r1rbAjFBGj9wJ7Uckr+MvGCWA/60wAPlBlAc9WE1J9q7s2yBiSruCb2E48XK2lHDBK81OejnlK/mTviNI707HtiDC6gY+dLWb+iUb+g+HhLzQcWGyPKN0sK2VmruDW+OfpmXQZL2VwiS2V3YGnHoQBLX3q9njfVbviLvoGbs4TgpZVA3Ys7y/mPzfD2fLcOo3LhWKWLLU9aI5b40MvL1GB56ZczhO63r8Tuuorwd3Wb42qjxdINUiZt9uQeqKxB1+6OVJKg8xdFkYs4LoS5DrwSN2rv6qTbszRPGW/LA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=dNHdvWdv0VSrnDeBDJ1DnvTDCpcSgm0o9fbtVqDN9bk=; b=LNhVoVEwTZTj6l81Ie/qXySe1ODxheQpiMFaMrWDY65bf71FLOxVaQW7BfWnmTICJSKuSO/pzntKxzpVx332Xo7Oxm3o8aSl2MdxPJZu7RFpUS9JPkA/ByULLMfh31oUl2Rz6KUND4hpYrB8CEmfVwush7T6F1V7NaPaBeKadUTJGLMyCKjDEh2/TxoZzg5ELWbtJWZmdRtGkrYI5tZ/LKZG5KvUZdb/RUfY42dlV3UCokPHhtN5UxiwLGN8U/6SaXr3FcY31CaaGkz4FD+3BIY3wH+hktCKsTuRhrrAWKgHoh2b9qLcW9Aa+SpY7BVBf1KKNO3xPfFYTHNgcB4epA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=lists.freedesktop.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=dNHdvWdv0VSrnDeBDJ1DnvTDCpcSgm0o9fbtVqDN9bk=; b=Juq4hEvwxlrvw5U98lh/BHigFXrswHDDw4+/GECzgMDa65IXUeVOqYsOlxTyJOM1rAOwWS2DW4MFbA8+tTfVqPQhDgmiI9M0JgVPpVOTYtP+GVevvilt9HjkBatoftfXiJvFJjjvOD6Lw0QB+fhi/JmA1ZZn8Odv0QiA7anyCtc= Received: from DS7PR03CA0090.namprd03.prod.outlook.com (2603:10b6:5:3bb::35) by MN0PR12MB6078.namprd12.prod.outlook.com (2603:10b6:208:3ca::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.9; Fri, 5 Dec 2025 06:52:15 +0000 Received: from DS1PEPF00017092.namprd03.prod.outlook.com (2603:10b6:5:3bb:cafe::12) by DS7PR03CA0090.outlook.office365.com (2603:10b6:5:3bb::35) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9366.17 via Frontend Transport; Fri, 5 Dec 2025 06:52:14 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by DS1PEPF00017092.mail.protection.outlook.com (10.167.17.135) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.8 via Frontend Transport; Fri, 5 Dec 2025 06:52:14 +0000 Received: from [127.0.1.1] (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Fri, 5 Dec 2025 00:52:10 -0600 From: "Yo-Jung Leo Lin (AMD)" Date: Fri, 5 Dec 2025 14:50:56 +0800 Subject: [PATCH v5 3/5] drm/amdgpu: add UMA allocation setting helpers Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-ID: <20251205-vram-carveout-tuning-for-upstream-v5-3-1e87cf3b57be@amd.com> References: <20251205-vram-carveout-tuning-for-upstream-v5-0-1e87cf3b57be@amd.com> In-Reply-To: <20251205-vram-carveout-tuning-for-upstream-v5-0-1e87cf3b57be@amd.com> To: Alex Deucher , =?utf-8?q?Christian_K=C3=B6nig?= , David Airlie , Simona Vetter , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , Jonathan Corbet CC: , , , , "Tsao, Anson" , "Mario Limonciello (AMD) (kernel.org)" , "Yo-Jung Leo Lin (AMD)" X-Mailer: b4 0.13.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=6465; i=Leo.Lin@amd.com; h=from:subject:message-id; bh=1JTUnYaMBwN88BupbbAJ9raQhG9A/tKHalgh9CtVNqY=; b=owEBbQKS/ZANAwAKAV8XsZZKKe6GAcsmYgBpMoEDeCSqVlZFeTD+PxqSNZxKGa5iz4Tz5hYZ8 VSpPz1ZbMaJAjMEAAEKAB0WIQQzqV4kW+yguuqHrw5fF7GWSinuhgUCaTKBAwAKCRBfF7GWSinu hvk8D/9+v54rrCNJD7qh8tr+IL1OrpSrEmRFJJCRgOcYqOWFzApUacLs/LpOvL/h+7aW0Isc2Tm K5ICcYYiMSg9KzRVaHD1v4fEf4ApTQDaTwA5r5mb9681ywZIu+Tc8yQmPmm5a6mRnZmsLjufrVu 8v/D4PVaazOTx/tPR7H5oZ1oFS99sbXCGJccR85ieIb7VdQHWwDjtFPWeoYvZQU1bgUIVXMpVIY InQtr/NfpTWkVp42AnWbdN4aGy5OcpR3HVMjFq9G8NUto+7O11AqtTSgN5gzlLPs8KAaPyrrFtf MfLeEodH43duGv8oJu+kTY/YQb5rlyAUR+yM2Fr1NFGr15T4ZRuici+Uoo5M1C1f9hYUfGk92cU 0EKkH0vDY/ckrp5GQRWQMhnvGYQn09bGV8ipWBMRELwDhZ43PS9DzhhbB+mv9Zpruf+4hRo+6mf DEN32TN3GFydEyfWeCJp5ZMnlUwyQO0G6I9sPvEgG+fyf2DmrfX2a1+cn+33atfFWjNSQta5wdR FsfOqxiD3DUqGDRvD0YxROSZho2Y3B4YGdP7pB1GPHHOYlQXxmhxV+Jzg61N+/b9UVSO8+tsQyH wC8Sq1ZjUF46b2+B5011RnzJBmq2zUpcN7L9l+m0eqcoo+jeLCw+Zpl3fHArOp4WupdEupYANIe 4a3gkoia97Kp3SA== X-Developer-Key: i=Leo.Lin@amd.com; a=openpgp; fpr=33A95E245BECA0BAEA87AF0E5F17B1964A29EE86 X-ClientProxiedBy: satlexmb08.amd.com (10.181.42.217) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS1PEPF00017092:EE_|MN0PR12MB6078:EE_ X-MS-Office365-Filtering-Correlation-Id: f1a8ee56-dcda-4099-0f1c-08de33cad2c3 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|7416014|376014|82310400026|36860700013; X-Microsoft-Antispam-Message-Info: =?utf-8?B?WHZ2b3NRaDlHRmNkdUVmbndXOVRTbkpWUndTa0dabkZKdExtMG9RQTVnMTNE?= =?utf-8?B?TktKNnRnOXJCRGtKQzZwV2hDZm94ZWRrVU53OWliaC9aL1lYcitmVEFGNzZH?= =?utf-8?B?aVFsSTYyY2hvbzhtcGtFVXhBdlNEeHJ2WHNYZGwweFpQWm8yRnJkUTJ1QlZ1?= =?utf-8?B?cW5RVkt5NTI0dFNJV0RvUG5URlZFZmk0VjF5NXc1VHJSdlh6OXRFYk1OUDNz?= =?utf-8?B?dk5tTFM5Q3MxTnF1U0NFWEROZkc2SUkzelk1Nk9EYzBOTHdSWC9BM3VxS0RR?= =?utf-8?B?UU1ic3NncXZIWVQwZWV1bUxObDVGUjUxaXcwQ3pHTW1SOHlFSk9vWlBZbWpn?= =?utf-8?B?RWJFcnluZm9KdHRVLys4SG9lTUhJTnEzVXNUeUVqeUI1TWxlMnRtTytNUEl6?= =?utf-8?B?MVlXeE5wNmh2MFh4dDRTZGtzT3NBTXl5cXJlelA0V1V1ZGQ0aml4czFPa2hm?= =?utf-8?B?OW8xVi9YQVlCMVIvQkFNY2kxaWw4bWlPS1FJQjZIT0dSWkNiZGdrR2VyL1pT?= =?utf-8?B?QVJHTzliLzdwL2hqUGcrc2pkVFVmOU1vUUNDREppVVVpKzR4Vm5wdjdIZVEw?= =?utf-8?B?Tmp2QnFyTnhyd1diM1ZLOGlvajBqK2E5dldiS0grVXpxeUE5cXhka0xVQTFN?= =?utf-8?B?cEh4VHNUallOL2g3WHhTNzdxL1FFRzdoUWJwSWhQdWI4QytjSWxtbFphTWFT?= =?utf-8?B?Tk1GVEFzYUQzQTlhQ1BHalVmTEgydVd2bk1mQkVLdEQ5UEdpYVltcnlDbS9M?= =?utf-8?B?czVOS1pkVER4RWxtUmlCODdjRDJGNFd0YVNDVFBPY29xWTBZTnkwbHZMZmNH?= =?utf-8?B?RkwzVk9BR01qUkFReFJ0azRoNytnWHUyZ0cwenJtOVIxU3hWcE5kZmlid0ti?= =?utf-8?B?RGJyRzJRTXBUYjFvUDhSVENCQVVNaDhYekdYTFV0NUdWZ2o5UEg5QkJUdFRq?= =?utf-8?B?NjhIdmNTUTRYQnV6QkZWS2VqQkhxcXBUaG1zNUhOYUxYd1o0Y00yMTVVSzJD?= =?utf-8?B?VmUvb2dmaTA2Rk4zRmZuOHJSOGFFOWxCdUI1TG94YXFnU2FnNk1QTG5NR3l1?= =?utf-8?B?VWlzc0JCUkhDZzA2MzB5bEVJbkNMejBJV2ptRkNJeC82SFkxYW5TWnBJcnVU?= =?utf-8?B?bGhqd014c1ZhYzlPNnZIMWowblJKaWVpUHM2b21Fd0VJQkhuMlNpVGJyWUI3?= =?utf-8?B?WE1vbmhUcHhjVFB1Y3NJakRiM2xaRlEzUjlrOVNUOTFPK0FqdGkyZUZ5dURr?= =?utf-8?B?M0pQQ2lrQXhmM3lqbTAwdmF1OU9mNDdvMktsVy9lcG9QbXZqVGpBOFkzUjdY?= =?utf-8?B?Sy9IQWxMYWpCbE5HUDJXRi80NUN4SFl0OG1vSzhHdUxJaTAvRS81SlpMMTFO?= =?utf-8?B?dHZSTTJqMFdydEtRN3pHMko0MmwrdU02QjNrR25FNW1IVWsrTzFKeXFMSjZn?= =?utf-8?B?dzJrVUhDbmpSaVljOExETXFPYkljOXN5MW9BYXlOUVI4aFFHUGRraFFXUzNS?= =?utf-8?B?YmNsNEdTV2hZbjYzeFg5WFpMcjhtQmRBSFJzemVMU0ZXZlgrOUpqVm00NVpU?= =?utf-8?B?Q0tiMUdLbURXTnFpOFdCSGlVTnpjVzNZUFRDVGJjWFE3R0Zpay9mdUs3akZ0?= =?utf-8?B?T2lER0U3cnhlT2R5NTVoMm5nMXltbjRJaUFTOWN4ckN6VjZMNG9iZG9zemJR?= =?utf-8?B?MFZ3NWZkTTNQZHN0eVRNMzBpSmt1WGFOR1ZXdE9uYU50UXZ3bkl0a1YwZ1Ez?= =?utf-8?B?WEV6cjZGVCthdzdhS0lERnBXUWVsUytBSEplaW91bWtKZUwxeXRtTWJURXcx?= =?utf-8?B?OGt4TExsdDZnUSt1aVcvdjlDUnJUUTZ2V3ZCVmFTc1FxVlM1RXZIL0NoWWRR?= =?utf-8?B?dkUxR1FsUXJaeEVsSEpJNVhxWkxLZzFXd0o2ZVRQY2IwaE53LzJCTi9CZVNQ?= =?utf-8?B?dnZvZ3dGbktqRzNpSnZnNE81SU1OL1dyOEpENm54eXhkcHdwUkRwWWdnSzd4?= =?utf-8?B?ZVUyZXlST0lZU2VpOUJIZndNWmlReTR2dm9LOGFtQmt6VnRiZ0pCNVN4NzZI?= =?utf-8?B?dTZZd2Q2YUFDMVZWRDJyQkdnRmRCakxnenlwZXdCUnRvRDYreUJLVk9wVThK?= =?utf-8?Q?5Jw0=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(376014)(82310400026)(36860700013);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Dec 2025 06:52:14.4813 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: f1a8ee56-dcda-4099-0f1c-08de33cad2c3 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=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: DS1PEPF00017092.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN0PR12MB6078 On some platforms, UMA allocation size can be set using the ATCS methods. Add helper functions to interact with this functionality. Co-developed-by: Mario Limonciello (AMD) Signed-off-by: Mario Limonciello (AMD) Reviewed-by: Alex Deucher Signed-off-by: Yo-Jung Leo Lin (AMD) --- drivers/gpu/drm/amd/amdgpu/amdgpu.h | 7 ++++++ drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c | 43 ++++++++++++++++++++++++++++= ++++ drivers/gpu/drm/amd/include/amd_acpi.h | 30 ++++++++++++++++++++++ 3 files changed, 80 insertions(+) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdg= pu/amdgpu.h index aca2ddddc64c..6bf626a51dfc 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h @@ -1720,12 +1720,14 @@ int amdgpu_acpi_init(struct amdgpu_device *adev); void amdgpu_acpi_fini(struct amdgpu_device *adev); bool amdgpu_acpi_is_pcie_performance_request_supported(struct amdgpu_devic= e *adev); bool amdgpu_acpi_is_power_shift_control_supported(void); +bool amdgpu_acpi_is_set_uma_allocation_size_supported(void); int amdgpu_acpi_pcie_performance_request(struct amdgpu_device *adev, u8 perf_req, bool advertise); int amdgpu_acpi_power_shift_control(struct amdgpu_device *adev, u8 dev_state, bool drv_state); int amdgpu_acpi_smart_shift_update(struct amdgpu_device *adev, enum amdgpu_ss ss_state); +int amdgpu_acpi_set_uma_allocation_size(struct amdgpu_device *adev, u8 ind= ex, u8 type); int amdgpu_acpi_pcie_notify_device_ready(struct amdgpu_device *adev); int amdgpu_acpi_get_tmr_info(struct amdgpu_device *adev, u64 *tmr_offset, u64 *tmr_size); @@ -1754,6 +1756,7 @@ static inline bool amdgpu_acpi_should_gpu_reset(struc= t amdgpu_device *adev) { re static inline void amdgpu_acpi_detect(void) { } static inline void amdgpu_acpi_release(void) { } static inline bool amdgpu_acpi_is_power_shift_control_supported(void) { re= turn false; } +static inline bool amdgpu_acpi_is_set_uma_allocation_size_supported(void) = { return false; } static inline int amdgpu_acpi_power_shift_control(struct amdgpu_device *ad= ev, u8 dev_state, bool drv_state) { return 0; } static inline int amdgpu_acpi_smart_shift_update(struct amdgpu_device *ade= v, @@ -1761,6 +1764,10 @@ static inline int amdgpu_acpi_smart_shift_update(str= uct amdgpu_device *adev, { return 0; } +static inline int amdgpu_acpi_set_uma_allocation_size(struct amdgpu_device= *adev, u8 index, u8 type) +{ + return -EINVAL; +} static inline void amdgpu_acpi_get_backlight_caps(struct amdgpu_dm_backlig= ht_caps *caps) { } #endif =20 diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c b/drivers/gpu/drm/amd= /amdgpu/amdgpu_acpi.c index 610449d73a6c..bdafcde51107 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c @@ -668,6 +668,11 @@ bool amdgpu_acpi_is_power_shift_control_supported(void) return amdgpu_acpi_priv.atcs.functions.power_shift_control; } =20 +bool amdgpu_acpi_is_set_uma_allocation_size_supported(void) +{ + return amdgpu_acpi_priv.atcs.functions.set_uma_allocation_size; +} + /** * amdgpu_acpi_pcie_notify_device_ready * @@ -908,6 +913,44 @@ static struct amdgpu_numa_info *amdgpu_acpi_get_numa_i= nfo(uint32_t pxm) } #endif =20 +/** + * amdgpu_acpi_set_uma_allocation_size - Set Unified Memory Architecture a= llocation size via ACPI + * @adev: Pointer to the amdgpu_device structure + * @index: Index specifying the UMA allocation + * @type: Type of UMA allocation + * + * This function configures the UMA allocation size for the specified devi= ce + * using ACPI methods. The allocation is determined by the provided index = and type. + * Returns 0 on success or a negative error code on failure. + */ +int amdgpu_acpi_set_uma_allocation_size(struct amdgpu_device *adev, u8 ind= ex, u8 type) +{ + struct atcs_set_uma_allocation_size_input atcs_input; + struct amdgpu_atcs *atcs =3D &amdgpu_acpi_priv.atcs; + struct acpi_buffer params; + union acpi_object *info; + + if (!amdgpu_acpi_is_set_uma_allocation_size_supported()) + return -EINVAL; + + atcs_input.size =3D sizeof(struct atcs_set_uma_allocation_size_input); + atcs_input.uma_size_index =3D index; + atcs_input.uma_size_type =3D type; + + params.length =3D sizeof(struct atcs_set_uma_allocation_size_input); + params.pointer =3D &atcs_input; + + info =3D amdgpu_atcs_call(atcs, ATCS_FUNCTION_SET_UMA_ALLOCATION_SIZE, &p= arams); + if (!info) { + drm_err(adev_to_drm(adev), "ATCS UMA allocation size update failed\n"); + return -EIO; + } + + kfree(info); + + return 0; +} + /** * amdgpu_acpi_get_node_id - obtain the NUMA node id for corresponding amd= gpu * acpi device handle diff --git a/drivers/gpu/drm/amd/include/amd_acpi.h b/drivers/gpu/drm/amd/i= nclude/amd_acpi.h index e582339e8e8e..84933c07f720 100644 --- a/drivers/gpu/drm/amd/include/amd_acpi.h +++ b/drivers/gpu/drm/amd/include/amd_acpi.h @@ -24,6 +24,8 @@ #ifndef AMD_ACPI_H #define AMD_ACPI_H =20 +#include + #define ACPI_AC_CLASS "ac_adapter" =20 struct atif_verify_interface { @@ -112,6 +114,17 @@ struct atcs_pwr_shift_input { u8 drv_state; /* 0 =3D operational, 1 =3D not operational */ } __packed; =20 +struct atcs_get_uma_size_output { + u16 size; /* structure size in bytes (includes size field) */ + u32 uma_size_mb; /* allocated UMA size in MB */ +} __packed; + +struct atcs_set_uma_allocation_size_input { + u16 size; /* structure size in bytes (includes size field) */ + u8 uma_size_index; /* UMA size index */ + u8 uma_size_type; /* UMA size type */ +} __packed; + /* AMD hw uses four ACPI control methods: * 1. ATIF * ARG0: (ACPI_INTEGER) function code @@ -494,4 +507,21 @@ struct atcs_pwr_shift_input { * OUTPUT: none */ =20 +#define ATCS_FUNCTION_GET_UMA_SIZE 0x6 +/* ARG0: ATCS_FUNCTION_GET_UMA_SIZE + * ARG1: none + * OUTPUT: + * WORD - structure size in bytes (includes size field) + * DWORD - allocated UMA size in MB + */ + +#define ATCS_FUNCTION_SET_UMA_ALLOCATION_SIZE 0xA +/* ARG0: ATCS_FUNCTION_SET_UMA_ALLOCATION_SIZE + * ARG1: + * WORD - structure size in bytes (includes size field) + * BYTE - UMA size index + * BYTE - UMA size type + * OUTPUT: none + */ + #endif --=20 2.43.0 From nobody Fri Dec 19 16:21:30 2025 Received: from CO1PR03CU002.outbound.protection.outlook.com (mail-westus2azon11010008.outbound.protection.outlook.com [52.101.46.8]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E2BA12DE6F9; Fri, 5 Dec 2025 06:52:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.46.8 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764917545; cv=fail; b=XobVje29830hiNaZ6WzxGcXNZXZtfnfFlftUZBMe5MTgyCXhq79+c2LzkCvO3OZPU8d3RbKSr1X15Y1EVkv5rsynFNKo4Qf9FawQVtAR8JDJFIO1RKkZgOAwrtIiXMJIcX1zEyLuoz7dYvIMP+ffZJTfz/h/hm8jpPKO0dc8qv8= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764917545; c=relaxed/simple; bh=H1TIWs+zw6Cg1v5OIVIey3hgAxGbLDcZ4aQXx0lGDFg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:CC; b=MTxPqyXJP4AfYx2Iwz3DIIfzf/2+DOpW2mjH2349ZHkz4qWsythhOHxt26+cvZUVFM9NgKtr1yikXokniOhmBxy0c6NN5FELhZ7qa5VCrOLjotAunKuaaXHHEENMCf9EaM40jd0dlJMNZmfwIhKg+/QQ+rOoc98aaPXEGpgktj0= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=uX30vmYQ; arc=fail smtp.client-ip=52.101.46.8 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="uX30vmYQ" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Vvv2GPXF2N1b2CuL3g3UEwZB1ofajynFTrE+xJfjgm44gGxFtYUQrk2+DW+aH+UhwTmM7gJpNjishz6K6j8wK4ZEORuDCoZHBhThOjJj2X1BqGfgDUxCRriDoxssTBfrCc58zKktkd8mIa9ilEbQPUdscSRr3JgbGj6lqVH9oPJkfLikyvC64qZ6mdXMEAEvRdw+fXDxu6QyNLrBsG+mNNTQ38dAC4bjHw4gOXStTHxbciR9z+Sza+N1ncHNvMpj+tWWwMlZlN1389oNcqEtmw9KZv1R+v8B0HtJNkkfpw+oLKJJsjBOO5X01njrPcpomvhLaF6km6bp7ZE12ctGGw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=8oGSwUVseApxuEq74NExCWk3MqqndQd9SzDYDwbQYUA=; b=ee45+/EdrbMo8GmbcW4zIj5fQuB4ZQNDRHPGaUKhEuVi7WnXi7xV4ZBg5VG8QLzARmppp5Fv586woawRSTcy64m7H0QoL/g3HUHUyqafny42W+hRPE4TyR59dAuyuSjlVgVDFLzVQN/5vIotivUvoQCBpgbHoGiLbR9kKbov+9MgzwsvEd5SWs4uVr6uw7Qi4FSuyIZjIbDSpoYu/yyLxfhmsUm0rXxZt2/76rYuMsvqBEw+vhbA2AcZdqgLJuxcc2fJDdZR5C7VJEtv8YZ/r+iw9TbVwPOhaKleEU7eXvQpFEtn3lg2lTXvnmPxHwI3CoAGoQA91K77cD7ftYHWMQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=lists.freedesktop.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=8oGSwUVseApxuEq74NExCWk3MqqndQd9SzDYDwbQYUA=; b=uX30vmYQd/8qcoZMw/I8DNplJ7432bnFcPn6rCEnUXTl0InanEamzuPtg+FROGq1AqBWrhwPnHKu85+UxEiFZe9o67k2hCeygEXxTXSDOHHHKhli/Fbe4rCizkRzMdEqNYLaAtWugVzT7PHeyxvIPhCoI5as6/KZfDd2gUGTdUA= Received: from DS7PR03CA0084.namprd03.prod.outlook.com (2603:10b6:5:3bb::29) by DS0PR12MB7778.namprd12.prod.outlook.com (2603:10b6:8:151::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.13; Fri, 5 Dec 2025 06:52:17 +0000 Received: from DS1PEPF00017092.namprd03.prod.outlook.com (2603:10b6:5:3bb:cafe::c6) by DS7PR03CA0084.outlook.office365.com (2603:10b6:5:3bb::29) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9366.17 via Frontend Transport; Fri, 5 Dec 2025 06:52:17 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by DS1PEPF00017092.mail.protection.outlook.com (10.167.17.135) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.8 via Frontend Transport; Fri, 5 Dec 2025 06:52:17 +0000 Received: from [127.0.1.1] (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Fri, 5 Dec 2025 00:52:14 -0600 From: "Yo-Jung Leo Lin (AMD)" Date: Fri, 5 Dec 2025 14:50:57 +0800 Subject: [PATCH v5 4/5] drm/amdgpu: add UMA allocation interfaces to sysfs Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-ID: <20251205-vram-carveout-tuning-for-upstream-v5-4-1e87cf3b57be@amd.com> References: <20251205-vram-carveout-tuning-for-upstream-v5-0-1e87cf3b57be@amd.com> In-Reply-To: <20251205-vram-carveout-tuning-for-upstream-v5-0-1e87cf3b57be@amd.com> To: Alex Deucher , =?utf-8?q?Christian_K=C3=B6nig?= , David Airlie , Simona Vetter , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , Jonathan Corbet CC: , , , , "Tsao, Anson" , "Mario Limonciello (AMD) (kernel.org)" , "Yo-Jung Leo Lin (AMD)" X-Mailer: b4 0.13.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=6648; i=Leo.Lin@amd.com; h=from:subject:message-id; bh=H1TIWs+zw6Cg1v5OIVIey3hgAxGbLDcZ4aQXx0lGDFg=; b=owEBbQKS/ZANAwAKAV8XsZZKKe6GAcsmYgBpMoEDn9tm7W8CjfQDJEzIEEufeyk8FTCmpxvz+ QfVQzrC4TyJAjMEAAEKAB0WIQQzqV4kW+yguuqHrw5fF7GWSinuhgUCaTKBAwAKCRBfF7GWSinu hsmSEACEokBGUQwpHy+GHWPCmg1um2Tdeb//JvvdlKs2REsyGWypnkJpw0g8frgBqYlMcMt/KYV ri3PvjSZwsONh6yguz0TD+oB9u7Pyl1UbeEV/VGMBDe47xEjq+RYBYxunVD0HQyCONH6mYO3Z4B PgqlulcIwgh0aN/KjkpuXHx7gwMLIm+rgBeM/AuFv2GWz4dxMiASNDfPcxUGdxhWr7G2MA1huuy tr2X8RJPzL5LdjuRZ/Z0AKMk0rS0XUnkOI3AThwGeqs9hHSGOOREfTf86IJrCLquYGUTAJqJRgY f7olQ12cTZqKhDJ0OkSq+Za1mpDwILe2d7ruLbJkJPhWJncdkR5x/lAp9moxi5hRRF+0JZBPN3X n4PN/7ipC1jId20OvTtiPic9E73Y1SYdDBAJfbM6S4jL25KNGtz4xpb2VN2DeroC9ajmRsjdhqS l/M0Hq2yV/H12kddwv7DWAFPvZZzJ2sJRT0RO1aZZ+R9bAp0KuxVIBaDNZcNtboPvXuooLVkOCQ KC+GU4HPGoog8aj31cjQcu2ivhJYuwD2zz5ysBRvSZFOtwHQjs8u2fpzcTX9ZdT8/j6GzKn230F 3zVtP0YpuyKtuQlwCjSKyOMQqrf8GJZgmPwx0pYO22J9HR/D8ZKD9nc+Ntk+GXPetpl0EZNDOn+ 0YZX8b4EQKiSyPQ== X-Developer-Key: i=Leo.Lin@amd.com; a=openpgp; fpr=33A95E245BECA0BAEA87AF0E5F17B1964A29EE86 X-ClientProxiedBy: satlexmb08.amd.com (10.181.42.217) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS1PEPF00017092:EE_|DS0PR12MB7778:EE_ X-MS-Office365-Filtering-Correlation-Id: 1eccfe88-0b41-4633-d4f6-08de33cad4bd X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|82310400026|7416014|36860700013; X-Microsoft-Antispam-Message-Info: =?utf-8?B?V3J2NGR2ejNmSjZoRm5SdGNldzVFL3llbkc4Q2Y3M0VQQ1BkTFlMbkVnNHk0?= =?utf-8?B?WHpndHFub0FwRG5XNG9qdnNMOUhQWkN2UXFGdXRYTU42VW1sbnBJWjBkUjRm?= =?utf-8?B?UjhTcisxS1ZuK0hycTRuanUrd29qa1BHYnZBWHFkNEo1aFRoVERJZlJzVzl1?= =?utf-8?B?ZkpEWklGemh2S0ZjMHBRdTVWN0lrdmc5R2JOc2t4c24zUDl5TlhGRG8yQndo?= =?utf-8?B?WU5naDhaeGdIMHh0UmpwMmtXbTI0Q3BoamxRNXAwSTZQSms5cXljeGNHR050?= =?utf-8?B?S0pHYTNvcGVoeTk2SW1PcDZReGdON2Q5ZjFLVHNWTndQZlFOV0VJYUdmMkxB?= =?utf-8?B?NlJSN0RpYTBvMG5IcEh2R2FQWU1QM1VGQUdPamo0Y0RDSk5rZkdBN2ZsWStT?= =?utf-8?B?RFBES05LZ0tVTS9hanBTNHQ0ZEU3NnBIRTBzMXpmWlNOZkhXSEdVKzlYenBo?= =?utf-8?B?NTZyd3hyWnRucXNoLzNmWXMwY0NhN2xINEVEbkpSVkxMWmpka2s2UWRkbXlh?= =?utf-8?B?ZGFwTmhzNnlYV0FpN05WMEdHdFAvZ1M3T0hkUk9MNTZoWFN3N09sSFE4L0Yw?= =?utf-8?B?VTY2Y0E2R2VINE16SlJHeW1iUUxWMmtMd29vU3YzSFZXWXhIcEdkWkhVdko1?= =?utf-8?B?Y0ViczVhQkZYVWhBbmlmbmU5ZnFKalpKRFl3VDBVSFF3TG94TTNwdHE3L3FL?= =?utf-8?B?NlZ6TDU4NGF0Q25KTzNzeXlQNmZYeWNpejMxQXdtR05HakJVYzFrNHhZOWwx?= =?utf-8?B?WnFkZ0NiOWxaRlN6MzNvajlMc2tWc0V3UlZ1WTluV1BtSWZrWldGZ0dnL0or?= =?utf-8?B?WkRpT0IyVmhsSktVVHBRTFdSeVJSVHFtVEE3UUtQc25vNzZkOTNTcDlYY0Fr?= =?utf-8?B?ald0UWdNMngrTmJKMit6d1FPanVKUXR3SW9GdzNEam9DSGlLTHQwdDZGY3NG?= =?utf-8?B?QUdhVFc5ZjhQRjNjQ0JPTEFUWUlXWCtvUWZ4dnk1YmhCcDdrWitxZ1c2UzM5?= =?utf-8?B?MW9PU3h2MlVQSHk3Q2hTYzRTc0dobWhPRE00N3NacTdjeDd6VG5adHg2TDFr?= =?utf-8?B?S0NQZGRuWlpjd2xYaTNkb0N5aEJjVTdXRjNOUjRMUTF5U0IzZ0ZvaHlOWnc5?= =?utf-8?B?cW9zZkk0b0VkdHRJdFg5blozYUR1VG5UUWQ1VVR6Qy9iS1Z2NmFIQkd2NUtM?= =?utf-8?B?RXJDKzlLRm5sSjJDWWY2Y1BobmZXdzhkVjhIWmdaTU1aZitGUlB0Q28wUzNX?= =?utf-8?B?OUhWcUJZT2dMQm5yV0hWa0hJV0h4Y2RvYWNGRWhJczJKQWh6c0t5Nm81V0NV?= =?utf-8?B?Yzg4QURSUVBmc2hwRkpIZmNSckQ1d01SRDhpSHh0cWFTbzVVSWF2VHF6M0h2?= =?utf-8?B?RElGUCt0MWs4UWZSZ0VoZk5vTGFsdlREOGFKb1NtWDdtbk9ZTlF3SXlxREVq?= =?utf-8?B?bk9aeFBBNy9uN2hrL0hWd25CVUo5U3hpQnBESHFTNkREWjFZbHUwNko1eWVz?= =?utf-8?B?cVhoSHhIU3BCQjlqSzI2MzA4aVBLWlc2RFordDN3enNuSnlSbXFSdVdpN3JR?= =?utf-8?B?NDUxQllGaDc1ekRhMlh2T2lhTEl4MkNzd1NLMFo4YUlvdk1zNS8xTnZDWUoz?= =?utf-8?B?aEhHS245YTBFaEUxSXFqTVJHdW9IcWk0dEcyRzl6MjAwcFNIMnBYVkdFanZR?= =?utf-8?B?NmRhYnRTM0w3NkhUb0dScHQyTHEzSVQ0bkp1ZXhxWmd6dmhJS054Z3JrQUpx?= =?utf-8?B?Z2VTK0lOM1l0Zmdxa3cyUkthL2pjTE9xOG5qNHVOOGpSc1dLRU1UWnJQRW9h?= =?utf-8?B?cHJNZFFMZmk3dm5BbjVQSk5aNktBL2YzUnAvYkpjM2E3VlozbmdVVCtiVk41?= =?utf-8?B?QU9BZmUzUGY5RlVVdFRVTkRneHdDeGdkSzJ0NXZYQnBXQnFUeGoyeTlwNXlz?= =?utf-8?B?RTM5TVB3cUVFR0ZVYi9kdk5teWZjcEdpY1MxdDl2MWI3N3RiRW1rV2tUcWpv?= =?utf-8?B?VGtLUTA5Z3pqMVNGK1VQSmJwNTc5dkxCcUdDRDV0Uzl1UE1rL3VNOCtFSnRx?= =?utf-8?B?cTN0anRHZ2xDOWQ2bCtCVkJSaTFHdjkvenliZlJ4bUVSVGhST296WjR1RVYr?= =?utf-8?Q?eUCQ=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(1800799024)(82310400026)(7416014)(36860700013);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Dec 2025 06:52:17.8014 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 1eccfe88-0b41-4633-d4f6-08de33cad4bd 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=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: DS1PEPF00017092.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB7778 Add a uma/ directory containing two sysfs files as interfaces to inspect or change UMA carveout size. These files are: - uma/carveout_options: a read-only file listing all the available UMA allocation options and their index. - uma/carveout: a file that is both readable and writable. On read, it shows the index of the current setting. Writing a valid index into this file allows users to change the UMA carveout size to that option on the next boot. Co-developed-by: Mario Limonciello (AMD) Signed-off-by: Mario Limonciello (AMD) Reviewed-by: Alex Deucher Signed-off-by: Yo-Jung Leo Lin (AMD) --- drivers/gpu/drm/amd/amdgpu/amdgpu.h | 4 + drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c | 7 ++ drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 138 +++++++++++++++++++++++++= ++++ 3 files changed, 149 insertions(+) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdg= pu/amdgpu.h index 6bf626a51dfc..177376ff5811 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h @@ -1846,4 +1846,8 @@ void amdgpu_device_set_uid(struct amdgpu_uid *uid_inf= o, uint64_t uid); uint64_t amdgpu_device_get_uid(struct amdgpu_uid *uid_info, enum amdgpu_uid_type type, uint8_t inst); + +int amdgpu_acpi_uma_option_init(struct amdgpu_device *adev); +void amdgpu_acpi_uma_option_fini(struct amdgpu_device *adev); + #endif diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c b/drivers/gpu/drm/amd= /amdgpu/amdgpu_acpi.c index bdafcde51107..b2779fc2f712 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c @@ -1288,6 +1288,12 @@ static int amdgpu_acpi_event(struct notifier_block *= nb, int amdgpu_acpi_init(struct amdgpu_device *adev) { struct amdgpu_atif *atif =3D &amdgpu_acpi_priv.atif; + int rc; + + rc =3D amdgpu_acpi_uma_option_init(adev); + + if (rc) + drm_dbg(adev_to_drm(adev), "Not creating uma carveout interfaces: %d", r= c); =20 if (atif->notifications.brightness_change) { if (adev->dc_enabled) { @@ -1340,6 +1346,7 @@ void amdgpu_acpi_get_backlight_caps(struct amdgpu_dm_= backlight_caps *caps) void amdgpu_acpi_fini(struct amdgpu_device *adev) { unregister_acpi_notifier(&adev->acpi_nb); + amdgpu_acpi_uma_option_fini(adev); } =20 /** diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/a= md/amdgpu/amdgpu_device.c index a7594ae44b20..979298d9c213 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c @@ -36,6 +36,7 @@ #include #include #include +#include =20 #include #include @@ -7835,3 +7836,140 @@ u64 amdgpu_device_get_uid(struct amdgpu_uid *uid_in= fo, =20 return uid_info->uid[type][inst]; } + +static ssize_t carveout_options_show(struct device *dev, + struct device_attribute *attr, + char *buf) +{ + struct drm_device *ddev =3D dev_get_drvdata(dev); + struct amdgpu_device *adev =3D drm_to_adev(ddev); + struct amdgpu_uma_carveout_info *uma_info =3D &adev->uma_info; + uint32_t memory_carved; + ssize_t size =3D 0; + + if (!uma_info || !uma_info->num_entries) + return -ENODEV; + + for (int i =3D 0; i < uma_info->num_entries; i++) { + memory_carved =3D uma_info->entries[i].memory_carved_mb; + if (memory_carved >=3D SZ_1G/SZ_1M) { + size +=3D sysfs_emit_at(buf, size, "%d: %s (%u GB)\n", + i, + uma_info->entries[i].name, + memory_carved >> 10); + } else { + size +=3D sysfs_emit_at(buf, size, "%d: %s (%u MB)\n", + i, + uma_info->entries[i].name, + memory_carved); + } + } + + return size; +} +static DEVICE_ATTR_RO(carveout_options); + +static ssize_t carveout_show(struct device *dev, + struct device_attribute *attr, + char *buf) +{ + struct drm_device *ddev =3D dev_get_drvdata(dev); + struct amdgpu_device *adev =3D drm_to_adev(ddev); + + return sysfs_emit(buf, "%u\n", adev->uma_info.uma_option_index); +} + +static ssize_t carveout_store(struct device *dev, + struct device_attribute *attr, + const char *buf, size_t count) +{ + struct drm_device *ddev =3D dev_get_drvdata(dev); + struct amdgpu_device *adev =3D drm_to_adev(ddev); + struct amdgpu_uma_carveout_info *uma_info =3D &adev->uma_info; + struct amdgpu_uma_carveout_option *opt; + unsigned long val; + uint8_t flags; + int r; + + r =3D kstrtoul(buf, 10, &val); + if (r) + return r; + + if (val >=3D uma_info->num_entries) + return -EINVAL; + + val =3D array_index_nospec(val, uma_info->num_entries); + opt =3D &uma_info->entries[val]; + + if (!(opt->flags & AMDGPU_UMA_FLAG_AUTO) && + !(opt->flags & AMDGPU_UMA_FLAG_CUSTOM)) { + drm_err_once(ddev, "Option %lu not supported due to lack of Custom/Auto = flag", val); + return -EINVAL; + } + + flags =3D opt->flags; + flags &=3D ~((flags & AMDGPU_UMA_FLAG_AUTO) >> 1); + + guard(mutex)(&uma_info->update_lock); + + r =3D amdgpu_acpi_set_uma_allocation_size(adev, val, flags); + if (r) + return r; + + uma_info->uma_option_index =3D val; + + return count; +} +static DEVICE_ATTR_RW(carveout); + +static struct attribute *amdgpu_uma_attrs[] =3D { + &dev_attr_carveout.attr, + &dev_attr_carveout_options.attr, + NULL +}; + +const struct attribute_group amdgpu_uma_attr_group =3D { + .name =3D "uma", + .attrs =3D amdgpu_uma_attrs +}; + +int amdgpu_acpi_uma_option_init(struct amdgpu_device *adev) +{ + int rc; + + if (!amdgpu_acpi_is_set_uma_allocation_size_supported()) + return -ENODEV; + + rc =3D amdgpu_atomfirmware_get_uma_carveout_info(adev, &adev->uma_info); + if (rc) { + drm_dbg(adev_to_drm(adev), + "Failed to parse UMA carveout info from VBIOS: %d\n", rc); + goto out_info; + } + + mutex_init(&adev->uma_info.update_lock); + + rc =3D devm_device_add_group(adev->dev, &amdgpu_uma_attr_group); + if (rc) { + drm_dbg(adev_to_drm(adev), "Failed to add UMA carveout sysfs interfaces = %d\n", rc); + goto out_attr; + } + + return 0; + +out_attr: + mutex_destroy(&adev->uma_info.update_lock); +out_info: + return rc; +} + +void amdgpu_acpi_uma_option_fini(struct amdgpu_device *adev) +{ + struct amdgpu_uma_carveout_info *uma_info =3D &adev->uma_info; + + if (!amdgpu_acpi_is_set_uma_allocation_size_supported()) + return; + + mutex_destroy(&uma_info->update_lock); + uma_info->num_entries =3D 0; +} --=20 2.43.0 From nobody Fri Dec 19 16:21:30 2025 Received: from CY7PR03CU001.outbound.protection.outlook.com (mail-westcentralusazon11010044.outbound.protection.outlook.com [40.93.198.44]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 46C592BE03C; Fri, 5 Dec 2025 06:52:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.198.44 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764917549; cv=fail; b=CY83VAZ0H7zu1rwv08ZP+ZhWEYOaX3QbNPdTaFC98UrLdgxsP9TrI2pgPwV/sdhbQM/pI9HqSr1JtUhAXIUt04FbtSasvKhynVotomFE7bXuBGazG+hO9buZpoMOicOxxJ9Yfgw/7LXM+bRsyx9IOl04uw0bOu/SdGzsi+6uB9U= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764917549; c=relaxed/simple; bh=5pP+01YJvt3qBcPPJfu3J806OWCdQrg5b42lmm7gfNI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:CC; b=V7yCGWfdC0g1KsfklQ82GQ40cxqCoTkB5Oz92QnK+SDZXaid/hBzojNIYvPodG3c27B2spvBWAGhvLKLZnZP/0oIKjNwkwgB5MO/5iCoK+79J7t36FnYKPKQ2lWrtyHtzKbw4AFO1iAm4bumJhu7NArmrdgUF9AC92vzRz+o4f4= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=duocEECA; arc=fail smtp.client-ip=40.93.198.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="duocEECA" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=A9+iK08odwBed+b0IYP9sFdKPsV+ukoVzVVpFO/k/wr5H8iQEYVyWfOKTl3Afh+L8PHMRoGfshhRTEBp8H5nIzjPEym6EMOSNUCPXf6Lx8xG2bbjgiLXVH7/hQby4maXRvvGk15Snz0RoS0Gd1EgBNChSXiQ99ElA6uFIFHB8CtEDHP3Zba19GkZWY11YJB5Jn/DXxwL894q3tyBRKQ48gFp3kyIyWIEv7G1pkdNOp0tbnIw3sw0JQlRFNQYgLX5xnsVQEsp9BgHY03xuYW91SQCZOF/vYTne+47sQ75fzA4OZxtLq6+avG5Qy6f/hTl26jHw2hWzDbKMgsbL9KxLQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=Vk8F8VXZ36TbwmEpubGLvH16VwC4GIk+CsBNo9+vtsw=; b=XhE93OfF17ftbXuCO2HgRMU1ZgLMuUgOJQvQju+lscQYVVMcqUsYHDHKYiaboVJofMTro96ZJ4TREBN8PTwbKq/3o/kTmnyBOEOiE2mZcgQk/HNT98U9orTAHF0IsBI46VdFfmXo82cgxUzZKeL+oTFfPpLJTfX3satb9DsTyhNq/BdwfIfn765efTChDqeMB0QydyqUBWLTxsZxnn5hIeaMt7dLg1mCq0XZxDlwvTls91tCNzltj4RoiRg3P7fK8i6B9Qs77IEbw/egSHcfwIH3h+lN1M0THn2eXt1MNdeyimLtHpsS8Ykt/4c12V/UcwsB2FNmO1hWYnQ1WTJ2nA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=lists.freedesktop.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Vk8F8VXZ36TbwmEpubGLvH16VwC4GIk+CsBNo9+vtsw=; b=duocEECAE2jZnph7SOA+KsmiuUiv7acSG6pEioIA43Bl4MhTneizKAhfl2kI520rLtJO5hxijs/2mhdI2a+19ZF42Qp5CDeePU8mbLbDu+TFL/mvrvbi7kvMZXSPJlj0FwrmzvNKH6y/iqsfm4L7mVNZnmLsLT/EQ0sdOqIhbmA= Received: from DM5PR07CA0087.namprd07.prod.outlook.com (2603:10b6:4:ae::16) by SJ5PPFEB07C8E34.namprd12.prod.outlook.com (2603:10b6:a0f:fc02::9a8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.17; Fri, 5 Dec 2025 06:52:21 +0000 Received: from DS1PEPF0001708F.namprd03.prod.outlook.com (2603:10b6:4:ae:cafe::2) by DM5PR07CA0087.outlook.office365.com (2603:10b6:4:ae::16) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9388.11 via Frontend Transport; Fri, 5 Dec 2025 06:52:22 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by DS1PEPF0001708F.mail.protection.outlook.com (10.167.17.139) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.8 via Frontend Transport; Fri, 5 Dec 2025 06:52:21 +0000 Received: from [127.0.1.1] (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Fri, 5 Dec 2025 00:52:17 -0600 From: "Yo-Jung Leo Lin (AMD)" Date: Fri, 5 Dec 2025 14:50:58 +0800 Subject: [PATCH v5 5/5] Documentation/amdgpu: Add UMA carveout details Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-ID: <20251205-vram-carveout-tuning-for-upstream-v5-5-1e87cf3b57be@amd.com> References: <20251205-vram-carveout-tuning-for-upstream-v5-0-1e87cf3b57be@amd.com> In-Reply-To: <20251205-vram-carveout-tuning-for-upstream-v5-0-1e87cf3b57be@amd.com> To: Alex Deucher , =?utf-8?q?Christian_K=C3=B6nig?= , David Airlie , Simona Vetter , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , Jonathan Corbet CC: , , , , "Tsao, Anson" , "Mario Limonciello (AMD) (kernel.org)" , "Yo-Jung Leo Lin (AMD)" X-Mailer: b4 0.13.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=3193; i=Leo.Lin@amd.com; h=from:subject:message-id; bh=5pP+01YJvt3qBcPPJfu3J806OWCdQrg5b42lmm7gfNI=; b=owEBbQKS/ZANAwAKAV8XsZZKKe6GAcsmYgBpMoEETPiCi5Uzcj0tqrK5Y6H1cet/E5s2ScqIR 3AFTUV/gzOJAjMEAAEKAB0WIQQzqV4kW+yguuqHrw5fF7GWSinuhgUCaTKBBAAKCRBfF7GWSinu ho9bD/4jmqhOvfPUT5FvdW7pVAtmz4sChWHquPqAvsQ2E7iRmcOyQnAHfjMoi0gamEjWi7muVDT p1YZ8ECih3+CsH0zxU/9WUzlPfOYK8QF+WG8rgagOgpUiE7ecnH0z7EaZ97HTTv5IWyV5a9hycM Df7kfWu6ikSrxvqG+e++jjYnnzluBX605xLAPMz86RhefcSH+z8Pv492my9FewfQsuhDBmtySNK qU1OpHWJzXFee0BPqvIcftbyeX4XgeC59tmyb95tNBH4mysaY3OAqF5Sdvg6aYoxPxt2fm05iG1 t3pUaBsACq+FBu6spM3WPGM306Ic11a7+R2NH6XfFSDtrR9/RzFpaDJI4OTDJE71a9vBTuiMsp5 f9HCJ1en/SEAC8EG0jCw0zE7jyKAoEjTt23cQjr5By721oNicD2RP2UuqtEbbI4PYrBcx1DwzWV NTNN0FElQhiRig3IetlEWjXrUFJBukOrIMkqqXQmUcdj8UVzsjgGYyYi/tOz5Qc6TMFGvVZT1qs GtE+4uqq8Ynuq9LYbfDVktbDJ9TzifEKShrEiGQYeMY3CsD3RHwTsZpJ6E08QxvV8hO0qxX/IWQ VzAgRHmH7vgoNj+l/eBdSXmcEfaf9BXtMfW51kJhomn4UtKVt5sg/Uyrk8hKav2hi52gzWpuIYR h/Pt/QM9rsw+inw== X-Developer-Key: i=Leo.Lin@amd.com; a=openpgp; fpr=33A95E245BECA0BAEA87AF0E5F17B1964A29EE86 X-ClientProxiedBy: satlexmb08.amd.com (10.181.42.217) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS1PEPF0001708F:EE_|SJ5PPFEB07C8E34:EE_ X-MS-Office365-Filtering-Correlation-Id: 805b414b-dbdd-467a-a4ed-08de33cad6f2 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|36860700013|1800799024|7416014|376014; X-Microsoft-Antispam-Message-Info: =?utf-8?B?a2R5UTFaOXF6OENxbC9mbVpRazVmaEZVZ05LVm5IbHE4Ym5NUmJlTDJIeVh6?= =?utf-8?B?S1hxRi9oZ0UyOGZTeHlBUHIyQWhtNzdiaEJESU5hbnpjcVhnZ1ZIeW52WGZM?= =?utf-8?B?QXdWaGZBdTRDTndzL3hBYjE3SGQ5R2o0VFVmTnBqRzdqRkhiUExFZ2hMR2U3?= =?utf-8?B?MEFNcTVFREtaOTlGU2IzSDNtY2NSV0ErRmh0WVVXYWt0cUxsUGZoaU5rZ2tB?= =?utf-8?B?ZDVpRFpXczhaT2ZtV3VnREZneURXek9DWE9aNitGYlFrOFE2eDVVTjdUTHRh?= =?utf-8?B?U09vN3dWZXczemxZK1FMZXBPaXNRaGd3aEVvTDNIQUR3RjljaWRWVmNHd3l1?= =?utf-8?B?ZlJmYnhKQ0hqbVdtSW1MbGRxQnVsaGFYUEV1ZkJjRW1Qa2ovMFNaeSt4ZHpO?= =?utf-8?B?aUtyUjdtbGlWL2pFQ3J5TkZqVnJTb2htZFB6WE5Oa3dDTHVSd1JmeDVScy9W?= =?utf-8?B?TjJQYnJ4V2ZCUHZ0d1VnNmVvUlRaTDNWdTdBYzlGTGwvRnB5cWVpQS9RVXo3?= =?utf-8?B?QkxRWGJWODIxQzRNYUUvVjZPNmpkMytvdWhvSkwyN2J4V1JESGFvVTZpQUkr?= =?utf-8?B?YUVUd3VnR1N0YTA1cVJ1azhVdHFaNkxOQ2lFTnZiUURnV2RxZERQQnZJcHpU?= =?utf-8?B?MFJ3U25YaC9oWFJWNUw4U3ZhbzU2RVZ2TWRSbnJKZlE2V1htRkhlbVgvWm9P?= =?utf-8?B?d2dDQ3dtWXM2U2JIY0JjNzNzdHFqSUk4MnlCZ2UwN2srSnN0bHNRdGFzZ3o0?= =?utf-8?B?Vk1SSE5PSEdGVzIyREw3K0VtSkhpV29CWjJwbzJlZGNraWROL1Q3UGxJdEE1?= =?utf-8?B?SVhDdERWN3VLbGJCMkxIbjZON01TWC8vQm5XWXdQcjlRUHpWZ0tFU3V6Qitq?= =?utf-8?B?am9DVHdBZjJrVFV2SEl3WU1teFhlNitLZ3JPcUV1ZVNzYVhIbUVaamI2bDNq?= =?utf-8?B?K09WV2ZUL1BJMitJQjBMalBiY25XVDRheWE3REhlRmtCb29PRUlMZVEwSDN2?= =?utf-8?B?ZUdhOVdaa3VQMWtSb2RvODhnNHExd0xvODQvZmFrbGdHM3dVQWo0Z3h5SFNN?= =?utf-8?B?b2oxZXQyaGFYLzJoQ2dKN3hId2FrVUxqMGk0ZGtwcGNEK1NNU0x2RXNuYm15?= =?utf-8?B?cFB6TWJqaGNiVW1URWZoZURvTExSMUx6Mk9MUSsxU1VTVmV5VXE1N2oxeXM5?= =?utf-8?B?NjA5eE9DcDJYZ0hqOU1lc3I0VHE1TFFNbVVFUDN0Q0dhTEtubjRGQWtJUnVp?= =?utf-8?B?VmlvNUJhWDdFNDczZjBBaHd2bEtINC9DMnRlMHFrdWIyMzdkWWt3R05TV2g5?= =?utf-8?B?QkdDOEN5ekdlcmt1ZE16L05XKzlidTNya2kzSElETE52WjhCY1NZbnd5dHNS?= =?utf-8?B?dC9pM3U0c0pwLzRDQTVyYWVlMVhrdWQ1cGgzeU5lZG5wVDlWQm53aU1YajlQ?= =?utf-8?B?ZnlPd3VhMVFOY1YyNS9NOFd1YnRyblR5cFpXZmpubjdQUXpKSkMrcWZrVTM3?= =?utf-8?B?eVltTTVJZUtFWXppRHdsY0g4YWtoWHZlck9YVWYweDlJeGNOWDJKRjJqQS9n?= =?utf-8?B?VVd2ZERGeWJ6SC9yN0plcXk4TllmRlJaUW80cVFhdW9DODMwSlFaSG52M1Jq?= =?utf-8?B?SkJ1NEU1QVlBU1NCOVZTenRacnlpc29ZZ09abG93RmdnYnlMa0ZXK3hZTGJN?= =?utf-8?B?dGJFWkNrZVk5ZFJjQS9EUWx2Yk5RY29pUFRlb3FLVklGVHJjejUzQnBzNngx?= =?utf-8?B?U0hqdVNxSk8vbVB2Y3BRSXlUdjJKNWR3WVFHV28wU2U1SXRqM0FqMWg1alZ5?= =?utf-8?B?Sk41ajY5cTBLLzZlNVczbVlKbzZucHFBdlZQblhLdmVMeFpzL3RPTFprU2pm?= =?utf-8?B?Rm1WcUF1Tit0Z3ZjYTY4eTZnY3IzamRLTHdRMFFwQTRYRE01YlpBaHpEZWJz?= =?utf-8?B?OFJGK2RmKysyT1NKN295bGZXaks2NWE2UWQ4UlZaZVFSWE5zcm5ERmxmSmpp?= =?utf-8?B?aEt2QlZBRFpjSmsvUnFoeVQ0TTNPQWtIcUs2bjBEdE5wbytqaEJ6VENMY3Zx?= =?utf-8?B?OVlyRTNHZDkxemhFa3R2aDZZYWo1enhaSlEvU2h1VjRkZ1VKS29jdFZKbEph?= =?utf-8?Q?RnHI=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(36860700013)(1800799024)(7416014)(376014);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Dec 2025 06:52:21.5081 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 805b414b-dbdd-467a-a4ed-08de33cad6f2 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=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: DS1PEPF0001708F.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ5PPFEB07C8E34 Add documentation for the uma/carveout_options and uma/carveout attributes in sysfs Reviewed-by: Mario Limonciello (AMD) Reviewed-by: Alex Deucher Signed-off-by: Yo-Jung Leo Lin (AMD) --- Documentation/gpu/amdgpu/driver-misc.rst | 26 ++++++++++++++++++++++++++ drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 29 ++++++++++++++++++++++++++= +++ 2 files changed, 55 insertions(+) diff --git a/Documentation/gpu/amdgpu/driver-misc.rst b/Documentation/gpu/a= mdgpu/driver-misc.rst index 25b0c857816e..e1a964c3add2 100644 --- a/Documentation/gpu/amdgpu/driver-misc.rst +++ b/Documentation/gpu/amdgpu/driver-misc.rst @@ -128,3 +128,29 @@ smartshift_bias =20 .. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c :doc: smartshift_bias + +UMA Carveout +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D + +Some versions of Atom ROM expose available options for the VRAM carveout s= izes, +and allow changes to the carveout size via the ATCS function code 0xA on s= upported +BIOS implementations. + +For those platforms, users can use the following files under uma/ to set t= he +carveout size, in a way similar to what Windows users can do in the "Tunin= g" +tab in AMD Adrenalin. + +Note that for BIOS implementations that don't support this, these files wi= ll not +be created at all. + +uma/carveout_options +-------------------- + +.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_device.c + :doc: uma/carveout_options + +uma/carveout +-------------------- + +.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_device.c + :doc: uma/carveout diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/a= md/amdgpu/amdgpu_device.c index 979298d9c213..540f0781ca36 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c @@ -7837,6 +7837,24 @@ u64 amdgpu_device_get_uid(struct amdgpu_uid *uid_inf= o, return uid_info->uid[type][inst]; } =20 +/** + * DOC: uma/carveout_options + * + * This is a read-only file that lists all available UMA allocation + * options and their corresponding indices. Example output:: + * + * $ cat uma/carveout_options + * 0: Minimum (512 MB) + * 1: (1 GB) + * 2: (2 GB) + * 3: (4 GB) + * 4: (6 GB) + * 5: (8 GB) + * 6: (12 GB) + * 7: Medium (16 GB) + * 8: (24 GB) + * 9: High (32 GB) + */ static ssize_t carveout_options_show(struct device *dev, struct device_attribute *attr, char *buf) @@ -7869,6 +7887,17 @@ static ssize_t carveout_options_show(struct device *= dev, } static DEVICE_ATTR_RO(carveout_options); =20 +/** + * DOC: uma/carveout + * + * This file is both readable and writable. When read, it shows the + * index of the current setting. Writing a valid index to this file + * allows users to change the UMA carveout size to the selected option + * on the next boot. + * + * The available options and their corresponding indices can be read + * from the uma/carveout_options file. + */ static ssize_t carveout_show(struct device *dev, struct device_attribute *attr, char *buf) --=20 2.43.0