From nobody Sun Dec 14 05:56:54 2025 Received: from PH0PR06CU001.outbound.protection.outlook.com (mail-westus3azon11011023.outbound.protection.outlook.com [40.107.208.23]) (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 A662030F933; Fri, 12 Dec 2025 07:59:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.208.23 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765526387; cv=fail; b=IuuFxxYPOvfGR8qZVe57SVSDqhMX5aneL4Zh4F/5fJkOGaRkuN4npYBBxfLKLgt1f6uT1DCGsdSMsNDYSk8eFW0/GdFWIzAhtFk4eAvQro5/yqEfq+md0uEVQXimtgFZXSnGJ3NmP2+YJvBZiN02lBVT3VjsXM6PNPx8UAC7QF0= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765526387; c=relaxed/simple; bh=WNO0Wy5K5wTMtZyFMxcPyYSImLbwFKtO7i9+gf4yqe8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:CC; b=d7odaRE9jODfcYvxJnkonY+9/PvPV+IKoO8GvrqzGeM1mcN3U3Km1ibTZk/NdxVlJzDvUqFi72qheRnrlhMP4MRfQlUvPB8G0lIwvEoC3oRf6/TqsGWPDt5x2RuSKATmX/KFOdBU9wBkZdBUKXZEwmTtL5v5rdgCApZBxaNEQ1c= 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=YqVjiPCB; arc=fail smtp.client-ip=40.107.208.23 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="YqVjiPCB" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=UFQDvPYvU5xyp0oaIfrBfvIRlpeZ02egMUNb0d0pbIMWyj9+XlKVQhfT7R7b3QeGglZYcu7ya9eHAZ6BuYXFTPY1zK30981S4xvwcOIQ+/32tFHtfpHjZoeBkfpD36h6L+EckDmvtpIuZGnq6AGywVFBGb3AAPgqiBd8pFWWvFy6L63RYQJ6RK5rXGDXxuP/xsRtgtRuHQQVcYoTD/G+t3Z5w6qqRpT8eC+WHnf2yDZT/nXfAGskw9IQJ05TTICrca0WiJnrbbO0gl1JokPVnY33AKLG6o/ur1oVxo4Po6Vpt0BP+ZEYJ+puu3WY69E4Cr3vaX3HLFQzuIKqcAfyvg== 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=OAh2GRM3y6jLlrJhqGmVo9mFl+QZSS2kUPd5PgCgdZWXysnCMfaVTIGoOfiz92RcVU8zgRxIozRSGvJnCOyWtlCnXiS7f6dvow57wB0biLEki+GGS5T46mt9vQvPjckIu9ntru05YXHMSr3++p6hr8ATZVXLi/Fkqhu8T0oPmb3o6rDY3YGkP8C8uMkclKBc0m1BD0qwGZO2KtT/SYZYsQtWW3vkvx061eYZr2QYLzVhFCVINtKQ818n/Op8bL66iSLKHnRy8QEoG0Sw5wgjspZbSwf3xy7gakeyGlMomWV4iJcC4y9IgM3ku8lIT52qe67Rj/YIJhZ2/80rLTTTJA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=kernel.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=YqVjiPCBWqoyU+xphRT/RzkF3jX1g4Zc31IzlrgJPWmC9j/04nM4I58RTsaaTWfD0UzAZ2ukUIw0QDra0dYlH58RozCaQ7uRil6A3BO4yk+4LwOCgOp3+gVQr35Gcbt2pctPSyOiWBgBXXH4wDGkZJvab8qclCv2Vx/SJnBgqI0= Received: from BL1PR13CA0369.namprd13.prod.outlook.com (2603:10b6:208:2c0::14) by DM4PR12MB7766.namprd12.prod.outlook.com (2603:10b6:8:101::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.9; Fri, 12 Dec 2025 07:59:38 +0000 Received: from BL02EPF00021F6B.namprd02.prod.outlook.com (2603:10b6:208:2c0:cafe::62) by BL1PR13CA0369.outlook.office365.com (2603:10b6:208:2c0::14) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9434.5 via Frontend Transport; Fri, 12 Dec 2025 07:59:38 +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 BL02EPF00021F6B.mail.protection.outlook.com (10.167.249.7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.4 via Frontend Transport; Fri, 12 Dec 2025 07:59:38 +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, 12 Dec 2025 01:59:34 -0600 From: "Yo-Jung Leo Lin (AMD)" Date: Fri, 12 Dec 2025 15:59:13 +0800 Subject: [PATCH v6 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: <20251212-vram-carveout-tuning-for-upstream-v6-1-50c02fd180c9@amd.com> References: <20251212-vram-carveout-tuning-for-upstream-v6-0-50c02fd180c9@amd.com> In-Reply-To: <20251212-vram-carveout-tuning-for-upstream-v6-0-50c02fd180c9@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/ZANAwAKAV8XsZZKKe6GAcsmYgBpO8tgEKElY3K608E6bcq8FTY2LjKGDVJMg8a7E pizCeqLQBaJAjMEAAEKAB0WIQQzqV4kW+yguuqHrw5fF7GWSinuhgUCaTvLYAAKCRBfF7GWSinu hhsrD/4r8yWuYFG6QfsLLX6xDhMRcdq7m2mzlV+W3nxg/C4T+n7HkKRjjl73DZshKrBhBK6wyY3 +cL2Lzzqmy9T6R9S/2xy32R4Qy2xsSRGW06NxLgiy9IgnS5NXaXW/HLPlDp7EFTfTw2ESgTBLn/ ID4frAJ4lOCJUJ2LTTAUhZaU8JoZTJHJU+iogVOQL6gyBMK/Vv0ME1X9J5DZB1Bze76FPXvRhAs Zjl5gi+Hq3jjiYob0wsadlK560THYXe7COS8tcVKMIccWgjjMEyAvEr4g8QtsHqHM7/R6V/7LOh eUE/Ge4REmbrMcfV/sOPy34OfnB9M1JUppVzDq9Gtfu8JtPpF15zuvuAdRsK+YAwhdDCrXuu0sd OzvV3fNN9eYqgnoD9nZWrjjYOfAqkq2g/DhcOiwD6ZudLki17aaYeGYRjMRKESkyOL5Q7qH3hpK 1Veh3NB6slG2H5TW+p5rVarMGMSN7MrLFAQ1XgIdVrv3B/R2LPoKu39G9Q2R3x/vHYoFTV+CMpz 1bESrpToVwpAnVAn73UKcvpz5YIkIUbiDI2RwcESdrhpin2+6EQR0AqWgAYroyJsOFATPVLwe88 AaW6KrX2bOtGg6v2uxIssgYsUT3H0zY4EP5srp/VXHDGmoLBe20eGultk+eI7xsmZvXRzfADDmP 2f7eNWK/M4tkoPQ== 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: BL02EPF00021F6B:EE_|DM4PR12MB7766:EE_ X-MS-Office365-Filtering-Correlation-Id: 1bdbd531-11e3-41fb-15e0-08de395465df X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|82310400026|1800799024|36860700013|7416014; X-Microsoft-Antispam-Message-Info: =?utf-8?B?QWgxNnVMRDVaVWNlZmg5YkltRmFkZ3JCR3dJY3JTRHhIQ2VmVVhjM0cvMVpE?= =?utf-8?B?bGlHRldMa0dOQnpZMmphTW1uR0RPQTVIUGNvMjBLVEJUanV5VTZ4cWJ0RlBh?= =?utf-8?B?NWx2MURoaXhvWEtYT05iZXluVTRQY1RXL2ZUNGRCd0UvQjkxb1FvWjdTaVNz?= =?utf-8?B?L01FZUh0aWF6MUZmWWpTUWt4V0JrbG10TWZWeGo0RmtwVU5nVmJvM3ZGWlVD?= =?utf-8?B?TjlXWnpUZ2oyK3JxYmROY2lBeTJrdWZkeDgvVzRFVzEwY2FINm54SE5Ya2Vh?= =?utf-8?B?azR1d2VpQ1RSVjFDSnlUb3FrK1dqTUhBRHJ2bzdvQnVyVFdlVjBiNll3OFhn?= =?utf-8?B?cTlqOTdYbWFaMUFhLzYybThTN24wTzRxS1F5VkpsWTNzVjFERkNFazRFSDRD?= =?utf-8?B?TzJoTTBQT1Foc0YvK1I2eVltVXZWNlZJbWxqRG1zdGdqeVR3dDJvOW1JbHhI?= =?utf-8?B?NnRnY0dZTG56L3dqYUdMTmFKWE9YUXE4cHk1bVFEbkNJb2NFZzM3RC9HeG9x?= =?utf-8?B?ZWQ5RnpGOTllVGtGTXBHa3Z4akVGSjFMa1ZySDB4QXRhZ04wbUZEVmxKUHNa?= =?utf-8?B?aERTZURKOEg0YlFmVHNjNm04YVlzTEZXbllGMnBzZFFxY0lCTEhSTURmMFlP?= =?utf-8?B?dW9mbWdaWEtDVXhhdDVyYzFGTE8zMnJ3WS9sK1pnalZMQVJUNWFkbk11NEhW?= =?utf-8?B?T3J4eWRtM2dyTnNkaGpDT3JEOXVvL0NkU2lkWUtEZDc4bXY3ZmFMTEFlOG1T?= =?utf-8?B?aXRXTWtZcytERFlyenBXN1pUeG9SdmE4WVNmblZmWS94ZENIbHoyT3gxeWRC?= =?utf-8?B?Mys5YTJ4Y1I5Ti9naTdkQ0NBVXAzRXdZQml1Q1I3MWxYL1pzWG4zWkloNUhV?= =?utf-8?B?T056YXhMTDNYcjZZZmZvUXBpN1FVdDdhRHlLUVV3eGtVcDZQWkdmZ1Yxa21O?= =?utf-8?B?TERINjhtMVVleWZsYTRESGVpK2JlSVZWWlNnUDMyTnF2a3F3Z1RLaURtRDMr?= =?utf-8?B?TzJMY084YjRGZ2pHQStUdzVURVRNa1MrSGdBRkFOY1RUUkw0ZkRsU05ZMXcw?= =?utf-8?B?cm1RVE82UkxoMWQ5bC9UaTJmeEZvRy8yR1NtRkRUcG9DN3FxN0dSUmk0cnNr?= =?utf-8?B?OVdzVWdKY1UyL0M0YU9meklIc091TzFmV05MWmoxam5maFYvYTBwMmV4bzdl?= =?utf-8?B?MXdkaFZaTGJxRXFxeWhqQ3dxQ0tkOHlhSDhBellxOHhERTBKakwvcDlxdE9O?= =?utf-8?B?dFBuazBpcm85TGhKVHVrR3lDNS8ybmJOVyswUm5peldUTVVVajNuLzBDdzFH?= =?utf-8?B?TkVQVWFTaEpCRzVKdHpoK0F4Z2w1TE1Zb0VmeFZqUHNzbFd0Y1J6Wk01dGYr?= =?utf-8?B?bi9UZUorQTNYZDlsdGpNOGQrenlVRmN1RHFoNFZCajhsaTdZNENCMmxaTWl5?= =?utf-8?B?a3cyVGRJOEd3VnpTanEwZXFBWEM5WElnYkc4cDQzZUoydTBYanlEUGtGQks0?= =?utf-8?B?NFdpWUxWNjBPYm1iUmhKUHpTaG11b1UreTRkSGx5RTA5OE1sWXdsQWNFaUNi?= =?utf-8?B?UDh3dDNPMGdWcG5rMlA4c2U1OGp3eXNUdHZEZzZ4aWl3R09sWW5ubks2eStz?= =?utf-8?B?bzBIRGxKMGpFL1kzOHpYckdFMVQvUGtJQkNmbitEVVRJdzdZaUVGeER5b3o1?= =?utf-8?B?cFdlYTAwNkFad21NbjVVTGVkbHlGZkozb2JrMVZHd3QxcHNHZ0tNNkFENWEz?= =?utf-8?B?UVk1Sk9rQW9KUWhNVFJRWVdkcThJbS9lbUJaWkV1aDZoemZjdmVwQ1RxRzVt?= =?utf-8?B?RFo4RUEybFBmUExWM3hwNlJmTkV0RVBPRzVMQWwzaDQ4V29NN1VGTFczWGxj?= =?utf-8?B?eG1pZUthaEY1VzM3bDdlVFhaRFlqbEV3WjhGSjZnc3ZoWDRlemFXRnZFLytC?= =?utf-8?B?MGdiQms2ZGJLYzZXd3ZaeGdxazg3andqY0hvM1JPUlpoTi8rdUpkbXI5M3Rx?= =?utf-8?B?VGpxMVZRb3FMUVJteWovdnZNQm9aZ0NWTlNSblhtbVk5VUFQNGkwekhTMnVz?= =?utf-8?B?dTR5RlkxUmVvMmVZMnQwYmlDV0ozbnhqNFVnZjFzZHF6aS8rcDdjZkRqOVBX?= =?utf-8?Q?OvUY=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)(82310400026)(1800799024)(36860700013)(7416014);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Dec 2025 07:59:38.1906 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 1bdbd531-11e3-41fb-15e0-08de395465df 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: BL02EPF00021F6B.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB7766 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 Sun Dec 14 05:56:54 2025 Received: from SA9PR02CU001.outbound.protection.outlook.com (mail-southcentralusazon11013037.outbound.protection.outlook.com [40.93.196.37]) (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 E474930F946; Fri, 12 Dec 2025 07:59:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.196.37 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765526389; cv=fail; b=dJE/QIn8Gcc6GOzfdZok+BEqnkVzOrK0sHC+LD3FyUXapW9jgWYeFK3+YTR3SD48suWx3i5O49nH+iH5QuKVP/iqvrmMEfecKf/cW6bwhInO5ZzkzFopKaCiYe5mxUiFtNuTIH4qxtk/LnnKJBlvu3H7ygqVwWDV2jIamFwiUBU= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765526389; 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=FzfN6w829JPCuE0TUKlowYf4TNLiziXWVKPtJ2Tjo04+0e+iD8ePCdRqe4AGfTkCTPoo3EPdAdX++oJ75hMhn0rgU1dZYqMLQLrivBsTPy39KYztMardbeXqxE6zxy2UyeR7iH9pCCJeeC+Sb06EFS9wdcn5nliIzHodEuHY0pI= 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=KI2f1F0X; arc=fail smtp.client-ip=40.93.196.37 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="KI2f1F0X" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Yggr1JWVvqLA66NZvlIIXRhq8X+RvrEyeA0EMo5Sa0T5mUDpJjCCOITtEu5H4Zz59NC7ubMTdI4oqk2T/Kj9uzHaXLo7zuWTrFP1ytyzV/XQrFWKifov46LrGNLCBahOOt2LYP0gSJpblzb6aVHo1Aw2LrEYZt25F42HY5C3qZUBMXasPhs48dXk7U7KtPVgXbB1MZOfTjRBF5SMynJfG6Ba8s7UHm9+pZL/hoahktNY6ksZrPYDWmQ0RS5+8oDt5vIJA8GPLhMumV7nE1Fn0S55mnNM2Vu2dNRAfpnyjN/q9uYjedT2HjjKhud+A8vClwI8p2twLeGmUwhJeg+F9A== 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=TxmsjOBO1XjvezIrGDV2bl2lSM3ziUVdZl5YdPqhL/itN3t9vk+OeSZW6w66Ry/gbkMMmAKIXMMQEdk5pM1ybRCzGP0CJx1GVlOIqZcOkQ3CLupel+m4jEuDQ7iVsLf5KEIudNksS/+3N0K5pkrrsBm6d2IMivpfnQetgpiPmPW4lSVwrzvT/X6LAfGk/7Xvm2f2N6kU546pUPkKIPpUoVsETkxhACTaEvNfl6ZyJCh+fW4J0bYtqRsMe6Fg23hLWSajGYCVJ1/i/j+4WVikhZuzcL5/SMosQuM+/qvUO3HGn1IcrBvriZbQB9u/ZCuR048AjPWka7RULfIc4lUOIA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=kernel.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=KI2f1F0XwMzTse8VSOiPa3ATnAhRDw6a0iZoaQ+UZjq0mMf7AbMseCi7RATBN4ukh9lTO1cNL+Zdrc8bPybBb5LbzmT3q15Ipg4qsWKziHzmkelJB5qgzoEt52v6hGAQd4t6ckQ5vXhxzSCagAHEOe4fw6110zCYPkN4mRvkVkE= Received: from BL1PR13CA0378.namprd13.prod.outlook.com (2603:10b6:208:2c0::23) by SN7PR12MB8057.namprd12.prod.outlook.com (2603:10b6:806:34a::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.9; Fri, 12 Dec 2025 07:59:42 +0000 Received: from BL02EPF00021F6B.namprd02.prod.outlook.com (2603:10b6:208:2c0:cafe::be) by BL1PR13CA0378.outlook.office365.com (2603:10b6:208:2c0::23) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9412.7 via Frontend Transport; Fri, 12 Dec 2025 07:59: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 BL02EPF00021F6B.mail.protection.outlook.com (10.167.249.7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.4 via Frontend Transport; Fri, 12 Dec 2025 07:59: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; Fri, 12 Dec 2025 01:59:38 -0600 From: "Yo-Jung Leo Lin (AMD)" Date: Fri, 12 Dec 2025 15:59:14 +0800 Subject: [PATCH v6 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: <20251212-vram-carveout-tuning-for-upstream-v6-2-50c02fd180c9@amd.com> References: <20251212-vram-carveout-tuning-for-upstream-v6-0-50c02fd180c9@amd.com> In-Reply-To: <20251212-vram-carveout-tuning-for-upstream-v6-0-50c02fd180c9@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/ZANAwAKAV8XsZZKKe6GAcsmYgBpO8th+V4xSaAgRy1XBQJBLCBYlqmrQyqIn+Zn/ yig/oAlX16JAjMEAAEKAB0WIQQzqV4kW+yguuqHrw5fF7GWSinuhgUCaTvLYQAKCRBfF7GWSinu hoUgD/47Eq268Io10jgq9hzdGf7qAvwg7xSMWLYkT3VlCf+X0HJlAMi6pCuJrjM5XsbBhW22y/S 0JmU1XGdX2gFRjhiRAjVEooKd/bHcAgnEUNaVOvas++e3wMMyvjgkXpbF/k+YXZbPoyppSELLmN 9Y2iQnojt+88fZBDcdsmM6hudw/I/EA3S7/hhrPDXEPhTS4dKWKNJLIpUtjRGsYW1dGqGzasmYj tSD6oClL9LbGCUcZnn7Z/jkCS8HHx4gCwKb+P03gzK705PBY101CImKMWMdtevnKXJ+JvLJxxo1 2VDe6ycA2kHOo3KdxJvQ5uaMFKVr2i5SGcZXODovgzfYrelWT0vssj7JLtucHt1bQUni3XJf14T ywNJB3km5ASpugr0xX54x6GSp9wmt6PCxaS92CpymKDqnLjp0NNbETPmDBVZv9U9yMEiZr/kV/C dgs4jdqpmZunFnT/LvL5PChTGh0fXTtJgdDx8rrsoNl0WaQkl0v2W0r0ft7sWP4aRGGW3/wenhM Z0NyQfqOiwmNG5mq/MR4aoF7lH1w1bSIvWU6kUrqh+YEBAzL+RXQyX+9tGYNNUMAfsMLSS7P8WN mT1vUL7fPRX+2LRwGTqfGq1cKd45w/enG5jlma6mbZtPR81ZMXaKztcZzdE/llsjk0BUNhDq/iL Ew/cz3WrF7ZTwcw== 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: BL02EPF00021F6B:EE_|SN7PR12MB8057:EE_ X-MS-Office365-Filtering-Correlation-Id: 3cb271e8-3ff9-41f9-7987-08de3954680d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|1800799024|82310400026|36860700013; X-Microsoft-Antispam-Message-Info: =?utf-8?B?YXkyVFRWd3JxcmtmbDF3S2s2dll6ZXJVZ1RTM3BxK0svR29tR28wcFpJZ1dD?= =?utf-8?B?WVhjRkJCSENKTmJ6NmZxSDc5ZlE4UlFncWdqaGdXaUhBOGphT0daMzJxeFRY?= =?utf-8?B?bW90NE9DT2FVYUZ2QVFMdEI0eFdLbDhEOW5mamgvb2NXUlBIOXduQ2Q1Y202?= =?utf-8?B?YXhQM2Q0QmdBcHJTakprdnBaTENKSjJmQ0hHb1U5RTczdTBqYmZ0L2toWXZB?= =?utf-8?B?MWZTamdVaDAzN24wOGhKTWQ4S1NVYzBxbndUVC9HZ0laQ2RaSFBCb3N4T1ZC?= =?utf-8?B?SHNjeGVFU2lXWHlTYkc0Rk1wckdGTThOeTdVcVdjSDJZaC9WeHBSbTlESDlj?= =?utf-8?B?T0paUk5BeVFRd0dVcnpqZlpnY2RUa2F5NFVaTzBFZlRaelJEbEMzWnhlbzNR?= =?utf-8?B?RTdCeXFVNS9wZ2hCL2JLdC9WeUptV0Y0ZDhtTlFLU2ZmZjVpYmRBRVJtMVVY?= =?utf-8?B?c2xOODNlNExDLzkrd3NLWUlUS0xSN0crejhVVGNmSXVkeGg3TUlrU3JMZEdH?= =?utf-8?B?YlE3QzF6YXRMSitmeTNQMG5VYnRybnpELy9neUNVVkRUY0JwYS9HSU42Z1Rr?= =?utf-8?B?QUcvdzJkV0pkYlJVR2lsMVVDajdJOUdDejVHM01rcy9EenNJNW9uSXorb05I?= =?utf-8?B?UU1VQWtDZEFFcjM1Z2JTNmsvWlQvZWRJWndRcHRzczJkdXpLaHJWZDdMbS9M?= =?utf-8?B?NFJOaG5KY0Zlak50Q3ZtRExyeDdpM29uSlpPRHNqa3R2eURWdWQ2M2tMVjJv?= =?utf-8?B?KzlGem9KTHMzVFZwelI3dENmTGxyWC9nTlpwR1JiejlsTllDaGYydjJlOW0z?= =?utf-8?B?VFhLdFlDejdVMWlyOERsTzVlbkpyMGNjOHplbmdOMEhMbHdjbU9sUW9GTlZC?= =?utf-8?B?Q296b050SHp4QUI1UFR2SCtBTDhyaTU1bGsvdTZKN05hUmZnQVVmUlB1UFVz?= =?utf-8?B?OGpJc1FyNm9jVDhsQmRvK1hTbGJCTWlzNG05WmpPejR6NHFNSmlqZ0I1QVZm?= =?utf-8?B?N1EyY01SL0QwWUdWMk5WaUFRdE9WcllSbjl3aVdOcWRzSkdBUXJEVjBWSTNY?= =?utf-8?B?emswcll6MllUMUZSMGlyR2V0NWVtWE9IV29nOWJ3QlU4VmNMMDFib1BhRm9C?= =?utf-8?B?N2toQlZSN3Z0eUgzRjlkUWxjRHRrS3k3ek80Qm9UWjFBeXdYU1RkeVRmeW5M?= =?utf-8?B?Sll5akFCc3R3QmNMWWJJSFZMZEF6WjZpaDE0WUJ3d09IZkxBS3FHVUlzbDRi?= =?utf-8?B?b2dEZGlLL2hZT2RUQUJqSzRueEZRakVjZW9QZDA0aU4rT3FMR2pDWUx5a2o4?= =?utf-8?B?V0g1OTRBcGh5cEF5azBnYUVscHVJQzdRdlQ2WFRlRWRtTWJJQkVrc1dzbFJR?= =?utf-8?B?SGhyelk3d1RtWHZUMi9TOXVMLzhYTnV2U3V0dldvaS9kdUR2L3cxYTBQdU9k?= =?utf-8?B?UWwrRFJobk9Obzc4eURNM1M3cThMNEw2L1ZuRng5ZmxERjY3SGJnREY3clEx?= =?utf-8?B?WWV1RCtiRDd6ZUZoR2RRdDQvM05KdzdHOVNMYm1UNDB2S0lQZ3FQWXF5Y3Nv?= =?utf-8?B?WStiZzZhMHpxWnBvZzh1dUZJbEJXN2NOL3B1N3BJSmh6R0xqbFByUVJUSUwx?= =?utf-8?B?MUZlZ0RCTXErekl1ODQyQkl3MkJQT0lkc1dJYUdjZHlHOEtlbVdFVnlHZ0lD?= =?utf-8?B?OEtJRytTZElLZ1l2OWpRKy9FL2pUSVJ6OTh6WGZjWHlXbUtLb010YmRDZDc3?= =?utf-8?B?SG5wRHk0MEVHOGwrODhZS29yTlVNYlpoWVhJZVFKbkU2ZnZwQWgvZ0sxVGNs?= =?utf-8?B?VXl1MTN6MEk3akJrWjRZRnB5Y1hpb1hEZTVSTHZuVkhyZVRCcFk1YitnWHJY?= =?utf-8?B?THoyUVo2ZmZ4Nnd0cHh3Q0QzYzJZbjBUQ3UvaVpxbnRVM2VKMUNtektkRTNC?= =?utf-8?B?ZVZFN2YzTVBCQkNRUitVNXhndWd1dHFQNk0xN1ZlcnIwWG9zdmN1MytkeEJo?= =?utf-8?B?akk0NFQzQ1FZWEdLK201ZW5acmZLdUNWVHZNZ0dKWjlKcENBWlR0L0gxMmZH?= =?utf-8?B?Y2F5clFCcytqL3FRVEpLZWpHVkxvcW5CK2RPTkJMSThGdFA3bHI4ekc0OFZq?= =?utf-8?Q?LoME=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)(7416014)(1800799024)(82310400026)(36860700013);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Dec 2025 07:59:41.8498 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 3cb271e8-3ff9-41f9-7987-08de3954680d 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: BL02EPF00021F6B.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR12MB8057 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 Sun Dec 14 05:56:54 2025 Received: from CH5PR02CU005.outbound.protection.outlook.com (mail-northcentralusazon11012064.outbound.protection.outlook.com [40.107.200.64]) (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 4EACA30F7EE; Fri, 12 Dec 2025 07:59:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.200.64 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765526393; cv=fail; b=nGfHdUttecqf/ftD7rQ2P1qEO18JHJCZ+vgN/qdEYE48ki9b8QTCKxoj/GxrckRMHSnSnjqxs2AefV5WM+9U7WRANu8p2yxenMYZzFc62VV1GKamMin6wHsww4t5+fB5GFMjd0fHqz3Wf3iWC8i/O4zpBIF7NbaijTqRJpeFQ7g= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765526393; c=relaxed/simple; bh=1JTUnYaMBwN88BupbbAJ9raQhG9A/tKHalgh9CtVNqY=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:CC; b=HWYEsr019cEKMkTmJ7+UnUpAsAxjPmbiY/q4MDZUafCXDhXqNwUXzHvbHLFjXoJCRJN1grdFWmpveudVIe2LV8Nz0D6Y9LmTH1pkVVa8EUgiKuGsunL7r0ARHdtReghP43PG85XXJl10KQBP/+UHCuZFbj1Wq17KkomLZoApFmo= 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=luuknRFb; arc=fail smtp.client-ip=40.107.200.64 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="luuknRFb" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=tiz5RauYsULgrrTffjHIBoTY+hxVpbo/Ckq5Vgxbpuuo3O6PIEZriOldrOM7/dKKGPo45qzS/Nc7Mv7Y5IfUTcbR+ciL2u/ai5/CRA1scYYxG2GjykTpwwjdBdGDnk3S7+b4DjaGzPY3lIMWdXfzNm4C86d6kf8HLOK6Bga1Ni2uZkfKWZG1AjEtgnzLpNlxywrrBg5LB+7/PWsXDTqk1wjly4c2+FnFExoYw7rzId48TpShxs5/MOIOLfyvMYfwqNfz353LaTX3ZMNo2lbGC6QMGGwXxy0X1QOMamNo9z91nZPVJnnWfXQDgk7Kf4yeVg3trwc2WUsipQb0whmmEA== 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=oQ7qZG//EdcC7an3LZrj7ugcHqICLwCOuh1G0ZGnDvIEODQm9HUNH16k1lJV+7vRDD04UltM+k9pf90ojJp1MUwj5iYY0Vwi0iQR4jWSKalOXLA3+s7U66ITsV94szbBpiMA+0p9J/VJAbbfOnBDT6kgrk5J8/ZCzNZ676t/up+acV3P+oma2d2KtYuenFlBazRl/yc6uuUjUDhy4P4B0ZIXdmi2uEe7318ITpnVqkC3tOEl6EMrWa7oHJ55L6/iyMvDmRCz2xtscLX7opHk+BYnohpoXUXHP1mPujyp7T+X9lt/NXVhylbAuHhbLbTUX13nZoneW7dYJFiWSqxscA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=temperror (sender ip is 165.204.84.17) smtp.rcpttodomain=kernel.org smtp.mailfrom=amd.com; dmarc=temperror 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=luuknRFbX9OPxSfP4R6FpRVofAF0yiKOBgTjHW2EEMjJS542tBERQWAxZfEGq85HYD5Z7JCvb0RhdAL0ANWF3+X9WN98t0n71x+qgEbdo9Zwp5rnko3CrPa1tFYIjZSkKj9hVbZsabLEPb6IPsto7DgXBFOFqqz9udjyFmlbS/g= Received: from MN0PR05CA0028.namprd05.prod.outlook.com (2603:10b6:208:52c::12) by LV8PR12MB9229.namprd12.prod.outlook.com (2603:10b6:408:191::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.10; Fri, 12 Dec 2025 07:59:46 +0000 Received: from BL02EPF00021F6F.namprd02.prod.outlook.com (2603:10b6:208:52c:cafe::c5) by MN0PR05CA0028.outlook.office365.com (2603:10b6:208:52c::12) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9434.5 via Frontend Transport; Fri, 12 Dec 2025 07:59:46 +0000 X-MS-Exchange-Authentication-Results: spf=temperror (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=temperror action=none header.from=amd.com; Received-SPF: TempError (protection.outlook.com: error in processing during lookup of amd.com: DNS Timeout) Received: from satlexmb07.amd.com (165.204.84.17) by BL02EPF00021F6F.mail.protection.outlook.com (10.167.249.11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.4 via Frontend Transport; Fri, 12 Dec 2025 07:59: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; Fri, 12 Dec 2025 01:59:41 -0600 From: "Yo-Jung Leo Lin (AMD)" Date: Fri, 12 Dec 2025 15:59:15 +0800 Subject: [PATCH v6 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: <20251212-vram-carveout-tuning-for-upstream-v6-3-50c02fd180c9@amd.com> References: <20251212-vram-carveout-tuning-for-upstream-v6-0-50c02fd180c9@amd.com> In-Reply-To: <20251212-vram-carveout-tuning-for-upstream-v6-0-50c02fd180c9@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/ZANAwAKAV8XsZZKKe6GAcsmYgBpO8thYpFYmhXlTY1S9PSyAzaMjAkVAi/ZqzOj5 KxPIXldwz2JAjMEAAEKAB0WIQQzqV4kW+yguuqHrw5fF7GWSinuhgUCaTvLYQAKCRBfF7GWSinu hmrcD/wODrFur5v49b0dYdGIFh2HSN9SxSwZsU782lGlWPoleLq+ogGp1QietbCffffYab2PvIe J0gC7tm2WZnaClvoCWgfZe+ynKQxCdk0lywVH8sZjkFoQgSbYpttxNfMduQniHhmf7KntZW6Xuo zcqwtD/+TqJ19mQcD6pt0fD3Ln5ONOoLr2IXYFHl/6pk4kHRGvsyuJNu/rE8037oBHD3yjkt0e4 ErjiDecNNyqV27iz8cQ7iPnSXqwgNAKBpEcfIUlpGtYJa/PpAwUWxbM9vvy2PptH+1IP30t0zAp oi4lP2xlrzIqs5Y6egwYfXTP7IQC0qwMTC8FeKGc99iMvPcp/C/T2bSLVo89KxHj1dp0RbWQYMt aOpHrfutz4qrzK1NXci3mQgAaXUzIUHOdV54cAqML2+eYJEdMT30IAT6M9gx125fZTNbc7VlmnA u4YVGalWN+F6oZcjjF7T7dZxXWE0SiTCveIJ+itWWl7t546OHnDQnQiWZ0nP2WoYg6S/a/fgUEh 9AhMaAb0Lh2/OmUYu4QUWh3oJLKXO6LnIjYRmJugwheEQaFdaqxp9YqL5D5Tan0oKoMl/FwJQc8 tjZOrAhsdUBRucTKjYnk46QNxdpMAnbmrHVSpSdF76y9XWaMkkaktcTTBFwYzAE6TClwGWCSumz hUHkuMhfpFT7bQw== 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: BL02EPF00021F6F:EE_|LV8PR12MB9229:EE_ X-MS-Office365-Filtering-Correlation-Id: c36fe6c6-d1ea-4205-1c63-08de39546a48 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|1800799024|82310400026|7416014|376014; X-Microsoft-Antispam-Message-Info: =?utf-8?B?V1dROWgvZk1kN0t0NmYydTFLOFpzM2x3cjJabHVFWitQU2JHb1V3OWFqZjRQ?= =?utf-8?B?SnAyMXl5d2MxUWNSOVpSVnA0VmF4blk0bENVZXZqemowZW5VUWsrREVmNzNY?= =?utf-8?B?QStjeEtoQzR0TUJQMFRGbWRtWGdob0ZsVTVodGVER3l0UksyUm05U0NBak1z?= =?utf-8?B?QWFndzNRaHozeG9mcDBNcjVrVmVWV2xhUEpqZTF0NXMrNTFlQlRwbHpDRnNX?= =?utf-8?B?ZnlZd0JJT2dTMGRLa0Z0SlNLMlhRRUdrQVh0TDh2MDc4cG9MSG56VDZjQUNr?= =?utf-8?B?NU82SFdtRldIRC9tTUp0WUgvTzVOaENyU0FCZVVLaHVJTThNaGdnSDY1R2VF?= =?utf-8?B?NUR2eHNVVXg0WlNuRTI0Szl2U2Z5SEIycW8xc3dBTUcwT01pL0FSZEVHdGJM?= =?utf-8?B?elRpQVB3Z1YwWEVmYkhpK0RsQW5qOUxid1dCNVB4ZWw4NURMVWJWWnNlOFNm?= =?utf-8?B?MG1iVkRZNkdOVXlONi9pUjd5VnVuKy9yWC93MFJ0UnB5UkVUbit3N05SSXNG?= =?utf-8?B?ZWJjaU9pc3lxSFRkVUxpMlhIVEUvaDZ0ZEIxaUYrNCtJVU1mdHFxR3k2cjBK?= =?utf-8?B?UWQ0cWc0TjVhOFRuaE9pTU91NWNWMStjb1cyREJCSUtjUUcvZEowYVYrZGJr?= =?utf-8?B?OGh4eHZ1cG9kK3hwbzQ3b1BkKzRpUUJhNTMxbnVreVRpMUd3L0tMRXI5NXgv?= =?utf-8?B?aDEyYkcwaXh1bUhnaUZpb3RGVkhDY2xZWUErTi9Yc3hKbVZjRE1QeENjUG0r?= =?utf-8?B?VUFZT1VLQ3N1SVFqMmN1RXFxenpQc05VTUVpOVNaMlg2WktrSnBIV0FFQmhH?= =?utf-8?B?R3E3N1lUVm1OQW1kWkQrME51YVBuL1Z3bm1uZkcvc1NMVVFYV0c0VW5pQnFp?= =?utf-8?B?cFE1bERSeGlLOHpMUGtRSDlzZVRwTXZwdFdyNU9saGRUeUM2NkczdWRXZ2M0?= =?utf-8?B?RW05QWwyYVZ0eU9rN0hxam5OZjF0V0FqQUNEQVFrQWNrWVh4V1hid0ltT0pm?= =?utf-8?B?a1VFLzd1Q0FXQ041eXB4OENjWVVLWlBRQjRvaFk1SGhuNHpUbVNHSnc3dEgv?= =?utf-8?B?SWluZndRSjd2Q25KNUVYRm1vZzRxZWFpWjF5SkxEV1BSc1hWbUlFVFg2ZGVu?= =?utf-8?B?UmYvUkJJbVFSS29IcWxpRkdaNDhGQjhPcmZnWmI1UjdZS0ppeGNxK3U1Q3JU?= =?utf-8?B?RjJNODlZWU0xWWJvWVU0WWZJQVJCTkhNbnZtL2Y3aytzL2JHUmxrQnJLTDd2?= =?utf-8?B?TEVuaFQ2V2NRWXhlSE84LzFBR0d0S1RpNlFNYUVES0FiMWlEaFQyamtwTTVC?= =?utf-8?B?NmtxOGRJV0pSS1VldVVDb2p1eGZLVjBPWUFtRmJwdUdUZW9rdldTT1JhZmtU?= =?utf-8?B?Y21xZWtTTFVvNmVLYkZYcDdtbFhIcGNhMkJXcW0vVmdua1U3a2hLR3NDVUVO?= =?utf-8?B?ek13eFI4TjdHajByQXVpY3VjanNqcXZNaHZ3UmM4NzdaZHRpaU1LKzZWS3Vv?= =?utf-8?B?YWh2TFcxb3R3K2ZyOUhyL2gzU3NXcXZhZzZwai9SQllMU3RSc1h5Qk96eGFw?= =?utf-8?B?QVFsL05sY0JoaUd5RE9ncFNvUnJKS1lCRnc0ZXEyaW1DVEh2U1o2eVdWS0Jk?= =?utf-8?B?SElvRk1tV1phVmpZTFZ3V1c4cXZvbVZjVVJBdHZ6cGE1dUVEcTF2eGVMREV5?= =?utf-8?B?ZXpFVmFwc0NUZkpNL0daMjNQV0cxL1dRTExQR0NyajBXaTZwUWNxeTc4a1Bk?= =?utf-8?B?RkFUQlhVbnloak9NMUF5ZzloWC81SDUrcERxTEUvSURGNFlvcEZ5dCtnL3gr?= =?utf-8?B?UERVaXc5V3BoSWdXNDg0U1RPbmd3SFRmWGkyaEVvbjdQZmZwdlh0dDFOUDZr?= =?utf-8?B?NnFjVU1mOGRlTkhSL1FQcTlGWVNHUXFRcUhZemRmektJV0dXVjZBSTVVaTVN?= =?utf-8?B?Y1FYSDRaU0RDNjNyT3pHYkxGbVJzU0JzWXUwcUZoK0ZSUVVzV1hPQVFVSlRG?= =?utf-8?B?bGtybXB1ZkxoZnFpMmFGeTM2QnMxYXVudHVzYzZDcEJhQ3JpaTd3b2JXNW1Q?= =?utf-8?B?eDNCcVY0UUFzQ0c1amtmR1hwbkRhRmpodjlXcDg1Y0RCbGU0WXRwTFAyc1U2?= =?utf-8?Q?E8g8=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)(1800799024)(82310400026)(7416014)(376014);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Dec 2025 07:59:45.5903 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: c36fe6c6-d1ea-4205-1c63-08de39546a48 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: BL02EPF00021F6F.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV8PR12MB9229 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 Sun Dec 14 05:56:54 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 A11C230FC13; Fri, 12 Dec 2025 07:59:53 +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=1765526395; cv=fail; b=je45cj+1CPNG9U7VgWYoOzPZ74r158CxhAbtvg9/MlqXoLafrZ3/DVdgAabK/bkNatGl+REsr4DMfLkePBtTXLJWvoxGHvuZfxkaLfQG1js9emoIrHGNKOFC2gbgt+Rvj6BnlDTmQbrdtiPgMiMwxYQEjNPbaAMErh5XN+RUES0= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765526395; c=relaxed/simple; bh=xAN4woqIXrhKqCpDsmtzoCL+uRodRN9h9QCPgxEdI+w=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:CC; b=JQGidB31SW7jBFL/0MfB0Ki4juq34EN0RFP+kGOKEB6TB31X8VToUWhUsIBc8agZkQZAWWX3UD1KNZ9umJUOFB8kfkJMCpZO6d+BVx+U969p6vHvTwNA/mYQTD+Vkxrbq4RtwVirj8ADqvWFaSr+iummBKQhG+VMEantDObyukI= 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=duanIC9U; 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="duanIC9U" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Y3WUs/+uCFQo5owC/jfJq5MV1PBKfiL7zIzrIjk0gHATviqGuyyXq+n9LEqMlsKTnt6jK+VmPtba2p0j+tCbDWKnKU6zTznyBs2r0hbPK8iM8qJQFdNJq9aJXCMpXPkhp6N3CthxPiH7qMOm9cSQl+0IF/putUOhZm9Lmqnq/yPsayvZIY/a5y0j8FIHOqWC2Iy7YiJe+SPMDO+Ggtr4fgn8IYaTT4cUamAnZIhf6FXPQYXAbTJ1TNDOWBfQ2iif/ZY8Vapr1VQwpekKbfyGOt+pEq5pCF1JgG0lhn2B5w0AnL21ZEbWWqfX9V96d2Nu2oMGtfLyPBynYwggNUWwOw== 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=GLqaZNEUJAHGWqY4zDoGQZISBNThGLcN9aUGmxhxhms=; b=O4IWSJt7d+rqYU/OQDfQNa0NX16LxOtC6md+fasygo+YJBZENlNYmc5st3gv5tZj+eoXATDsGnz0SzCG/DdID/ou+pwJ6+Xf1CILxJseSA51NS5qz2+sPR2UCUi4mH2YR2zHVilOyK8Y5QFqQwTYRjpiUkxjnDumKXrtOl5u64N/2RcKUAjjS6u2RxQhbkP4G3F7LxUM1ceuovfPh3cbjOhH2Dp6trGqJhnxGZOHo+kW110wSE1hamL6LA6yNpA2V0nOFz0bG6RSeuaGvLDAFOwOFoxVOfh0dNqlfok67JvsJyE+ElKHrhjpek12VxWPW8VXaBvy7diNTjy1vS4rXw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=kernel.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=GLqaZNEUJAHGWqY4zDoGQZISBNThGLcN9aUGmxhxhms=; b=duanIC9UH4sQuyRNtcS6WuMww/8++bTJn0dR56LnU9800+q9idu+OTLMPvanHRX048c8lLAKauRdi6VycYYdZQkLiMMg2IbhZm8qRtN7jGeyv+sZRQP747fQCGS43yKn+PF5hsAaFKgzG1chjQ2Gi/ET6byWwe5nEF2vC+5xtUY= Received: from MN2PR04CA0010.namprd04.prod.outlook.com (2603:10b6:208:d4::23) by IA0PPFACF832414.namprd12.prod.outlook.com (2603:10b6:20f:fc04::bdf) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.10; Fri, 12 Dec 2025 07:59:48 +0000 Received: from BL02EPF00021F6E.namprd02.prod.outlook.com (2603:10b6:208:d4:cafe::12) by MN2PR04CA0010.outlook.office365.com (2603:10b6:208:d4::23) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9412.8 via Frontend Transport; Fri, 12 Dec 2025 07:59: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 BL02EPF00021F6E.mail.protection.outlook.com (10.167.249.10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.4 via Frontend Transport; Fri, 12 Dec 2025 07:59: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; Fri, 12 Dec 2025 01:59:45 -0600 From: "Yo-Jung Leo Lin (AMD)" Date: Fri, 12 Dec 2025 15:59:16 +0800 Subject: [PATCH v6 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: <20251212-vram-carveout-tuning-for-upstream-v6-4-50c02fd180c9@amd.com> References: <20251212-vram-carveout-tuning-for-upstream-v6-0-50c02fd180c9@amd.com> In-Reply-To: <20251212-vram-carveout-tuning-for-upstream-v6-0-50c02fd180c9@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=5664; i=Leo.Lin@amd.com; h=from:subject:message-id; bh=xAN4woqIXrhKqCpDsmtzoCL+uRodRN9h9QCPgxEdI+w=; b=owEBbQKS/ZANAwAKAV8XsZZKKe6GAcsmYgBpO8tiFHfJFYCqk2v9WfIHsqCQq3znPVsOFL5hR 8/PbeNZ8QaJAjMEAAEKAB0WIQQzqV4kW+yguuqHrw5fF7GWSinuhgUCaTvLYgAKCRBfF7GWSinu hvEiEACntsr5/3uB+25YKltcbnuwIDkij6DP1dZh1T5vftjaJnESQrvUW0p4MFpiyXf8LiPpW3d +dBevV9mzzHCox0kz8rEQNlCA7BWvZxnhMdXpuzJOLNoK2NuYewmcZIPeb4yWbYsCEgvY15mrfk QexqTyvfsMIcEGFQpCRIOhmo6VaAjzdJq3DO1aQn17PT62fx+NVCkF6irizIMtNmXvqidbI7rTi IYmgFaBYMj42ihVOC3xoB762BIbNOqaiMIaL8CsUQq6StUiaLSCGjFIV1qyVoyCZsFihOsKi77k pscgn91UTStg8UMBrvgFZvb+RHiWPqwjrkmkf3u+0Pra7VaZD4NbZP7PJQER1QY+w+HMGvCPUP1 W1kdcTD7VU4zw7FiWWC3KpeGUtue6YrNEUk9xBUxyAybKJIn0daTqrca+z7tao3kBT+Cmvsb8c5 IL+6ebC6gVSwDdUZUYl1a3exHyIkvhutOJyKI+KRsYN+wGZ8dHw24b0HJUVOKvWIvvBcuzREtoP k05jRODZVFLzwrGZ0Ctb+U/FimeZhpBKNqHISrjvCeNxZQo/h9dCWK451xMPt+fvc1ouh+2cU7F JUfgkP1OnC3yXYQKnIBqNT+0BZ5CjecZX6t/KYNPnjj46Qfc7jjQnW9x3HdvnR8FBcvI+rqG298 yqQppJDAz2OSCxQ== 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: BL02EPF00021F6E:EE_|IA0PPFACF832414:EE_ X-MS-Office365-Filtering-Correlation-Id: 667a3a63-5343-4389-334f-08de39546c21 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?clA0QVNTUk4vdzJia2J0ejJzTzhTaEplaWgwaU9ZZFMxL25HeUFmQnhKWk9z?= =?utf-8?B?cnU3dGNXL0lJdVIzQWxMczhpUW9LOG9VdDVrTWRieWs1OTlDY2RqaEZwbzZm?= =?utf-8?B?WUxXenZCYk5RZGFhcDBBL3lRQXgxM0pibkJQWHFQbUZTcVlkWUxXZ0hTb3Qy?= =?utf-8?B?YVBsc0JtSjVjYk53QW1IcVFNZStKMDR4cjRSc2xabW9ZK3hhUy8zUTlwMnlN?= =?utf-8?B?RnZiTUIweDc1RXFFTjhnei8xMERTdCtnUzd2OXUvUnRoeEJnVUFYR1hqblNX?= =?utf-8?B?S1hmUGp4UGxzRWlEdmw5VzV0azFYdlFsUVJ1Q2xKeWduTjdoZDlEVEgzb0pm?= =?utf-8?B?Q1BqQzFKbzBRdjM5RHZ3Rk9BRjh4TkFiV1dnQ1RKQXhubTlsMTBDRmhjaFVE?= =?utf-8?B?aDBwbEI3UGFIbzhkTUg1WmZndVlCL3RjK25oU09qMjBzQ3ZSMm41dVEwT1N5?= =?utf-8?B?T1lsOFpyMmhhTXNreStTSURxNXdzYkVNekFYZzV1Zy9KOTNDWjQ4Y05GSUQ3?= =?utf-8?B?SGU0TzZXMXdqTFNIRWQxTU5BRjVScmNaQ1czUVg5KzNqazdMc3kwV1ZzTWE0?= =?utf-8?B?NEprdEVTWmNxTUdpNGVuL3crc0FoUHZ2Yll6MFc0R2lYRUd2Y01qU1J5ZVlY?= =?utf-8?B?U2xTWHV2SjZQZmJLWnR4NWc3b3A2UnU5N1hzdmF1YnJZMG5NYUxadUZqUnJm?= =?utf-8?B?UWJtcm5SR21wOTVhNkg3SFJQeWs2VXNkRTU4NXZGRFRJc2FVZWMyaUxGOTRa?= =?utf-8?B?cTdpUmxMYXpGa2pCQlJvQTJmOXR2K3hTV1dDaTVNbFZOUjcrcmJScWNGQ3Rs?= =?utf-8?B?bjhJRjlCS1NYVEtNeWdhL29FTGZjVjM3OHIwOElCeXRVNE51VXVsckMrTkJZ?= =?utf-8?B?NkVkWkRiWHZWME9oRjllRFlCSUxoWjZaSXR1cTl4SGNOVWJNWnNLWktqa1ND?= =?utf-8?B?YjlOZnBGZTlEZ1JUUFo2enRrUXcvQ0RjTXYxZERCV3NaSWZma0dmamZWWlgv?= =?utf-8?B?SzdHS3dCcWRLWGlxOWRvY2VZUWlUR2dlUWZrYlIrMktibGk4c3F6QVlxNzRB?= =?utf-8?B?SGtFQlBjNnZyOFB6UUE2M2YyL0Zha2d3Vi9XZTByZzdhMlZMV05yWEFES3hL?= =?utf-8?B?a1Y0emo1VHl6cjl5ZU1QQWV6RE9zTDZtYjE5TGtydFUvcG9peFVva0czdjJW?= =?utf-8?B?NkJZSS9QcW1qSUozUlJlbEkydXRXVjdseVJxcDk3WnpNNExPWVVrMzIyN3o3?= =?utf-8?B?aDVnYVZMMEU2blI5WWZiTlprWHZhblFFdXIzK1EzaFZDcUkrUlhUS2NGZ3pJ?= =?utf-8?B?djFaYWplclJEOVJmUnJsRmVxb0xNU0R2STZIZ2FlWThXOFdEWmJ4ZkU3ZS83?= =?utf-8?B?TTVsTlREVmpscGU1TW5ybHZteUl5S1lLKzJ0MVJvNTFtUG4zMHQwUk1tQW0y?= =?utf-8?B?bEJJQVp5YmlBa2xkRkNPZ0F6UXFFK1g4SG9tTmVROXRtM0xFM3VDNzN6emU5?= =?utf-8?B?dzIrUThqMmJQaFNvMXAxVHBJZjRrUUlteU03MWp0dlV3U3lQdXpEMmx2T0ky?= =?utf-8?B?d0tqdnRleXJWRkxKU1FXOTQ1M0tuci9wRjZZMHdVcTZPbWVlTTJsR3lNcno4?= =?utf-8?B?djBiRFJ5Ykl5QW1JRktnNFcxYmw2TVg3dzBNajZkZWk5Z1NDOXQ2a0x6dXBL?= =?utf-8?B?SDR5d1B5WUtOQU05NVpwSXh2ZHRrTnh0NXN6OHpaWTlVQUtoQWprazJGUGhp?= =?utf-8?B?SytucVBEV3U1U0F6Z1lzWFB1VSsrNDgzVFZ0dC9STElDVlMyM0lBRksrcFEy?= =?utf-8?B?RVJWV2V6RWNwRm9oUVA3bk9INjZGWDUzYnVCNWZqM2EyallGZ3N2OFJzZDhM?= =?utf-8?B?RTYyTW9CQWQwajFUbjJheXZFUUhPYWI3UGNWQW9mNzd1REtuRFBpeGJ2TWpq?= =?utf-8?B?MVFBc1BBemtrZENRc2g5RmsyVW5TLzZWNFBhMEcxeHpLNUtBM1kvVE9YeEs0?= =?utf-8?B?UDdxbGV6SWJ4cEd0RXo3dmtUTUZhb2FvcyttQXhXS1RWNnZIZi9sYURVUVhj?= =?utf-8?B?RGU4YkJJVmpybDJWZzRuRnNMMjJXVWRFeGVjSVVuU0pSVGVFUXNtNXprOThw?= =?utf-8?Q?PSVI=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: 12 Dec 2025 07:59:48.6902 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 667a3a63-5343-4389-334f-08de39546c21 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: BL02EPF00021F6E.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PPFACF832414 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_device.c | 143 +++++++++++++++++++++++++= ++++ 1 file changed, 143 insertions(+) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/a= md/amdgpu/amdgpu_device.c index 903c4706040d..e78e6982312c 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 @@ -417,6 +418,146 @@ static const struct attribute_group amdgpu_board_attr= s_group =3D { .is_visible =3D amdgpu_board_attrs_is_visible }; =20 +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 +}; + +static void amdgpu_uma_sysfs_init(struct amdgpu_device *adev) +{ + int rc; + + if (!(adev->flags & AMD_IS_APU)) + return; + + if (!amdgpu_acpi_is_set_uma_allocation_size_supported()) + return; + + 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; + +out_attr: + mutex_destroy(&adev->uma_info.update_lock); +out_info: + return; +} + +static void amdgpu_uma_sysfs_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; +} + static void amdgpu_device_get_pcie_info(struct amdgpu_device *adev); =20 /** @@ -4492,6 +4633,7 @@ static int amdgpu_device_sys_interface_init(struct am= dgpu_device *adev) amdgpu_fru_sysfs_init(adev); amdgpu_reg_state_sysfs_init(adev); amdgpu_xcp_sysfs_init(adev); + amdgpu_uma_sysfs_init(adev); =20 return r; } @@ -4507,6 +4649,7 @@ static void amdgpu_device_sys_interface_fini(struct a= mdgpu_device *adev) =20 amdgpu_reg_state_sysfs_fini(adev); amdgpu_xcp_sysfs_fini(adev); + amdgpu_uma_sysfs_fini(adev); } =20 /** --=20 2.43.0 From nobody Sun Dec 14 05:56:54 2025 Received: from CY7PR03CU001.outbound.protection.outlook.com (mail-westcentralusazon11010006.outbound.protection.outlook.com [40.93.198.6]) (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 A147E30FC38; Fri, 12 Dec 2025 07:59:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.198.6 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765526401; cv=fail; b=ILk7vvo0YoVdjQ4yxC2Grsg7VqUXBa59W6ePfDWmyMpruhvaTbhrv+IqNi2jfxAEvJ39/KUm4mxyCyvKhz40EgZLNCdGwX7HCCw1XORgNcX/lheZRRnjjHwRFwdgpwqkJiLwqP9Oa2xua0vbQMhchMJFxY+aBrOC6AlP1vqY+vk= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765526401; c=relaxed/simple; bh=yQdDEMkJoZqecXdgHB1NDSmL8tHRPTgujFwa3VxSL38=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:CC; b=OyoPlpE3qYiuXrRUOZWaELGdpazux91GTPu2HSy9QiuLVGeSz4XS1Wkyn8J8C7oEFtMps+UUgXLbL76GQzEjjQd4yU+jkDQD3Pq6Sd/L/qAQrt1Vd0IYOyOEls+zabOlzFlo7PQJQfEhCoANan3RfRfazcpAHUgF5WFJ/5Zf0t8= 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=asmmag3N; arc=fail smtp.client-ip=40.93.198.6 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="asmmag3N" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=sPa+nGShgYjpbBzwdg5geFMVkxdBNc6CpksZ2qpJ0jgeLgQ+2CEvmaswi0xKikaJKDAcFRpsSOq6YVTPlTj4bdnrQfWXfQaHY/dPpRt2KQ/uTWulnqXfIIxTGlSHtDKPHur3bVyhIuf9TvSWZvAo2jeUwJypVlALi9e8EWxp6E1bADZPJ1XZOJzauzO/4G1ScDUCZjbVR+vRc8M+wAnp9VMw+4fN+oC39XX71PGlzoR6f9D3MdSPbUCTmRwXm9nZKoTxhsI28eFrdPI3DUq9jWL+rsG5MjCGEQXVRH/40GwpVAof5Obwjb6MVyiMS6v4bgvBoGxfyGuYIAwxEOrB8g== 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=r5OPfoUj+YiSS+3TPGyEd8tQHaVeiHIwC0unXKKD6W4=; b=g/cOKuwqRnIwfn2gCjbmTe9OzLEiaD3LBnDtaYD/BSC5RB4aY2O8fANmSNA8M/2mr1fzdD/OHu8EEaNk3E4qiJlCgLH1Ed2x47tY9P31Erqi54ZJMAVacUUssWLkMbnw25Eg7+nFxNReGIbkgkok/yk3h7ckAlRF6i5HgRdokw+o/HCN6hnn/TWisdfmzc42X1goUjRnyAu0CmMTCH7gZ90YvK1i9TfAbkP8V4Fr7fCHc9obzghgFQg3D3TpidaKt5AaEbWEaY9BKdjHwZ0wJYYG+SbUn+2YVy7p2v+mVWgIDwu7RjYkKzUqdeva1oogR9gVChq04wjjcVGIkjsyUg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=kernel.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=r5OPfoUj+YiSS+3TPGyEd8tQHaVeiHIwC0unXKKD6W4=; b=asmmag3NFmRgZSShwGOxI8wnwNtR8YrM7jZhWPVJzlEPQLphimea1Bym/BJHe7wzAF6AZVsFjqcr/72CaDkgj0+zIs1mRvOt2QKwf9mFG4qhGVH0nbSbO7Q0WI6VwSFXMj08T4VICgz08Od44IdQDRD5RjoPMStM0yZW0FXI3ZI= Received: from MN2PR16CA0052.namprd16.prod.outlook.com (2603:10b6:208:234::21) by BY5PR12MB4100.namprd12.prod.outlook.com (2603:10b6:a03:200::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.11; Fri, 12 Dec 2025 07:59:54 +0000 Received: from BL02EPF00021F69.namprd02.prod.outlook.com (2603:10b6:208:234:cafe::2a) by MN2PR16CA0052.outlook.office365.com (2603:10b6:208:234::21) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9412.9 via Frontend Transport; Fri, 12 Dec 2025 07:59:52 +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 BL02EPF00021F69.mail.protection.outlook.com (10.167.249.5) 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, 12 Dec 2025 07:59:53 +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, 12 Dec 2025 01:59:48 -0600 From: "Yo-Jung Leo Lin (AMD)" Date: Fri, 12 Dec 2025 15:59:17 +0800 Subject: [PATCH v6 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: <20251212-vram-carveout-tuning-for-upstream-v6-5-50c02fd180c9@amd.com> References: <20251212-vram-carveout-tuning-for-upstream-v6-0-50c02fd180c9@amd.com> In-Reply-To: <20251212-vram-carveout-tuning-for-upstream-v6-0-50c02fd180c9@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=3210; i=Leo.Lin@amd.com; h=from:subject:message-id; bh=yQdDEMkJoZqecXdgHB1NDSmL8tHRPTgujFwa3VxSL38=; b=owEBbQKS/ZANAwAKAV8XsZZKKe6GAcsmYgBpO8ti9q4CTN0kX0vNrCLbiYaNlg97Myn22Y7WH wLCSCFu9HGJAjMEAAEKAB0WIQQzqV4kW+yguuqHrw5fF7GWSinuhgUCaTvLYgAKCRBfF7GWSinu hnB+D/96EyrG1hep6lgbYRPFtXJZmVjsjyqXJ39L2IAdr3/2SZ8Vsx5+EuobSEShAIQZCfOtFQD igwKu2Mpz2j8//CcZjRooRbraEu+B35/fThA+lXrLBi/wiN2LkY96eDqHw+utrSvxg3CsKdjHTQ It6yFCECyTVHCt+F4ymcFgIaqKbcer5QmD0+H2ihRC/Wl8Z+Og1V4tm7pf6r/6V+raM6eo3lvna pi2+Z1fxFlMzpNCBFYg7HuxzlPFu8uH3FbRzZhd6vkl/t+1RRvU3qD6NV00JZqMvM2va52UUMbg 7XPQDPBGCYw4lw2X6l4Xiu6GCXwm39l1QRr6KkX7GTu3WMveWQyoiaToHGQoQlbhXtB0R9z6Vh4 AhcUHSOIqikOQwZfw8am4VPOpP4DLdL9edndEwiAIqGNQ1PyECyD30b5HU8unqlYW2wnve9TJio yTF9FHKG390s6DtAvX8yKPNw9Xv3vzP9UuyVuFYgdl9jeON0ifMQuFs2R3ByBVNPfrYbCCbgL6o 7wXrYdiuMFf3dmtF2oZu0qx9ZD04k5zEmzwSHafTdX586+p3DPVjkpyGjddO6vqPWUw8u/qtVqZ FPfYzqk0L56dhkempVywSdusNx8005EhNT6kuDfmGmWPhdEms8MgpikJh0Mz+8/V02Ixds1IXvj +5BCaopBvcwOgUg== 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: BL02EPF00021F69:EE_|BY5PR12MB4100:EE_ X-MS-Office365-Filtering-Correlation-Id: 723e1b6c-22ab-4f01-3e2c-08de39546f07 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|36860700013|82310400026|7416014|376014; X-Microsoft-Antispam-Message-Info: =?utf-8?B?UW82Vmt4eUZUM3FUWXN0d3dzZklDbWVGWVpmRFByekxMZ1R5bG90Rm53bjF5?= =?utf-8?B?b25WNTkzczZWWS82M0FRYXFyOUhwbWRmQTVVQUZyeXZVQzlvRldMQWExQlQx?= =?utf-8?B?VTZySDZZRU1TZ3ZtazFQdVNEeDlacVZkRndzKzg4RzdFV2wxUHBpNmxzTzhr?= =?utf-8?B?SUdhVmd2dllRc2tVU0N3WWpGTVlYa2NIQmRyTHpISW9vN2NKeUMvUklSeW85?= =?utf-8?B?ZHQ5MUFETzZ5VEtDZ3did3dKYnpjWG9HL1dGelBGci83RHArb0cxOVd2dnhN?= =?utf-8?B?dE9vRXl0SVlhZHlHU0NYVTVJZGdBZ203bVQ0TWQ5NnV6Y0c5TFFYR2hISmxw?= =?utf-8?B?TmNkOEdWU3ArWFhvZGloYTFjdGlkVU4rNkZkNEE5Q00zZVA4dkFmNDYwL0JO?= =?utf-8?B?a1RoU3ZGc1hmVG5XMG5SbXJUVHk3WkRsRVYwMkI2ai9KT1dKd0ZlYUJNT0NF?= =?utf-8?B?d09Nek5SUG1GOXZXSG9wQnZ3U3NwczgrS2ZhSUl1cFBlTGhNcDl1bldobkd3?= =?utf-8?B?aFl1MFBHVEZRdjRhVU5FNkthQnJ6dHhLNHpoYllQRnpOQTJyVENmVmJVaU9n?= =?utf-8?B?alVDQlRiMXZleDRZRFk0ODBTWHBDdDc5K1dNKzM0dmh4aU1TODFHYTRuekdB?= =?utf-8?B?OEg2TTZaS3dFa1Bza2I5bE9kOTMvcE5sUWxKU0pPZis1TXRXcnFYaDVnZUpT?= =?utf-8?B?aXppVjZkZlhDc1M2SGRpc1ZHVk95aFBrTWNtR3ptWEpvUUhheEJhVU1vYXlj?= =?utf-8?B?VkZ5bk1qRUw4b2F4M1VLeWY0MVNqa0dlWS9xa0lOWVEwa3YxY24yUCt2WGVm?= =?utf-8?B?V1dESDlGN3QzQUErd2pFTTRmZHhaV1JaTnNyVDVNek1NZHQydW8yYk5VdXky?= =?utf-8?B?U3IrVGlYMnRpZHdlbjNpN3NONTY5TGNrRlJZVERLaGRNVm9lcFpORUtvQTQ1?= =?utf-8?B?blpWa1A2Vk1uQ2pCWjV4NkNXZ1lWRWZqLzVYZTFDVm9zZVpMWm5PUHp0cHdT?= =?utf-8?B?RUt5MVpqVU5zZ1kxcnNKd3BxYnBXMSt6L09zaWVNOEZNZGtOK1h4TDhidjhw?= =?utf-8?B?eVBXeW1EZm9tL21MSGQ1Z2p1UlVtMWE2RlByZFlZSTJmeFlIVSt4OTBCaU5j?= =?utf-8?B?U2hGd2hwWktPN01EWEJLQ1IwYWFRc2dwTjBvNEtubkE3dXBmUVlhS21SblVL?= =?utf-8?B?NVhpcjhxRk9mVjl5a3hjL0VJM2dZVDM3SEI4alJuMlN6Z0NHTG1ya1hkS2t5?= =?utf-8?B?UWwwbEFGdFd5Z296OFFRVzAxcHNpOXBuNXdwYUJuOWJ3NGFvWDZId0o1T21X?= =?utf-8?B?ZUZPY0NVNHRxVWtQL1FFSVFwR2x0ZUQzdGV1MHhOa2JDUGlOV1BMYzc5TWtz?= =?utf-8?B?aFR1ZkxVQ05zanNhV250NjJCRllkaWM2U0FHSFZTY01vUWNnK1VPREFIbjhi?= =?utf-8?B?YWZTa20vbzBRaUxWSVFHekZrNkpoTWRkWTZ3cVhRVEdPWVBvWmlMZ09sYkZ6?= =?utf-8?B?ZWFWNHpPOTdKcnhtaFNpZ3pETzZwc3ZoOUYvWGJaR3JXN21FRm5Denpmdk95?= =?utf-8?B?b2d2VXlFbEF3ZDFTNmsyMHJQL3pnSFAzenByam1lbm14WWU1N2dKTUJ5K2Fk?= =?utf-8?B?M3hhdGVxWGFhTGJDSFNuZS9weUhZNmRwUXBzSzU0KzhjRzJaL20rTjd3MFBm?= =?utf-8?B?ek9xakVsTURTcHFKUi9HR2IwTDZEcXpxYm5ML21tNi9JN0RCVy9xWTA1TUlo?= =?utf-8?B?Ry83ZEtTL2I3TU4wcGJPZ2x3VzZDVi81aDVTakkvekIyalRYN243UDdGRTFD?= =?utf-8?B?LzZVTW5FRlE1TVlkUGlYRDhCcTBEOFgzWjdlekhpNlJ3N1BQV2ZzdTN1Tlgz?= =?utf-8?B?TlQ3NVc1a1QrR1pyMm5rbjB0Q0w4Y2kray90eFdQVytiZU1PNzZDVVEwUDJI?= =?utf-8?B?dGVNRW5RaVN0VlMzZ2ZxQ3ppMDFYbGhtanVjNFBLVWhZT3l6bVBUUzl1M0xO?= =?utf-8?B?cERJaWVrZnpKNG1wTy9nNTNyRjg1eUhVQXkvcVBpTkczMEZjeFFVT0EzV1Ry?= =?utf-8?B?L291d1NzQk9LV09GSERyTHpZSWdpcjRkL3puMXhuSXhqNkpaMUFMZjI5Yk50?= =?utf-8?Q?BDD4=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)(36860700013)(82310400026)(7416014)(376014);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Dec 2025 07:59:53.5542 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 723e1b6c-22ab-4f01-3e2c-08de39546f07 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: BL02EPF00021F69.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR12MB4100 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 e78e6982312c..0271487e790c 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c @@ -418,6 +418,24 @@ static const struct attribute_group amdgpu_board_attrs= _group =3D { .is_visible =3D amdgpu_board_attrs_is_visible }; =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) @@ -450,6 +468,17 @@ static ssize_t carveout_options_show(struct device *de= v, } 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