From nobody Mon Dec 1 23:34:48 2025 Received: from SN4PR0501CU005.outbound.protection.outlook.com (mail-southcentralusazon11011019.outbound.protection.outlook.com [40.93.194.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 AB174304BC5; Wed, 26 Nov 2025 09:05:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.194.19 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764147940; cv=fail; b=Cvz21Ps/PvYgKInPHVkwoFHWa7dolQ0uXu8kWVkp9+szEoYGR7GkAA0dwsZLWukiJZv0SZeWzUe5Ia1c8eS9auH/e3bwjokVLGH3F4wqlpNCn9wGkemN/iQvmSVxEDYCBx2w081IKuPHbaMgSQvy73xnFmptV+cXq+2KHL3LgZ4= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764147940; c=relaxed/simple; bh=WNO0Wy5K5wTMtZyFMxcPyYSImLbwFKtO7i9+gf4yqe8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:CC; b=kZ6IDBY2vdnvbmQodiFXSTTVuIILt13JjwEfIROSgQrn5Yq0TkYE7o6ugi6qUOH/GiAl9hy4wt3F22DNJ/GwvVMzIbKzf/PGsU7cBddEPPGTjkvGHgvM9Ez3v8O0CS0oMIa96FaKOLOq9JM1qvQQFMPJe23ApHby+Cs/voaHyX0= 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=cTS6tTVk; arc=fail smtp.client-ip=40.93.194.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="cTS6tTVk" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=KJG2Zgyt6Qq//v7qf2JJ2zCIWwlGV7pa/n+PnUhy1M9APz4OYNqLJz5wdU6gutpbvVXDOanhXb9+pBBPr0pAFJE7kKv2lYDmSJ1SkotkgO3YuQ1sBWbm4dPSshWPqC/D9FmDf+FDjki6lLNG+r/jQH6R11wv2X1GBHLFzf6FqJKSnYlwONuTc3Sx4/SnZNoMVf1PlM4rUkSzemQjavv6j8F9erJL2KFqNH8MiPLcmRLA1h6yxQ6HuirHhHPkVK/tZFnKOSC5c+xyR35+okLnmhiK+NLJKIPr83pjh0qd1JNulau9Qv0ElACZvHmKCqI7fC8Xhye1E5QYDGDawzdOvg== 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=mTkCACpG31qhXojiQOTWbGlP8nKal6DH76kNB0iKwVWw3PMxtBlgbxiZjMZ9HV5z/Z1EoN98OO0uosczijkFIEOYqctEXBNQ0i3wKo98OMNFCsGeye3rL2WrJ2Uvwv/cQhEOgtC5euETnZHQWPlr0hIHWUxeJT6dQ7ntURPYSsUg7SxJlxXvmJbceb6RjZFYcr9z/813wtx0UQKzrqYjR8bc0Z0QPP6SCjeQUBqiRGajhDyjvFldppMyW2Pteuy1deLep9iuBSz7iEnpU92XPM0PkIcQJXKdTKcL2M9soCv8JT7j3SxdG0+sFdBXix1fchxF3Y18VNiAzCB8OKCY+A== 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=cTS6tTVk9t5PwJxwg8Zc82a7l1gB4YVw2lPVFCONbQ1X2z4ouwOi9AvT3v3KqH2QphdNxPVQb4kHSIBuRqgrkYouKqNCB13Jev6J2tKrDCtsWEG7Mr1glgiFrKU1NbmAwhHrngr5nb/1HWWRjT0L4xtS9c5HWx6scT1vi1exkxo= Received: from CH0PR13CA0059.namprd13.prod.outlook.com (2603:10b6:610:b2::34) by DS4PR12MB9562.namprd12.prod.outlook.com (2603:10b6:8:27e::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.12; Wed, 26 Nov 2025 09:05:35 +0000 Received: from DS3PEPF000099D6.namprd04.prod.outlook.com (2603:10b6:610:b2:cafe::5a) by CH0PR13CA0059.outlook.office365.com (2603:10b6:610:b2::34) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9366.12 via Frontend Transport; Wed, 26 Nov 2025 09:05:12 +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 DS3PEPF000099D6.mail.protection.outlook.com (10.167.17.7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.7 via Frontend Transport; Wed, 26 Nov 2025 09:05:34 +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; Wed, 26 Nov 2025 03:05:30 -0600 From: "Yo-Jung Leo Lin (AMD)" Date: Wed, 26 Nov 2025 17:05:12 +0800 Subject: [PATCH v3 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: <20251126-vram-carveout-tuning-for-upstream-v3-1-cf1729c4cb3c@amd.com> References: <20251126-vram-carveout-tuning-for-upstream-v3-0-cf1729c4cb3c@amd.com> In-Reply-To: <20251126-vram-carveout-tuning-for-upstream-v3-0-cf1729c4cb3c@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/ZANAwAKAV8XsZZKKe6GAcsmYgBpJsLUVudE7xVsT8Rt5d+eUj6HkdtycaKhEwyRo 9JMJt3TfrOJAjMEAAEKAB0WIQQzqV4kW+yguuqHrw5fF7GWSinuhgUCaSbC1AAKCRBfF7GWSinu hlxrD/9pKAQeN+X5pGtG+14gBPYA+Sz7gajUjxkKeZPQMrDSv6s4O5ZL750Mq28zoIGauFdaSDO fAzWW/hzrvFBNhCQLp2SJwe1d5aPNj+JWkVm5kpFGLKmpm/UVS9+FW+qdJIm+jIjOSqHWU+OlrR cWZGdqnSo4pvqDVMd6EF9WQ4pBLjY4VB9hlGuUIW5BwXexgmv5QuRIqbsPzw3pdqUqlGfLRCBmO 0aQf6gmWC9dQeNY6D7lsMOfuIS0DMoT2+idSsyZ3f0YHjKSANZABNy8HjRNxHLOOXSUaQVhiQOV PMogWwqFdVebLreuNVDecVWCzC/lEWGSo4W84E42zBQG6s44olvXJtfJcvlTpKUtIF2Z3tXfvSe 3pVX35stytcfLm4nAIevop7ry4OiF9q0WBmylLgobCdHU052zW7WFOlGk3gxsTzE/IGc5FqrMLe K+9fbOyr1R2QidAkiBjy2DZhLb1fikytrBt3VuypoLqbAEKueBOs8Af0G9PnMXgJVg6+GbwfSti PFuTEWiMsurgdn2k112nkVH1zpevw0f65MQw0VFsqB7tN+05a4FB94W0/t2rAeB8dZzJ7jggxtn ltuxr77oB915+w0YLvHMkDGB4NxHx7ieeow8xVO9UOhs6DYX6TQMhJum+bm/9qxGKK6mHpmfs1w hs/D1XycC9iv+bQ== 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: DS3PEPF000099D6:EE_|DS4PR12MB9562:EE_ X-MS-Office365-Filtering-Correlation-Id: 878c366c-6b91-4cbc-1e82-08de2ccaf568 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|1800799024|7416014|376014|36860700013; X-Microsoft-Antispam-Message-Info: =?utf-8?B?SEFtdXRaTW9DNEtWdkpjYm1aOUlObHJNYzVYYS92UU1FMmVwUytXeVR1SHR2?= =?utf-8?B?OWdvamhoN2ptOXdEMUNPZm9MU1B3dVRqNU5IaTA0R0tTRk5QU1o0QjlhNzJ2?= =?utf-8?B?bUIxMUszVzcza2NBUityNzNUSk53Q3ZqYTEyanE1aWpFZ1d1N0Fpa1dVNzVa?= =?utf-8?B?cHBXQlhrNi8yRFlGR0RXbWsrT3BLZmZSdE4rRFkrTDFmMU5BaVNha05MdXZx?= =?utf-8?B?VWNwQTdORnhteDJ2NXpjdmExMlBiZ29mTTJ5YVorNUVtSVpPOTJzMVVyNXdB?= =?utf-8?B?cFVNQzNEOUZaakZPQXVSVjVpeFV2eGlrRno1WmRFR2diRmUrbUdsMjdDOGNj?= =?utf-8?B?dnprT0puQTZydTJNWXBnSm5hNVA1bHhwWnZmRTBncmFtellBdkYrTFhxUGdo?= =?utf-8?B?bUFHSXhSZnVyUEk0OVg0WExKNlJUaHFsa2NDNFJjcHorL1FKZityam52MzNS?= =?utf-8?B?RzZodGhaMzBzaXlnYjJlTHp1Q2IzQThiVG5YbE1Xd2R3Nm1JV3dLNGFGZnZy?= =?utf-8?B?bzdreGhUTnYvMlBKc0V5UTVtSVoxd0gxRVpZRS8vRk1mTFBYSmN2ZzVnUENj?= =?utf-8?B?Z2E4bUJxbnh2bXJodVh0ckVUWVZBUzFRZTUxVXl2UktmSGZ6bWtWNmg4M2pX?= =?utf-8?B?UjYySFZyMFNUZnFLblpQZEtaTnhLZElqSytJcm5tWXBsbmpOcmVma2VHWjM4?= =?utf-8?B?VTdyZlN5bjk2TkRWRmFhci9qcFJOZGtydXpYc2RtejR4MFN5b3dOY1FIRjVI?= =?utf-8?B?amtYZWJDLzUxeTFXZDEzYTRKVkpQWGJCWEhId0IvVW4xZ0Vic1BIR3l3dlpH?= =?utf-8?B?aXdCc2J1Rnp1QkdZTFJ0Y0lMdG81MEgwczR0dlYvV0pndlp2OEk2OENRbjg3?= =?utf-8?B?Sk9oYlYxeXhtbHFlajlFZU5HbGhkTk9RV09zUURIbVA2TlAyWTEvYTl0TUQ2?= =?utf-8?B?eTdjRHhyeDkweGU2NlZodHBvUU04bFk5RU4wUXZpZlVNcEpLNjZzRzU0Rlli?= =?utf-8?B?akpRTmFaZ21sdmdsNWhSaDlOWE5Nd0g5SGlKYUUydm5kVEQxTHNoMXBQM29D?= =?utf-8?B?Q3o1NHBCS3BNbWZoRzMxTFZGbDJnOFNzNlZwZlFnRDFOdmJLYVdwbk84VGpH?= =?utf-8?B?VjU5RnV0TkJheFduWUgvb1VYM3ozakVXRk92TUJPNmJsRU5odWJiY3lTYytr?= =?utf-8?B?SU0xQWl2VU1sRjZpUWZwWW1EcGJiR1RJK0FhMUM4SUxmOWNiTDQ0b3ZwTkRy?= =?utf-8?B?b0pxMkJ0ZXFLVmJKc2FPWFlBdndMZFNMVnVGUUNvZWt0b1pwK2d5eWNqUDJ4?= =?utf-8?B?dEJSZ0JmZ1QzRER0QlYxNFZHTURYS0RGdlh3MUI3cVhZYTZHbVhMR0ZCTmlI?= =?utf-8?B?eDI1aUFEOEgrNVptbEdVK3ZpVzVEdDVXSzRwUm04T0I4L3dUSi9wMkJrZXly?= =?utf-8?B?YWdiZ2JPME03Yjg5MTlodzFYVVpjeTZwOUZsZXlrNStOWWVJV0RpRFA1YVR5?= =?utf-8?B?c1RBWWNUNGwvS3hJbkN6N2ZoY01rQkhBcHpmUzNyb3Q0R1VBa0tGUzNMN1NS?= =?utf-8?B?TXJjT1dXNFlPZEExNE5pRXlPaytlWlFML1NSZ3JSZkhHSWhyeTVHTXJtenRL?= =?utf-8?B?cEhTZlFZczZMcXRaZHE4aFprNG5EWjYwak1xNkZpSjhqUlk4SHErbEM1UENS?= =?utf-8?B?UWJtNldsMWxaUVNxeVprejhmNFJjcUw0bmpxNTBuUEJ3dkZHczV1SnhjYWRB?= =?utf-8?B?UkJ3VFFZd0Q0MkF0eFdydlJRYjlMSmw2L0VXc0gvUkRRakFLbk9hNFVGdDNP?= =?utf-8?B?NFRoYm5LY3hGcHEyakFJRHE0RkQrS2duRFVncWZpckRlQXl2Sko4Y0QrdndD?= =?utf-8?B?ZWc5OFZ2c3VuVzJDOTVLeTJhZzIxUUJlTHZXbzBIMnJ6NUE3UGEwRnJ0Q3pK?= =?utf-8?B?Mkd6WitEYnJjcGt5UFlFbFVGZFZ2RGkvWU1FS29leWR6MGJVaDJqWHhwcHY4?= =?utf-8?B?bDF5MTZPSklmeThQRzY4OERJV0pLVTZRbVJxN1JDREcrZHZVYlZCMmRvVXFR?= =?utf-8?B?Z21CVEJOZlgrZFZMNG9WdFZFRVFDOFRPU0RhT2RtUExLRWNYam85ZXhoeTZV?= =?utf-8?Q?X9V8=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)(1800799024)(7416014)(376014)(36860700013);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Nov 2025 09:05:34.4587 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 878c366c-6b91-4cbc-1e82-08de2ccaf568 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: DS3PEPF000099D6.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS4PR12MB9562 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 Mon Dec 1 23:34:48 2025 Received: from MW6PR02CU001.outbound.protection.outlook.com (mail-westus2azon11012011.outbound.protection.outlook.com [52.101.48.11]) (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 6E5DF319855; Wed, 26 Nov 2025 09:05:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.48.11 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764147944; cv=fail; b=XFSrft+8eFMD+tM2PwEI3dkUMxLBR7tvYy+0sxpQobl5PosOV2g05pehBvHjcw/S9boDb0R1gI1RfswfssnUK3FIP1x2q3kuGfxnBnDC75NtBkK3ZYF9ly3GnUiaayB9Y/zBqwrfKuz2wRG2eCTCMmHMDHVdqoiCmuONG+AYGnA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764147944; c=relaxed/simple; bh=/KRghPRPXo0gSPRtjWFnJpxq8BfUF08hsSfyp7YcPCQ=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:CC; b=ZaHR3FIHo+uJFv11+qy9ghAmFco+J+sbUfsu1pctBpt9E3+09fpu9NEOSTg0dkGfA7nLksEmkbyhpwNDjVzjbZ1TaBvLuZPT9158klZH8Pn9qCq0nRZ0vFOCunsGIbBX8phxahu5ChlK0L+Zl/18bG26OwaznDo2GHY4VK0nOjo= 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=GgVnI9fY; arc=fail smtp.client-ip=52.101.48.11 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="GgVnI9fY" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=wgHIcC6kHH+KOG+mixHs6XyCA+Y0NN80qkdePA19Gx55SaXdxe/Fx7EfF5CJSh8kONGgRffO6pbGr9rym9DtIRjjNmttUAm7/MLy7qzSAqF17YMgf061Y6g2ostRJ2jP9+Rntdq455czPbg5wWWnHK+S/Gs8CBSTFrOY230lDdCgDDi1l3C6995Fb+P5tSI8cjzbtae4jmer8LXX7JuzyXNZefnfyJ71wodCQp3dvzaahIBM3kPuDmyf34NudDkpOvAC2X0wmpQJiX3zx6ENwkQ3ZMZEuqTefVCyNsNhJ2kbxEITDX47jbxG4M2u82NH+r/Dsq/oH6wRUYuwl0TKxg== 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=YU6rJjO2RgIFT0OcRfaQxnJdIdlZcR8ORwiMve7dvDI=; b=U1AZMlRKiqznY3bHZw6qTKfljq2GEW91fI0yWEoT3Qd/RHnwpfrDffRcnJvtHKIcy5DsNjs0eIlerr6AQHYvslG/yapaMsI5M2S7LRfjorYtdFTYgcIXRYAuD55TkUltNDKWPlK4XfA2nzQbNY63eUk3OF+CXqbjXLost7e9qptxQXQfBSAtpBnMwVaffo9Q4SfqD4j0o08HAMA6j8YXbrWCKCUO7cbq1/t60t7FpXYS+c2M3H+qoRsbD6ZrRfeGm/SIRwB/63lNWf/PPPw1VzDi5PPeELUJ+Xe/Wj+UH/yse2+cS6P7gAjaHRVf5J+1nLq/VAYQ9wCuxid6CO59yg== 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=YU6rJjO2RgIFT0OcRfaQxnJdIdlZcR8ORwiMve7dvDI=; b=GgVnI9fY5Rh0hoUa9Hx2P25jUFnDwKpgA8PyxBiwpaP573NoWhAgcOnyMQUwFyI0P0TeEHmey26X5J6ZBFRoyqGh8M4LKCtHkxxjcj2tB9e6TQ0gFST+tbFT7VqhgA2i+VC/5dVHLUaq0czWDmANsZnrYSwltRdkeLUVUU3LUiM= Received: from CH0PR13CA0060.namprd13.prod.outlook.com (2603:10b6:610:b2::35) by SA3PR12MB7858.namprd12.prod.outlook.com (2603:10b6:806:306::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.12; Wed, 26 Nov 2025 09:05:37 +0000 Received: from DS3PEPF000099D6.namprd04.prod.outlook.com (2603:10b6:610:b2:cafe::d4) by CH0PR13CA0060.outlook.office365.com (2603:10b6:610:b2::35) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9366.11 via Frontend Transport; Wed, 26 Nov 2025 09:05:37 +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 DS3PEPF000099D6.mail.protection.outlook.com (10.167.17.7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.7 via Frontend Transport; Wed, 26 Nov 2025 09:05:37 +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; Wed, 26 Nov 2025 03:05:33 -0600 From: "Yo-Jung Leo Lin (AMD)" Date: Wed, 26 Nov 2025 17:05:13 +0800 Subject: [PATCH v3 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: <20251126-vram-carveout-tuning-for-upstream-v3-2-cf1729c4cb3c@amd.com> References: <20251126-vram-carveout-tuning-for-upstream-v3-0-cf1729c4cb3c@amd.com> In-Reply-To: <20251126-vram-carveout-tuning-for-upstream-v3-0-cf1729c4cb3c@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=6317; i=Leo.Lin@amd.com; h=from:subject:message-id; bh=/KRghPRPXo0gSPRtjWFnJpxq8BfUF08hsSfyp7YcPCQ=; b=owEBbQKS/ZANAwAKAV8XsZZKKe6GAcsmYgBpJsLVvKWrRjRR6oW6krR30U6fmx1J2/jf8Jq7p RwD32p1KtyJAjMEAAEKAB0WIQQzqV4kW+yguuqHrw5fF7GWSinuhgUCaSbC1QAKCRBfF7GWSinu hrQ0D/9HBXa6+pldW5m5biXwWgqLNZ8p/aAB4H/PQITZ2sM9lf6ZvTq73kwcEBcLg6W9JxlsRUe Gy9AxaHDtIrQCi3wkTOHDhfI9BZ2mfOHG3F662B6gyBe3w3sb38ruAlvip7gpxiG84dWJqtliUJ hZ5jN7WFGm5/xv+asOupBs/oHFnIRqgu2lC/0PNkjZPoRdr/e5sF+t7D/XC8WNb9vGHzZ6EsJPD EzePIYOkQ2pW7v0RdBh+765mbZKJz4vh8/n1TBEUlFhFZRl+UVqSBT1TWa1ALWzPEfGtUdN1dGK A+ZHaHRuCTm6XXA2EQ03qz9iZn17D62qXSJV2ZYG8chCvjL5JsuwFH2BiNJk2XH3jssfIS7o4Ya aDjxWqebkd3gTFUatD2pTfrL/0J1puFgThqQ5/6vI+oCp93YWjpMnZJO/ZUdU2ICZA/6BfDQhn0 iFFpRyc47fH1CFdqctGdh3fydIShKpc+BaRyhXB1pTu87gxR51hWNZ0OPW54DSWF11cCW51uNOb DAk8N4lNa6pDYHoR8VgIdJ+QkNmQhWx2UbixcSESVYSZIWaRTEfwlIOeYPF+LdsIURci1K+eFCG DH44B1Git5fJwZDZwXH0tzOt4fy/D7MXmLxfNDp9uF4E+JwSRw/igS7coc0Xuaa0yVzvzRfd/Jw 7LFGPOxPLcYFFHA== 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: DS3PEPF000099D6:EE_|SA3PR12MB7858:EE_ X-MS-Office365-Filtering-Correlation-Id: a5d30c8a-2977-4986-0659-08de2ccaf757 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|82310400026|7416014|36860700013; X-Microsoft-Antispam-Message-Info: =?utf-8?B?U29sdEQ1SmRnVDFhak5oR3prT1AzeTZudjJaTHlFcTZvZ2NGN1I2K0ZzSURH?= =?utf-8?B?UFBoem9NNDJ0Tkc4MWhxSUt0TGpyend3NjdqR2Q0TVhnTktkL1A5L2xsUmxx?= =?utf-8?B?eVNqTXdPYlN2SENUREJoT1ZUU2tkQjFlMmFITWJBNFp0cUtHRGdpRU9iczRF?= =?utf-8?B?a1RZZnZZQVF5RjVGVDVWejJ5UWFTZFN2K0NUZFZqY0lMVlVmNW56ZlNFNHU1?= =?utf-8?B?cS94TTZ2WEZYYzB3Rmp3M3JUczhmTUl3Q2h0dGtneEJQRVhvcFZXM1JHQUI0?= =?utf-8?B?bHRCdVcvdXpRUkl6Mm15MGR2eCtBSWllU2N0K0RmL2Y2WDNGUm54VThqQkU1?= =?utf-8?B?ZU9oSDZuV3AweEpidTRmZFZXUUZmUjVBUHZZSXQ1NnRKcjArSjQyMVVGQjJM?= =?utf-8?B?TUt6TjIzWWhTMElrM2h0OUpnQnVoV0cvZmRGOWtoMWtMN284QmRUOGc0WGRO?= =?utf-8?B?eXM3V1V3YnlZQnFPdkhTdHFIbk1jdkd0bUJwY2Fkemh2REN5dHdEU0YzVnJr?= =?utf-8?B?THhxN2FCL1k3U3Z5UnQvc1JVL0g3Nlh0eW5xb1k3dWtpWkZKMGpZQXYzaUxY?= =?utf-8?B?b0FMU3RyRkJIbUN4aHF0bjFLb3JwclZaU0JzblUwR3hjaHFuSGFqUmVzU2ZX?= =?utf-8?B?b1F2TUV2T1dqay9MUHFsZ0VKV0JYQVQxTEhUemU5OG5ZKzVXMDhYLzNRcmEr?= =?utf-8?B?SnBHUmlJODduTWhnbzVBYk9VUi9qL3hpcVN3LzBYb0dXWHZOUnRrM3J6aEdZ?= =?utf-8?B?NXpyM2gvREowaEFyYlJ5QjQzWGVYSFNudE1SSDhKTjhFUFZOYkRFZmNWY0lU?= =?utf-8?B?RnVuOVQrVktJL2YrQmc1bTRheXhBQmRtNUw3ZUtpNU40VFZ0K0NScnN3bXJz?= =?utf-8?B?U3hHNURXbldUQzdCaE8zZUU3OW45QSttSGY5blNsWG1BaEtFSUhZWkphNWJy?= =?utf-8?B?YldFWms4VGoydUJHUFNUcFphd3pJd2ZnZ0I0NG1TK3E0d1dGaVdtMFkxaU50?= =?utf-8?B?MUpkWlIrdXpKN21rQjZOTHkwQXBKQW9kZ2VCRkNydEtwM3pXbTlkcllxRDhS?= =?utf-8?B?ZkREcU1STCs1NUtxc3IyUUVLTXJvMjcvM25CQTRSY0lyTm1ldUtMUkhBZHl1?= =?utf-8?B?Vm8rWWhxOWpPRmtGZ20wd0I0by9kZzE5L05QQ2RSVHBDcVFXYWpYck9zRmhs?= =?utf-8?B?dStYVWtMclk0OUVndm9Za0FDbnMzSXlkeTJKaTQxVHEvT3dKVjZKZnJjdi9N?= =?utf-8?B?K3FTSGxYSHh3QzR0S1p6UlpzR0dWZ0cxWlN0VEdxNnUvd21kOTBGQVhzUTFI?= =?utf-8?B?YytmRm5GMkR6eFA4QXBlOGQyajVKNW81ZnRRM1JyQnA2S3ZUV3ZacTNYdlZh?= =?utf-8?B?aXkzaEhSRldmRU90T2dMSnIvMG1YU29iNnBnMXdWWDUvaHg3Q2xFYXdyYlZV?= =?utf-8?B?RDc5am5peVA0OXRRZVJqNzFiY0djQVMvdEwxcG90NEQvQUVDNjFWSktJQ0E3?= =?utf-8?B?cnpsNVExVEtXQjZmNVJrZ1FKeUx4eWdIQU41dUxtNm9aRjIxZnl0V0Vod0dl?= =?utf-8?B?U3FhWnI3QlFuME5sejdzSE9UUDFPQnJTNlNnOEp6WXNmNytGcDg0YWZDQXdm?= =?utf-8?B?eWN1cWc1T0lWS1dFRFpmbzB4NHlpdzc1OHVTTldxMlBaY0JVdE9LeWNJSk54?= =?utf-8?B?NTRwdHYvWFNkc2FWaEQ0R3R0Ky9zWmRQWFNJSDlzdlZla05teVhsaWNCRG1l?= =?utf-8?B?R016OW5DTld2Uy9kZDgyVWlXRGNPTjlPVjF6eWsyK0N6MjhQaGVEdXFkbENK?= =?utf-8?B?QklUaHNkSFR0SGJxQVk0SUIxaHFRRUhkcmhqUjlGTGZULy9iR1U1MmJMMDBM?= =?utf-8?B?TjFLSmxVQk43QmpNZVN6bllTam15Ykh0aTdQVzVOdkVsTnBWZlJEa1p0VkZs?= =?utf-8?B?cEFwVmdETFlvckFNR21lZG9pWFpiVy9TTWs4TStmaDhnQVlZU3pKWmFLZHpj?= =?utf-8?B?U09rQnJOTGJ3OGR6UUhab1huMS9kRWY5cTRaM3E5WHVBbzM4YW8wUTdOZUFT?= =?utf-8?B?VVptSFE0MVRIbURZR1Vnb0d4MUZHTTlJZVBiazBZcmNVQTdUOXpobm9QS0Zz?= =?utf-8?Q?xZt4=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)(376014)(82310400026)(7416014)(36860700013);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Nov 2025 09:05:37.7057 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: a5d30c8a-2977-4986-0659-08de2ccaf757 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: DS3PEPF000099D6.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA3PR12MB7858 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 | 32 ++++++++++ drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c | 2 + drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c | 77 ++++++++++++++++++++= ++++ drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.h | 2 + 4 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..6873c020b923 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h @@ -1675,6 +1675,38 @@ struct amdgpu_numa_info { int nid; }; =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_carveut_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_carveut_info - table of available UMA carveout options + * @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]; +}; + /* ATCS Device/Driver State */ #define AMDGPU_ATCS_PSC_DEV_STATE_D0 0 #define AMDGPU_ATCS_PSC_DEV_STATE_D3_HOT 3 diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c b/drivers/gpu/drm/amd= /amdgpu/amdgpu_acpi.c index 610449d73a6c..92070738bd42 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c @@ -38,6 +38,7 @@ #include "amdgpu_display.h" #include "amd_acpi.h" #include "atom.h" +#include "amdgpu_atomfirmware.h" =20 /* Declare GUID for AMD _DSM method for XCCs */ static const guid_t amd_xcc_dsm_guid =3D GUID_INIT(0x8267f5d5, 0xa556, 0x4= 4f2, @@ -125,6 +126,7 @@ struct amdgpu_atcs { acpi_handle handle; =20 struct amdgpu_atcs_functions functions; + struct amdgpu_uma_carveout_info uma_info; }; =20 static struct amdgpu_acpi_priv { 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 Mon Dec 1 23:34:48 2025 Received: from MW6PR02CU001.outbound.protection.outlook.com (mail-westus2azon11012065.outbound.protection.outlook.com [52.101.48.65]) (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 B7F9A31A061; Wed, 26 Nov 2025 09:05:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.48.65 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764147947; cv=fail; b=LhLv7Nh0Dy/quW7yWjiE24hULtIvSV80LuDDw3+nkKHyhhTmaenr4d9SKtLDjwl2bnVYXP8bOvjgYQ1m1AJqeYqQV+muOuggFI8p1LeFOMvZFJrscJb3OJyLIwM7wvP6cvvksAzKNBeqI3T+Qyyrlpv+aaIfClr0EYow05xe6EA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764147947; c=relaxed/simple; bh=V8u52wZ6Mp0FNPHYdv6t7FNbsPfj8ysfx3nTyxWGhcQ=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:CC; b=lfJ2g2WtzpEiMD1nvEJKhQC8SDNapW5gyRg1TU9BYZCxnDEMGWVN6l3GfXReBlanLVFhlO3kZzyreGsMC3vNvAGRbodAo+YG82HwzHmMJv7N8tERvt9Wm7nrKj+xThTzjcAzSdaEeA4JXE98/AQilzt9fAtPTdP+Kou6zLeUlEM= 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=SvBaJB70; arc=fail smtp.client-ip=52.101.48.65 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="SvBaJB70" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=GwszVpN1MCur5vvKSXEVDKebg0fwXCOII01cAzzjZHrplfIuzjRY3OqSbx2ugtTmxgRIBcwnKXgtuntSTRGZ+PL3Aikr+teKdm3NuCsAsfKeagS5ajsvyj94XVpURYK5O1UbKzb1wbw5eMnmT7t8dwkGkW31uero46z4OYi2yaDl3FhsXsB7eCCYIOWF23kJrjChkicXwvUbzeerrv6fmX8p1iv0EcoK774rnpbDPHbwBXmOpg7/iJtxGjcG7vF1CjB6xkfyYlAUcqhks6dK4bYwM3athGHP7kG2lmcGOtka4PmX/5uNqQpGkAd3RoF+Gif423Y5d3FJ1l0vXeB5RQ== 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=pYtFJZCA5t5THqbXyGxJ5dfcR8e4HcChKym9syxE6aY=; b=ojK1gKCkBZI/G9Yc2yafzCgnHynUaIC/TQzMKgoOO7MWU7/7Qnd90XgBZ8sLAzMnFnUaL/ellg9R7mHqR0as1YN6VC3SSuueqEGVaUqe8XvZ76W1HuFBvFfu1gEwevt/iYgur3fo7CTKgHa37p0YEFJNhyLZanLD35cCLXTm3qGwzuPg5fKdjR/gFyiUHKgFshI0zh4bHeRqWsISUW09WS2NsvW3qXDs7tMkqN5Zpn2kOczhq+xfa8zMntWSkCB6q4dMhQ2Denj2SuHdutP3zXKn1repm9TQHdA+EqGu8IziLW4/0BWhTsTeFJj6RnEGj6Nv/Qc3Z+70oCCooPuXKw== 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=pYtFJZCA5t5THqbXyGxJ5dfcR8e4HcChKym9syxE6aY=; b=SvBaJB70vMruvEmIrwV3nPzahKBooNFMXEFO1SmNQOQvEphcTylDz62q2ga4lpL5qYSu6EO/tUQfA8IaXs2U9HtVe1T5lSlRUXZr2v/MPYxlLdQzNY+1ym7CZSPdVJ5VHT0nsoSb7MGQ9tJdv9ldDHUxlYVgM2LV8itpAMITZ7M= Received: from CH0PR03CA0222.namprd03.prod.outlook.com (2603:10b6:610:e7::17) by DS0PR12MB9039.namprd12.prod.outlook.com (2603:10b6:8:de::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.11; Wed, 26 Nov 2025 09:05:42 +0000 Received: from DS3PEPF000099D6.namprd04.prod.outlook.com (2603:10b6:610:e7:cafe::79) by CH0PR03CA0222.outlook.office365.com (2603:10b6:610:e7::17) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9366.12 via Frontend Transport; Wed, 26 Nov 2025 09:05:41 +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 DS3PEPF000099D6.mail.protection.outlook.com (10.167.17.7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.7 via Frontend Transport; Wed, 26 Nov 2025 09:05:41 +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; Wed, 26 Nov 2025 03:05:37 -0600 From: "Yo-Jung Leo Lin (AMD)" Date: Wed, 26 Nov 2025 17:05:14 +0800 Subject: [PATCH v3 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: <20251126-vram-carveout-tuning-for-upstream-v3-3-cf1729c4cb3c@amd.com> References: <20251126-vram-carveout-tuning-for-upstream-v3-0-cf1729c4cb3c@amd.com> In-Reply-To: <20251126-vram-carveout-tuning-for-upstream-v3-0-cf1729c4cb3c@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=V8u52wZ6Mp0FNPHYdv6t7FNbsPfj8ysfx3nTyxWGhcQ=; b=owEBbQKS/ZANAwAKAV8XsZZKKe6GAcsmYgBpJsLVwQ7X28lYhQzNXuAEYXlzvlwmWbCSX58SS 1HL6K4LzMiJAjMEAAEKAB0WIQQzqV4kW+yguuqHrw5fF7GWSinuhgUCaSbC1QAKCRBfF7GWSinu hjUXD/9e62bA68Rv7+fk4J2mEG5SFxgKDr+vQFhbpVVuil7yeChlfRkkVnnJhRWLXjz5enCE0zW PRxlSpRe2sjCwRqxFfvs4DYUj7ksD637HtEG791AL9jS+ZhxETOV3UyNA/1B7i9yMuyvGiS19V9 nj6kSSxDUQRmEWksmIDFbug9VE5//xHdhCu+DDohICIEQjhKCC/+mIV86Suj41GFgIebaJSXyI4 St3+kgJPPJ8cNmjnGvpOAL3Mc9X4sywMEhVyG4+jlgDQPfxgn9+6NwyFRpk3v8nwi8vyOG2jOuZ mnhWsbaPbzYftRYIV8fFVTPtarr+U+o2pzselAkxEumdAe/pJuEuuu1p0dx1WeUOe4UnpElL6Hn GTkSak8/8wSR2Kc6/Co+VbtX3SmT4AMr+DwvIjlbc69qvoAKaZxoHoGQggIK/rgxvFeldbottwf FR8MES5QPC/0MKw1ACDrqmhu8WyKKp0SGqgh7QKYGhR7pLGdDWpM7FmrO86QQ3nWYSXzv/WMr8T kLfSsI1u5XPC52yR/6hZqa04rCimpyaIXE66chdUD1t8lgcEe3+fu4xuUbB3OoEJEe2ltbDxfDT lhNPifKrcNq/FjDhZftoTwYRlWhqGp7yq31UraD9bWTq/0lzVE6xS7XzOa0S8uz50QDhi7obiIV xOZSMf4euwmBE+Q== 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: DS3PEPF000099D6:EE_|DS0PR12MB9039:EE_ X-MS-Office365-Filtering-Correlation-Id: 27355ba0-18d8-468e-2bd7-08de2ccaf9b2 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|82310400026|1800799024|376014|7416014; X-Microsoft-Antispam-Message-Info: =?utf-8?B?aXVIS2JwaXZWNWtaMUdHSjhvbXpUY01ZYmtwZkVZSjlLRnB6eUpUcHp0aElv?= =?utf-8?B?MUdpV0k0TUpWcmFTSTl4UnhodFNMN2Q2TWdjWlMyLysxUkhuZGxnNVplTWdr?= =?utf-8?B?SzY3Y3NSd1kvL3RZK3ltVnl4K3pGQ2IvUHRKNXdTRjF1WTRwNEs5UXA1WkxG?= =?utf-8?B?QjNUdWZUOE1NOU1YL1c0UExxNzA5NncvS05jQUFHVHlkZVZIb3dKVFpGTUhR?= =?utf-8?B?KzBjbktIM2lvTjRIT0xYb2trQ1Q2ZWNLdGNoaUpJWlFoaldpVmxrT3dCSkNq?= =?utf-8?B?dkZiVnQwejJQK2FKTCt2VnZHT0hjUGtYTnhVU2U3c21mejRWZG1UYkczbEhJ?= =?utf-8?B?YWRoS2JGc3JRanFMVFc1VTB4RHE5MlkrdFZrSnBkWGxKNXJRUzhFZUFGbktZ?= =?utf-8?B?MEdjb25CdSs5UHkvVDVPS0xwcXRJUGw2bVkvck9mbUNUSC94bmE3ejlwNUlL?= =?utf-8?B?c0x5dEExWGd1d2pqTm02ZUdiaTMvbzduaTNVR1h4TENuS2tsSjZ4STB3MDdX?= =?utf-8?B?MC9jRVpKZlkydDd1bFFWL1JCazRwYWRZWFRLNXJJSkJLV1FtNXZVOVQ3YW13?= =?utf-8?B?RGxSQkl3cmlheGZudW56ektRUStMVkpWZVdpVFBLZWJKVUptTk14Kzg3NjNT?= =?utf-8?B?OWNPRDVuR0xqRWpGZGNBTFZ6dDI5Zko4ODd3OTE1SjlmdTF1T3ZvSEQzbFBJ?= =?utf-8?B?c2pvUWprQ0VaUjlXTjlzU0Y4UGdPS2x0QTl5MzZldHMvR3d5MDU0aFhUeUx6?= =?utf-8?B?K21HdCt4QTBuR21OZmJnSHE4b3o2OXdNZ2E4M1duVXZLdDdwVDBHTTY2SmRx?= =?utf-8?B?QkQ3emNPQ2F2SFVBSlZCdWE4TnVlOTB1RGVtbGNsbmtoWm0xT2NBSU1xMWhk?= =?utf-8?B?eWdublBpTU1QckhZaDZEMzIyKzV0QkFjZ0ZSbVhkalU3UUdCdmtGdmNYdXhs?= =?utf-8?B?eEx5Qy9FanMya0xyY1dZR3VoczBySkwxVVNXMlZaR01LL1RnMnNVYlp6cUZo?= =?utf-8?B?bENHd21YTmhtKytEdS9vWkw2cThCQlFscWRNVVM3Qm81ajdRTXR2M2FJQjVq?= =?utf-8?B?bEU2ZC8vZHBod0tuWGNOL3l6Y20vNko3Q3VRQlI4RkFkd1ZjZDNOVUVmVTJs?= =?utf-8?B?TWFCRGtZZ01zcGNYdU1NRlNzcmpwTHlEUnZJYTFnS0ZrSmZpSkdjN1JIOWpG?= =?utf-8?B?TDBQMUFVSk1GbG9hb25CZDJUU00weHVmVkRycksxaklid3c1WHREcnlkcDdX?= =?utf-8?B?UFUxRUYxNEJuMjVJMG02NUM3RUdXVDFGNFVFa0V4MlZrWkxtR0hrZGcrY0pU?= =?utf-8?B?MGp2UXF6MllBTEtCcWErcEhUWjRYZTNHRXJjS3BGd2YyaWdHUjlXeTRuWDUy?= =?utf-8?B?S1F1MmxaRmxCS0FEa3c1QVZpWlJXWHJKckY2RnNTdzdNSmdZNm15QmtSc2g3?= =?utf-8?B?MHJuZEllZ1hHejVlTGFCUmVZMXVHYjFNMkJ5Y3d1M2QydFRxTDJQbHUwWlBS?= =?utf-8?B?L0wrOHQ4dTkwaXdHWXZFblhsNVBMV1p6WDRJc0o3NnJ5QVNaMDhjOHpWU05o?= =?utf-8?B?NXJjZHZMNFFFcTlia0tjMno4akoySno2ZnY2bVpLMmd4S0NoQ0RTdC9TZDVZ?= =?utf-8?B?R1M0YWR2emlmSks4eDdiOTQxTDh0VVhJbkozam85ZXozemJBSGtUYkI2ZHMv?= =?utf-8?B?akFhTWFQQ2FtakV5dVVKdFp4MTZjbW95Nzk5K1E5bUV1YzU3UGt1bHBVYmFL?= =?utf-8?B?aUlJOS9sWWJOLzBhb00rTEx4MkZFa00yWWN2cEtwWkJabUpNR2tvZCtYUGJZ?= =?utf-8?B?NlR3RlFNRmNtYWFRcGVJZEZjZy9IaHJGTGVqS0tsWThpNDhuMDhmeDdCVXVV?= =?utf-8?B?clZJQ1ZUMGYyZjFUQktSMkkzNFhzYlRMTktKSlBFeG5WdUF6MGpUWENXSFQ0?= =?utf-8?B?RWZPektzak5lSldYclo2MGNzSnE4SkE5Y1NSM2g3cGRhMml2bG8yT01Hc1ly?= =?utf-8?B?dnNkSEdIcy9rZjgwOXJMRW1WdGRvdG9rcjFCMXJTcWtxVUk0cW1nWnp2bXNX?= =?utf-8?B?aklzZmhsZEg4UTZ1cHNpTEFkMko2Mkx1eW94L2ovM1JUZEd2aXlYN0d3UWxx?= =?utf-8?Q?pAo0=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)(376014)(7416014);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Nov 2025 09:05:41.6570 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 27355ba0-18d8-468e-2bd7-08de2ccaf9b2 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: DS3PEPF000099D6.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB9039 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 6873c020b923..613da788c9ee 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h @@ -1718,12 +1718,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); @@ -1752,6 +1754,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, @@ -1759,6 +1762,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 92070738bd42..bce9027fa241 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c @@ -670,6 +670,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 * @@ -910,6 +915,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 Mon Dec 1 23:34:48 2025 Received: from SN4PR0501CU005.outbound.protection.outlook.com (mail-southcentralusazon11011056.outbound.protection.outlook.com [40.93.194.56]) (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 E43FF2C236B; Wed, 26 Nov 2025 09:05:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.194.56 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764147951; cv=fail; b=WqAcQvgUvGsFw3KaT4VqRAD4FRwwW1RF38xL+jOYJjIBrlrKgj5FeK2OAEZIJZBjwoVk9ZMYW3+oWUz+dUT9yQCZ2gKW7XefTBMZk/gzVUIWDfrveQY1gNW7qO51/QmO91HbOV0pPw92DZ5d7VL4bMiko/ziLjWagk+6wJzFC98= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764147951; c=relaxed/simple; bh=IHnUrlO8fTpPDACouSC6i1w3QPi+W6JiV+gxx+NrrUA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:CC; b=Ywsx2ml3X5SU/KOQaRICHx0yijedUMZnxnR/Ovfi2Rw+gGQPYXpjl5Yz5BWmnKT3trYi2Z91i93NKjXop9IGVvxyC4CyhOAHSvKeJrLAg93HZOJsc1FYssLkEMY4tjyCOl3yU+NAbKRIyCVPmWHVo8aslntDTTXnq8EcovZJ65Y= 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=f9lS7hTz; arc=fail smtp.client-ip=40.93.194.56 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="f9lS7hTz" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=XNAk7gWF8tCcVQwhai2PIv8wWLK+QvHPpL/NiOvinfW13BogEkn7OmJhI9esbZjKKjj6PrnEezgzUqtenw7jYyDbjfiB06tc9OV84ppUupVVFI4kG1gW2y5B97p9abXsPtdlk0+YHVlXA3MuRVj0ebvNj5tcIRziGgdKVzKNtewMZqB22ovzm5Tv3O4mQZxjQIZ9k5ome7zQ3s45/ouusNP7nSlL8DjzS3r8EhXqYfNVDej6rgkgQvlLlrxgLxJRWKNkv5svFgmT6Jqx7DUNct0rQ1VUBqn9xLSh0ZJJU8VUdEvc/7PGrGZ4JQE+XiodsPKbyTS+tU0/AN3u34srjw== 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=Qsy65f6XG5aplnFArmQkGUyK5BX1bklxHcQcAyt7RLM=; b=NPSsYowarv63QymNJ48Szo23ceTJ98T4ovG0wxc8QCVYH6Rzr2ByOygNhjLMwwe+GP6ZCFsnqGiQI/RsfHy6nvbNAQ/hFcxWHq+KioOAcWAHqy9BlwgM1+mUwopBxaVn7eIl6s9M3HSvXDsAIMkBgQj21tY9rRTU3JO7NvEUoFDUheaC4ocb1dHCNJzbEH8Ls78DRIbdMTeIxx8ZY1Z+A25TWXFVw3uFGy4a40yIc7KY0YpdlXn31k2GLk2NAHadyyfn8CZF/qViJzSvopjg/V80OXxzkfsaSeZ17CaTXGewSSbhr7IiEUjVLGetgNA6qk7RLo2uW0THhEZUgIU4pQ== 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=Qsy65f6XG5aplnFArmQkGUyK5BX1bklxHcQcAyt7RLM=; b=f9lS7hTzTVYYdmTYHgdd0dixXBCPPPWTx+huACTuqjw2LIydC6eM3M/f04u4swRUlv9CEr3eAsc/Y7JJ+cUZw6AycW/75mhz9c//0T6IZe3btLOpdOz16DhK2NQRIVT2HszfTcUB5BnmBDjSwzH1I/9DF2PcxGPns+JtLvrx8e0= Received: from CH0P221CA0002.NAMP221.PROD.OUTLOOK.COM (2603:10b6:610:11c::10) by SJ2PR12MB8847.namprd12.prod.outlook.com (2603:10b6:a03:546::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.11; Wed, 26 Nov 2025 09:05:45 +0000 Received: from DS3PEPF000099D3.namprd04.prod.outlook.com (2603:10b6:610:11c:cafe::9a) by CH0P221CA0002.outlook.office365.com (2603:10b6:610:11c::10) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9366.13 via Frontend Transport; Wed, 26 Nov 2025 09:05:43 +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 DS3PEPF000099D3.mail.protection.outlook.com (10.167.17.4) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.7 via Frontend Transport; Wed, 26 Nov 2025 09:05:45 +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; Wed, 26 Nov 2025 03:05:40 -0600 From: "Yo-Jung Leo Lin (AMD)" Date: Wed, 26 Nov 2025 17:05:15 +0800 Subject: [PATCH v3 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: <20251126-vram-carveout-tuning-for-upstream-v3-4-cf1729c4cb3c@amd.com> References: <20251126-vram-carveout-tuning-for-upstream-v3-0-cf1729c4cb3c@amd.com> In-Reply-To: <20251126-vram-carveout-tuning-for-upstream-v3-0-cf1729c4cb3c@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=5459; i=Leo.Lin@amd.com; h=from:subject:message-id; bh=IHnUrlO8fTpPDACouSC6i1w3QPi+W6JiV+gxx+NrrUA=; b=owEBbQKS/ZANAwAKAV8XsZZKKe6GAcsmYgBpJsLWs2Bzk5qfw341uX2w8g3xZEI2+FxQQfVB1 vww7AxugkaJAjMEAAEKAB0WIQQzqV4kW+yguuqHrw5fF7GWSinuhgUCaSbC1gAKCRBfF7GWSinu hlt4D/sHWqm7NozmziIgsNGVstIQKSpdeqiZYil44QFPV6XORfr0BS34zDtJWbvQm7UmMc4k8c3 DrB0SbtvWXt6Cr75ChhSjNqyGc/Ynr/FQ2YAnyWvXoKO2yez37UI5GNtqUtoIRYjJdwcnFNq5x+ IEJrFwTffDNUMZUHRaP/k1CRLlX3tlM1HsErnZJL5iDier7cZ17TR2T1aWcIycFwlB3Mm1bxqf4 9h915MLlEMm8yVcCRJNgHhSDAWgGrsEyJv22rr5eB4xo7FavtFRLWX0WYgqj3O91btA6NkSVuPq yWifGszvYXHme8XscwRhwEHZXHkohd3XDyjbnhZtJZtWQGFyjHRhxk/Hy+twIEVRtl8bXlNJRaM 0NWCx7KkVxZORUWAPV3VBa9BgCKnx5Xlx4gkSS3j7n1+V/JMSkGTWtIeaXB1nQFxLfzD68hxb55 8GhAETVC6ZKmqxxY9Q0AMjBoVCv8JJBvh9TWMWHX/B+fA+KsEu1NYTQb8389ubh8aZ5M7E4DpzN Up7A0HMl6hjVjglqRek6LRBk1RXYAy2pcJqBnvPM3jtz8KrrB2j8DN+S0nA+qI+1Vqtd6LZkxL0 IFEwJr8Uzfp6Zzc23+5D55+00gCurgHAECzMOySfluPbLUcCg9JnamDGlVSl1xVg6gD1hYmvkdC LPxAE+XSvOHep9Q== 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: DS3PEPF000099D3:EE_|SJ2PR12MB8847:EE_ X-MS-Office365-Filtering-Correlation-Id: 28476c2c-3a89-4f95-f226-08de2ccafbaf X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|82310400026|376014|7416014|36860700013; X-Microsoft-Antispam-Message-Info: =?utf-8?B?c1dKV20wSXJHeXV3K0RkNkx4VmcwRVFVb2RyWGtOV1B0T2xodE8vUTB0L2l1?= =?utf-8?B?dEgwRW9QcGkyb05mazJGUWFJajg3ZGp1czE3dFJkMWRML0ZEK3NJdlhYQmRy?= =?utf-8?B?SmV6VVlDeVZTQmxoQUNzV0tTRFNZM3M2TmMwcytscm0xVm1OSXhNNFZTUzNY?= =?utf-8?B?eXE2OEwzUDRMZ3RZb3BYaXBOY090NVNBaVdNSXNYdWUvWnhVWUZEdXgvUXp6?= =?utf-8?B?Z0pZRFdLcjBRU3h6SlRreFVydFRPLzMrTCtzTEtVb2xyZzdudWdVcnlTTStr?= =?utf-8?B?L2I1TmdudU5va1l2dFovMGRaR3YyU0wrT2VJOTF0cDh3MUFmUFE1TWljTHo5?= =?utf-8?B?c1dQWHZOYzZkZk1jSzFwSzZtd3ArR3lKQ3g4bEpWQ1UrYXh5blcrVGQycjA1?= =?utf-8?B?TDVIN2tTblNWQk1xcUpvdmNhOUJVaVdoL1lWOTQwNzRGMG5scXpjaUVBQWNh?= =?utf-8?B?Sm1vazQxQmp1aEZsVXk1RlJvSGpRQmZzQnZVeDZrb1ppRFpsUGRiVzVNTUFx?= =?utf-8?B?c2trK1FIOWtUcU5SVE83N1QwZnB0R3AybDhmSWNMR2xOdUFpNUZaUGdyOW1j?= =?utf-8?B?RXQ0ekxJa0ROS0ZFNTR4Q2UwZExrNU5PbTFSSlFGbzhpcUdzS1drWlV5bzNx?= =?utf-8?B?QkdaZDdqWitCOXE4MHNyZXhVMGZUK2NERkRzQXZLWnA0V2JoUDlSYWIxS0U3?= =?utf-8?B?NFRueGJ0RFZxSmtCcVdmUCtNY1ZRUFRpNFd1cFI0bWJEUHVtb2RMVE5FekRr?= =?utf-8?B?WnR1WjFxRjg3ZmxUOS8wbmV0S3MxNzVKdFZBSFZYN3lLS1QyR1M4U1A5UEF5?= =?utf-8?B?U3RLaEZGN0xkSldkMktBdEpDakpnOVlKZllzSVc5MngyUU5Eb3dCYVRxaVJq?= =?utf-8?B?bm0rY09QUW1PbzRTZVVxQlNTTlJGVXI0ZkNMNVJOSmtOMkhUQWFxd3IyTDgr?= =?utf-8?B?Q2txc292VllRTS9BZlExajJvZnF3RXltK1ZlaXl0dldPZ1hrNHROTi84ck95?= =?utf-8?B?NktYWFFqL0Z1UUU2YTVYN1VwUlYvNGMvUHpaT0NPbXJkdjA0N2JjUTFReUZs?= =?utf-8?B?WkdYeXNybzQwNUtpV2NOdEttRnhHaUM4Y2IrOEV1ZEF5VzBvRUtzRjNUUEND?= =?utf-8?B?NCsxTUJDT09temZzT2xXbGNrNzNuRHZYOFlmcElqczZqV3liRTE5YmtLNTUr?= =?utf-8?B?MEZqYXM0Mkx4ODJpUWwwVWlXVmxrQ0VqcUdMK3l5SEpQVDhKR1pkREhYaVNk?= =?utf-8?B?NnRiU0tjRVh1NDF2ZzFLU1ptbzhCQ016MjFWbkx5VXBNaWRhUGNpeWsyT0hX?= =?utf-8?B?K1YrZjVTWUxqd1dYOENPdHRjdlBWaEdhbVJpUkhtOUZTMVVhcy9JQ1NHZzVp?= =?utf-8?B?eUc0RHRPK2ZjZ05FZWdINk5vSGN1M205YVVuZkk4YS9YajhCOFpxc0NpWEhw?= =?utf-8?B?ZktCRUQ5Y3lKdWJNWll0R2dUMEl1M0FNQTJxbmpUUS9GZlp5NXpOOGVRTzVH?= =?utf-8?B?QWpHYkpobGFGeUUyN1BuRFhxazBpRER3Nm5mUWFoK1ZnaG5mZ0cxNlV3cTRa?= =?utf-8?B?U3BzTWpDZDlZSW5PcERFZDdZT3YrRXRyYnoyUWpvaHU1a21FUGwzVmZMSTM1?= =?utf-8?B?NEU5Rm56bzZRVG9HY1RRL3JKZ0dzekxNME9mcFBwMHUrL05ZNkVzdktIam1q?= =?utf-8?B?SHAwNXcvRlVubUNmNDJQN2M5d2pJZm9XSFRTdVZwZWN3Yk5vaU1uSHdhUWtI?= =?utf-8?B?eTNxeTRqZllKak02YndXQVZWVk83b3Nocmcya043dWhVc3FucUNiRHlkclJV?= =?utf-8?B?NUlta3NlVUNuM2doQVl5N3luN3B2QWJ5ckpFTzhjRk55VUJnbjNPWW02UlMx?= =?utf-8?B?U1RsOC92NWNmaE1tV09TWTNRMEVtb3FKdTFYL3ErS2dBWGVISy9sYk0yT28r?= =?utf-8?B?SzNyVldhVUtFWkJPSkkxejNyNzlZS1JjZkk3YUkwVG5NV2dpTWMrR2ppREJt?= =?utf-8?B?cHpQNEsrLzR2Z21OVWhHdXhEMmllWDJsT3dOVnFkWFNhYUt4eXlHZ1BHekUv?= =?utf-8?B?a1lvSWJLd2kwYkIxd0hQUU1TUzNFRzBGbWwxVEFTTSswV2h6TERNTkg1WmFL?= =?utf-8?Q?7eIw=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)(82310400026)(376014)(7416014)(36860700013);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Nov 2025 09:05:45.0067 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 28476c2c-3a89-4f95-f226-08de2ccafbaf 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: DS3PEPF000099D3.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR12MB8847 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) Signed-off-by: Yo-Jung Leo Lin (AMD) --- drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c | 137 +++++++++++++++++++++++++++= ++++ 1 file changed, 137 insertions(+) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c b/drivers/gpu/drm/amd= /amdgpu/amdgpu_acpi.c index bce9027fa241..c3b7b8c91919 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c @@ -30,6 +30,7 @@ #include #include #include +#include #include #include =20 @@ -1246,6 +1247,135 @@ int amdgpu_acpi_get_mem_info(struct amdgpu_device *= adev, int xcc_id, return -ENOENT; } =20 +static ssize_t carveout_options_show(struct device *dev, + struct device_attribute *attr, + char *buf) +{ + struct amdgpu_uma_carveout_info *uma_info =3D &amdgpu_acpi_priv.atcs.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) +{ + return sysfs_emit(buf, "%u\n", amdgpu_acpi_priv.atcs.uma_info.uma_option_= index); +} + +static ssize_t carveout_store(struct device *dev, + struct device_attribute *attr, + const char *buf, size_t count) +{ + struct amdgpu_uma_carveout_info *uma_info =3D &amdgpu_acpi_priv.atcs.uma_= info; + struct drm_device *ddev =3D dev_get_drvdata(dev); + struct amdgpu_device *adev =3D drm_to_adev(ddev); + 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; + + opt =3D &uma_info->entries[val]; + + if (!(opt->flags & AMDGPU_UMA_FLAG_AUTO) && + !(opt->flags & AMDGPU_UMA_FLAG_CUSTOM)) { + drm_err_once(ddev, "Option %ul not supported due to lack of Custom/Auto = flag", r); + 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 +}; + +static int amdgpu_acpi_uma_option_init(struct amdgpu_device *adev) +{ + struct amdgpu_atcs *atcs =3D &amdgpu_acpi_priv.atcs; + int rc; + + if (!atcs->functions.set_uma_allocation_size) + return -ENODEV; + + rc =3D amdgpu_atomfirmware_get_uma_carveout_info(adev, &atcs->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(&atcs->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(&atcs->uma_info.update_lock); +out_info: + return rc; +} + +static void amdgpu_acpi_uma_option_fini(void) +{ + struct amdgpu_uma_carveout_info *uma_info =3D &amdgpu_acpi_priv.atcs.uma_= info; + + mutex_destroy(&uma_info->update_lock); + uma_info->num_entries =3D 0; +} + /** * amdgpu_acpi_event - handle notify events * @@ -1290,6 +1420,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) { @@ -1342,6 +1478,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(); } =20 /** --=20 2.43.0 From nobody Mon Dec 1 23:34:48 2025 Received: from CH1PR05CU001.outbound.protection.outlook.com (mail-northcentralusazon11010059.outbound.protection.outlook.com [52.101.193.59]) (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 BB76131B823; Wed, 26 Nov 2025 09:05:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.193.59 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764147954; cv=fail; b=p6l624EsqwvwxvRk0C4eXhnIEN3WfV4e6oUDjv/XSO+YwG8k8ti7JlVOqxigZOMDMCCrNUz4tl6T0RdjgeSyJN2PzmLdEPBFu8b2ewnB+ZwFqDnOk4TtUuNX4qOJskooyxdLAfxChBncAD7QxhkTxkYjAaQ83S8TDCFHGwRLSUs= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764147954; c=relaxed/simple; bh=4yVmtML6xBh6fXs6d+3/KBhZdGL63PCIBdv8F2bkbEA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:CC; b=UXzBMODYDo9o/pmqe0yZog9+d/YTERS0MJ9NzU/0tAQnGFc30UaC0e1dqKtcyi0cMLCyUkTHFVWl8qThcL7PhOLkZizjPmKuNKStrL15vYLOFRsxltKQyFitWdeDmtYbkc0fz9j504LeAntbINTmSbvgRd8naFNqQPugbPtuqqI= 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=Yn96vGjc; arc=fail smtp.client-ip=52.101.193.59 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="Yn96vGjc" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=kTXSxmVTGeQ4PvqGoFqsY9dbsbsC5omv6Km1PCndRbOkDek1mD5au3Rbgu+3bq3Dbw3rBt2HlDnaqvpT3Xubcno3Ki1f1eUSt4ZW3X7MxOXIzYz+//RsdgzeInaBwYM6WLGfVd4MUpBmDG6vvPFTq+t7yNj+G0YlInjFv7BiAv1S9aTsqj8pWd7naH/NxmtBp8aXtpymzxLz65NHJauvYbCfkSDMOHJIrWUCha8xz8JXIH7oCu8liZ2x+124eBx3KSlCcl3yRBfOMwS6FTsY7z8j2797zb95L+nXeKdPT6ERzgxXK3NysOjPgNfZSgaWfiYCjLz7iNg9AuSeVxowaw== 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=oFF7eOm1OvS68eDYaLD1xTdopz0EA1/HlQbiAz6rSD8=; b=u4x44ws1hON3l163FTvIqQ0rEvx2UMx2TEhICENscbl4ug/rQYhSsWGbD88558oemwT0yyXPMNJG6ewwYNTgDZboZABinrJmc1pphQjv1jujCPAHOVu3Cmydj99yv/x+q+6OyvfRW9pfzw43heLcFs6T8z8YKEHeyyNG045iXLfhfRjkzfVgGYg9tIGjW9ivjTyN+eAxbWsNlIxzVbIn/DzGjtKHyQPML7/D+X0uSdyHokp9wIgERyS9mEW8amovgsGomLuYZZ8SvK4AFI+csfTOYE9MOJAP2Wxzp4vyH5LRRc/TaqYltHcporgDANysMP8dXsB5VfOAVHItTQEdeA== 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=oFF7eOm1OvS68eDYaLD1xTdopz0EA1/HlQbiAz6rSD8=; b=Yn96vGjcI9BErtJsAe8KviRQRpFDbqSYVhRdxeub3jYMebwRJ13IUGnn5FbZSpVwhIGj8ZwPy9+gh4GBwbkZs0eBgX2tv21gCVrGsi69H4R8Mx9S4EhwwzSBswOE5VNieo5gKjDe+6RchfZcmFxNddFbzNv0h9Cp/xbHp0xJ5Rw= Received: from CH0P221CA0007.NAMP221.PROD.OUTLOOK.COM (2603:10b6:610:11c::23) by SJ2PR12MB8784.namprd12.prod.outlook.com (2603:10b6:a03:4d0::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.17; Wed, 26 Nov 2025 09:05:48 +0000 Received: from DS3PEPF000099D3.namprd04.prod.outlook.com (2603:10b6:610:11c:cafe::f3) by CH0P221CA0007.outlook.office365.com (2603:10b6:610:11c::23) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9366.13 via Frontend Transport; Wed, 26 Nov 2025 09:05:47 +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 DS3PEPF000099D3.mail.protection.outlook.com (10.167.17.4) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.7 via Frontend Transport; Wed, 26 Nov 2025 09:05:48 +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; Wed, 26 Nov 2025 03:05:44 -0600 From: "Yo-Jung Leo Lin (AMD)" Date: Wed, 26 Nov 2025 17:05:16 +0800 Subject: [PATCH v3 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: <20251126-vram-carveout-tuning-for-upstream-v3-5-cf1729c4cb3c@amd.com> References: <20251126-vram-carveout-tuning-for-upstream-v3-0-cf1729c4cb3c@amd.com> In-Reply-To: <20251126-vram-carveout-tuning-for-upstream-v3-0-cf1729c4cb3c@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=3118; i=Leo.Lin@amd.com; h=from:subject:message-id; bh=4yVmtML6xBh6fXs6d+3/KBhZdGL63PCIBdv8F2bkbEA=; b=owEBbQKS/ZANAwAKAV8XsZZKKe6GAcsmYgBpJsLWi+S62r3rAAVOWGyRKZkUgODX/PbBaSyTs 5vw4g4M7aWJAjMEAAEKAB0WIQQzqV4kW+yguuqHrw5fF7GWSinuhgUCaSbC1gAKCRBfF7GWSinu howhEACEqMgcVfvwB5YPN6yXQxF+7LJ4NMtGAbhEZbkBBPUNeMQaOOsi8k7iWf0RgqaeyOeMxPQ GgvJqGKzy3EYtd1EcuRhonWbBv0uUbHmfVHXkfPjkkUrniSE4i4Opkd4J6YeP1FWFZ0jbSKcZOk ijZie/YSRd3zZ7XgDx8/HvrAc68JBQD19awD1rxowOyeQlACbsVuvVJFXZUG+LlkRv2Oh4aasPn QoNcuLU0ukPcI78a4RI11jgKxwGFq2lpbcPN/NNFbaaplQ1rx2JENV6t7wjHqrUH6fMiPF+w2Cz Lo8XuWGMevmFtMmGYXh7dFUpOeItrNmQD8vXeqtvxwbLQK08RXws8Fu7eMd2+my8qV39Sn0X5Pj D9a18kUUFrsS1345oLCXrBBaQ5qndegZdEPbqOz1Nlsi016G9Rc1zQKhy5bazDoX8GNQWkNyzbf DqjCPSyIGaF3Go9RpArm9xob3FEX8QCF8ozga+hW/6F/rungiCTQUUQGTif+Ji5uI9B6gvZxzSG Uj6bXBL83LP7ZgWaA0ESQNACUQmHjjIe2yrZJ3n9qjU1M+AgOEdCyf6mudh6KhrSKWj3+fwlzbG HebGrBtREXQHgszr7aede8Oro2AfFbbUre05NB4OckRa4UuadT3+5xYGvZIcbnC2VIHRw8JpoP2 hxDP0w1XUbfkzfw== 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: DS3PEPF000099D3:EE_|SJ2PR12MB8784:EE_ X-MS-Office365-Filtering-Correlation-Id: d15a7dc1-233a-46b0-d8e7-08de2ccafdd3 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|1800799024|36860700013|376014|7416014; X-Microsoft-Antispam-Message-Info: =?utf-8?B?cjlkZTBsQTRxdVdtUHVSbUJyUlBGc2Rnb015ZkFVTkVOekc5NHNWTkpZdlRL?= =?utf-8?B?dHE4QWt1L29ZT0c0Mm9nVitMS0creHVGUmhvRE5lNzdweGZCZkd3dVRhOEls?= =?utf-8?B?RzVoMno0eTJQdGkrd3c5aDRIeFk0SFhLajU4ZjBnaWxiQlJTVDcwMDEzVkN2?= =?utf-8?B?TzIyVnROSk1nRkYwQnd1MUZzdVlYV3VjRk5TREFFS0xPQ0JKODJza3JhdmFS?= =?utf-8?B?TkRUbzZpM3ZwODI5U2Q5K1Z2dFZpaXFTSy96VDc1clNyMTUzUlJYb01ocTJz?= =?utf-8?B?M2hvQzhtQTZXcDZYWVdlWk94MHlHRVVLNXhoQWRGZnFURHpGcUxyVWJxNUZC?= =?utf-8?B?WW1GYVkwdlhNOWhGNnhjN2k4UzczWnJPQ1FMWCtmRkNwQlFOOUZqT1paTGVU?= =?utf-8?B?bUU3SVdlWU45aEM1NzZKcFRXT205Ly9jTm9MYU5UREUyTVhHUmt0S2swYW5F?= =?utf-8?B?M3llcDF2QmVZbkZtc0V1Wkp5T1BZNXR5V2hSOWQvNERpWE4wbXJhc3RYcFp6?= =?utf-8?B?bXdiaFcrdU84REs4ZytYTmZPTmZ2ZUdqN0JaL1VqaHluOTRSZldNMFRlRkJo?= =?utf-8?B?anlVRU5OQjNnUmxJcWlqaVZMZGxESGlwZjM1Wk9Kemp1ci9VOVpjMFBxYmpk?= =?utf-8?B?c3BtdDZ3ZTMrdnl2dXZUL1JlaUdkKy9UREI3VEYxd3crUCttQUVYSkNwK1ZI?= =?utf-8?B?VXNKOWZhZ1c2Q01Bd0xoVXY0bnF3WkhKSG9BZERZT2U4WGhMT3UzZXZWdURi?= =?utf-8?B?c1IxWjBpRTl5NVlyRjdrdjM5QlAyc0F3M1lyeHhydU9pMmdvS24zYkl1bVJj?= =?utf-8?B?RWg2VnVvMWJ5ekt3MlE3cDhvQUhFd1dkalh6UzF2eUMzSExWTnIwa2hyY0ta?= =?utf-8?B?Ly9xNHJSUDJVWWNYdXg4SnFySlltdVFtaFlSSjRvZzFIbVVCdDN0ZEoxTCt3?= =?utf-8?B?ZjJUSVUrd1E3czVneUc5aW1STENuVVlENHEyWE9MYVBDNkg2cUhLM2wzSVhT?= =?utf-8?B?dUdCdWdreGNYOTF4MUovNUp6L2h5MmxJUGdXbXJSdW1zY3lSYWNobUlZbzgv?= =?utf-8?B?Vkt1SkcrV2h6cGVuQkQwUWY4MTRQOW5mSXE2USs4a2NiakZZUE1pcEo0S2s4?= =?utf-8?B?aHlCSG1DKy84NElqdUNXQTJiRE5PV0NPQmRpa0pFRTFwMjNoRFZlZHZLdEJn?= =?utf-8?B?MEZzTjdoank2OE9FU2JtRkh5WGQvRlNHUDlCYkszRlpoc1htZ2FNUFJkTWNz?= =?utf-8?B?NjhOSlpLOHlIR3lmSWw0OHdwWlVVbVB5YlgybzlWVjRMQ0tZbW9XN3dZalBC?= =?utf-8?B?dkNZK2J4UEh5R25kNmJHMVhlemtoZkNoSkFpeHB3TUMxRmVHczExclhXZ3o5?= =?utf-8?B?Q3ZPZWdZa085cjV5VW9zVlFMTmcvUmRqM1BLOXB4aUQrQ2dQd1d1YXphRUxw?= =?utf-8?B?ZDBxWGo0UDJueW8xZnpWV0JicFREU3MvbEJxM2FvWmk1RGk3RGM0NHovUXov?= =?utf-8?B?MkZWTW95SzN2UyszREc3UUVpay8rTHREUmZSVGxrK0NzakRNUmtqV1puU010?= =?utf-8?B?TU5CY3ZtVnMzdTh3NG5xaWZyd3pRYm5EblhBRzNBbkdSblJUN3h3SEc0aUNv?= =?utf-8?B?ZWdoV2Z3Wlg2cDhRMkNpbkpkV2NCQUVHd084bWNBMlAxVGhudmdFTlUzOVQz?= =?utf-8?B?aXN3bGdjNW5XL0puNHBQTzIwelZBQ205cUREYTlWQjZuYW91eHpLVUF5bU13?= =?utf-8?B?NVpGeGJmQWJpbTRzWlNXZ1pISmFJbVhpNFh0SlE2aFYvUW1IMVFXRHB1ejN0?= =?utf-8?B?aUl4Yk9sZVRxZit4a3NDWmF1dzd3VUFJT0xZalE2cHg0YTBpTVZPNERmY1Yr?= =?utf-8?B?ZUJvaklUMldxcFk2Vm5ydXN3N21uQklZRUN4K0hORFlVWm1OMllma2VDdVFN?= =?utf-8?B?NkZpYjVYbUFNbklUUXZ2Q08xeUF2NW9IMXl6SnA3a3RLdWxveWJpK05XREV3?= =?utf-8?B?dHVKeWo5K0k5TEc0d05XT01kdjZ4T2UzQVVvaFVOQWpNem1RK2VXVnNRSWFp?= =?utf-8?B?c21LV0dQNmVQd3NwL2MvV0RwUmtOOVVFd0JTSlZ5a3FjRWx4L1JsbVBES3gz?= =?utf-8?Q?0/Dc=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)(1800799024)(36860700013)(376014)(7416014);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Nov 2025 09:05:48.5987 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: d15a7dc1-233a-46b0-d8e7-08de2ccafdd3 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: DS3PEPF000099D3.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR12MB8784 Add documentation for the uma/carveout_options and uma/carveout attributes in sysfs Reviewed-by: Mario Limonciello (AMD) Signed-off-by: Yo-Jung Leo Lin (AMD) --- Documentation/gpu/amdgpu/driver-misc.rst | 26 ++++++++++++++++++++++++++ drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.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..cd6f044bea85 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_acpi.c + :doc: uma/carveout_options + +uma/carveout +-------------------- + +.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c + :doc: uma/carveout diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c b/drivers/gpu/drm/amd= /amdgpu/amdgpu_acpi.c index c3b7b8c91919..d0930aaec18f 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c @@ -1247,6 +1247,24 @@ int amdgpu_acpi_get_mem_info(struct amdgpu_device *a= dev, int xcc_id, return -ENOENT; } =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) @@ -1277,6 +1295,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