From nobody Mon Feb 9 12:04:30 2026 Received: from BL0PR03CU003.outbound.protection.outlook.com (mail-eastusazon11012043.outbound.protection.outlook.com [52.101.53.43]) (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 999E22BE7B5; Mon, 3 Nov 2025 07:54:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.53.43 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762156452; cv=fail; b=gl7hvcGUR1AecC22k1ZJgZ0Y5hf86bypxepbqqLcwtAwzbyNzEU+TDZUZP/oD3k69bKA9Y2UBlniMWk4ubn16yxTQJ9yMVSyRIjq8z66284MQp6Bzylaa5RPFJJw98LAX3uwV3zedDRSWr7oqyoQt+6IQIGOTE/V+bt5a92Sicc= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762156452; c=relaxed/simple; bh=ZyzH78pozkjSK9YedX85yAZ8jZCBI2sgQzw1ZDTyub8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:CC; b=tTS1vCH2G66azdWEy+FASaJj7iGwIi9Xm0C+oiHDmucr1Noks6Sv9K0PscPQ6DEaHae2tIoie7cUMUn8Ml+Uidb7/SZdYpFgRV2Zjj2kSAdLn8cPiDVxR7T+xS2WVDAFuVe8NZnJxWPR6j2FM8dnHYLrIHpYMYhZz0SLSRBbaP4= 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=4UlAqZ8M; arc=fail smtp.client-ip=52.101.53.43 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="4UlAqZ8M" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=D/oXcp6WqdnbxfqZ3u+TicL/9JtiCeuVBvi7+x0XoFWSVQlBt62py81hunWo+vYGzyEc5Zn9awQh2LYkjhl6CKjCYm86YSzgteat8feTSq+bIokCI8RDrfYrm6j62dOYev7oEVBB1BqeDW01+bu+IUvcqhjERRhOmgTUZTds89rgel74ijB//1L//qJrV8XI+88TlxHlZ937zUHkoaxFtWqkDhom6PB03dKSPWn479imYqe3hexEY6JIAIAQjB5ccJioY6N1Nj5AgJPAFTn1rz8fpK9NOePiEm/zFVFSJhl9EZUXrdy4eAeSMMQQgW+jzQImjG9HavsY6WS02kvHlg== 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=WEaykcVm/FGMf5I1VgHANo9oJ3iKOXkWtPWqiPIDEwE=; b=UhM5EB4mMSJLol4H1oEGdDifS4+m1dSrSe6+HhQfgCzdTBeAVR7uai4wLWHUK63Gmd49HW/auVASThBO+d29nrhHWJvpyGMlUCfPnAb2Ebq7O6Nhv8lMUm+UxcvktVEFJ28NdsKBUOfD1NGAXcahs1YiyKw93nL9OmNf1w8hfqGtkFlb8wjAk51XQP+He9PadtNTBPexLjesF2eKIcEnTQhrYKgIbm45QCd+Y0gp4XON6y9a23Z0GmvD8PC9lCUYXOHE9PEH6sapRvEQAh6bCSo/iXrClUFC5/Bhem3ojGZFcjf6FV1OvbvQ8xj7AjH3BS0R4HBOsQF+P5XR4h7B2g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=linux.intel.com 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=WEaykcVm/FGMf5I1VgHANo9oJ3iKOXkWtPWqiPIDEwE=; b=4UlAqZ8Mv6JQmS8DivNipsbSlRz2+bjht+FxkqnWulTRbNUbFLoqBGxkKo56b2GJRcZ8/UUB+EOqLlWzJh0nfT6fP+pyjB12RHpgyOfD0VrwmVfF8gbcRdudJgZGAek/bgYu0u24DXPINynHETky4W0QFZ7abEwXBQ7h8zkWC2w= Received: from DS7PR05CA0018.namprd05.prod.outlook.com (2603:10b6:5:3b9::23) by IA1PR12MB8554.namprd12.prod.outlook.com (2603:10b6:208:450::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9275.15; Mon, 3 Nov 2025 07:54:03 +0000 Received: from DS1PEPF00017093.namprd03.prod.outlook.com (2603:10b6:5:3b9:cafe::2f) by DS7PR05CA0018.outlook.office365.com (2603:10b6:5:3b9::23) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9298.7 via Frontend Transport; Mon, 3 Nov 2025 07:54:03 +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 DS1PEPF00017093.mail.protection.outlook.com (10.167.17.136) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9298.6 via Frontend Transport; Mon, 3 Nov 2025 07:54:03 +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; Sun, 2 Nov 2025 23:53:57 -0800 From: "Yo-Jung Leo Lin (AMD)" Date: Mon, 3 Nov 2025 15:51:04 +0800 Subject: [PATCH 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: <20251103-vram-carveout-tuning-for-upstream-v1-1-17e2a72639c5@amd.com> References: <20251103-vram-carveout-tuning-for-upstream-v1-0-17e2a72639c5@amd.com> In-Reply-To: <20251103-vram-carveout-tuning-for-upstream-v1-0-17e2a72639c5@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: , , , , "Yo-Jung Leo Lin (AMD)" , , X-Mailer: b4 0.13.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=2465; i=Leo.Lin@amd.com; h=from:subject:message-id; bh=ZyzH78pozkjSK9YedX85yAZ8jZCBI2sgQzw1ZDTyub8=; b=owEBbAKT/ZANAwAKAV8XsZZKKe6GAcsmYgBpCF8LrtwPrzXwKL6qrNRBhVwz/uM56Yax4JaR/ jyzltcR/16JAjIEAAEKAB0WIQQzqV4kW+yguuqHrw5fF7GWSinuhgUCaQhfCwAKCRBfF7GWSinu hjnKD/iCmATCQMV2GYYfJcR7hQbn0Yw8VQhbk4yC/Mo3g8PK5Jn7uE5L0H2MHgN+gu+wNDeWy0k MvvXo3nfPgR1swwvZTYAoleNlB0WVmQ0wT8HM+3SjmMOYmY3gYWJhQFeTTkgJcMEjo/d239aOsZ 0s/TXzc529zwwCVY+ChqMjW91bH9YFEczwuVvX4z/njTM6Xboy5m8lHW/k0fI4QHfmhkEvSvxJu zwCLxcPtGTW+MKmdwmLzN2DYrUixyVgQLDJYgGL/zLQcxPTNZgrtllXqY6Mbr3ycajQQGUJHMQ/ uPFFLRxNG4DEaCIRGRC5PyaG9kzw6KfFypnFfs6+Qd5toaVVip7hxePxcFfPcpcPIhJQHYs/U9k dnEQ9IOYSscXzlv9o+4Y3A7wR7qD2GB5DqYdQ5mBCXE06kuuMuNKDXtW8+YpLj2qlDax2fOusWC +gk6BjYVLpbop4JTmf7DkwF4ZB7W3VdsOcrT+m/ybJR5EXv8fX9Gc2bpsKQMRbl5fgqUgZC6jAz rjzn5o+at7QGqTsR5IzDuuV0SlB7C83WR8SNfubhZ3NxguWpY7b5cJo5Nfbp0THW+/nsB2IrOfc JCSt6tvjADqXsIku6w+Sk6nphOpT5kR3W5/zuIQN+r8Vs7Tui2h7FMVhEyIQ7ccjDKvhc2XyINn d+7y0Jag6tN71 X-Developer-Key: i=Leo.Lin@amd.com; a=openpgp; fpr=33A95E245BECA0BAEA87AF0E5F17B1964A29EE86 X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS1PEPF00017093:EE_|IA1PR12MB8554:EE_ X-MS-Office365-Filtering-Correlation-Id: e0f3f961-ac46-4cd6-207b-08de1aae2837 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|1800799024|36860700013|82310400026; X-Microsoft-Antispam-Message-Info: =?utf-8?B?MkR0amdwcC9uNnB1azVqcUFCZkZLTlNyNHV3ZER2SnFySU1SZk1JUGg1cEFF?= =?utf-8?B?UmJJUzcwd1BvZWU1ZC9YNzVoMkRya2JocUpySWhmVWFIV2RLQTF0dGNWYjZY?= =?utf-8?B?eWVCSUdqMk5vL0tVazd2b0tqSjZLKzZNN1FTTmpLanBncWMrWG9uMU1XZlFZ?= =?utf-8?B?MmhPK3dwOHRLU2ZhZm96dUkzSTM0UUZuNXRscWVLZk5WcUFFY0tZZWczQ0cz?= =?utf-8?B?elh1Zk5RWi9xbWtYSmlRN3lHRXhrSC9YS0x3NHZmTFVFaEY1MkhrVzFXektK?= =?utf-8?B?MFJSdTIwY2tkdFhNc3RLN25VQitiNTlMYXB2bjhreWZURkcwMGYxanpIdUdP?= =?utf-8?B?L3ZQWXlaUVNPWmt0WmhBRnpMdEdOOFlaUDhqNFdpYVQzZ1pIT2NSWXhmM29W?= =?utf-8?B?bDB4b09iNEJpNmlXWThhd0lUOWN2ZFB6M3dWWmM2bzIveWpVa0xJY3R3RXpo?= =?utf-8?B?cGc1Z3ptVllwOUJGQ0FYY2psb0tMaHBLVzA3UjdmeG5vbkYvdlRnejljU2U5?= =?utf-8?B?dDJERWxIOXNlemRUODFJK3Z0eS9ubmpoQjNIdklzdkVKczlKNnJhZFBVYy9F?= =?utf-8?B?K3lBVGhKb3lEK1RGblZLc2dvNVVFbStyN1pLVFZNSFVrU3ZkMXNQRUMzY1Fj?= =?utf-8?B?a08xWkZZc2RNclF3UE45M2hCY2RtSVd3N3BXZDY3RVoxbXVUQWl5OS9ubDRv?= =?utf-8?B?V1VLQ1NkUER0Q1c5R1hadUozM0svY21KYWlVRm1DN0VYMjQrVm8yZFA5Zk1P?= =?utf-8?B?QVI4WU9TbzZQbmNFWE9Za2JmTWEwMkFETFpjRTdoZjU1VHVOdmVROHY4L0hu?= =?utf-8?B?T1F0d0JBRzFMY2ZKbnBtYW1YTkdPcnA4TGFkaUhpNUhDZzh5d0E5OWxwbWNw?= =?utf-8?B?c2J2d3RJVmxKK3BsdGZQTld6aW1nVDFmTnhnZzMxQzNNNDdvSFF3K2wrelB6?= =?utf-8?B?SHU4QlhVblNZeFpja3ZRMHdsQWo5YWJhelBhOVBqQ2w1MDVydUZpeDRkejRQ?= =?utf-8?B?UmNuSVlrazNPTWZLVzVVbWhqUS9LaWd6Q3hSTGFweTQxc2wzcXhFZGh5SDNm?= =?utf-8?B?OGMrTVE2d08yVDRxUUMzOUhuU0FMRFZCVGFTcTFZRVB1ME5xUjk4ajh4c3pD?= =?utf-8?B?RVd0UE92ZEtseDZtc0tMeU1Ebys0MEgyYWcvQU9yTmo1cDhSR0xoakgxMU5h?= =?utf-8?B?T3hnWHpNMXdJMVRlbW5PMVI3ZmdObHF3SkpnakZrc3B6V1dOSll6aFFWMkM5?= =?utf-8?B?OVR4TGRRbEZyQnQ0YXFrUFN6L3JRODM2bm1nZGJrdy8wU3htWWN5dnNvVHZq?= =?utf-8?B?QTZpT3VzZXlJaTN6bGsrTzRWbkNvdERKbE94eEVWdTVKL1A5N3ZmbTFvSWNM?= =?utf-8?B?VXIxUWJLSmlZT1VpZHNYSU0zd2JpMW54bGY5WDlOYlpjbmhmYnBpYkVPOGRE?= =?utf-8?B?L09CZ3FDOFc4cW1EU1l1R1MrL242bURCbVdVN2w1ZzdpSEMrZjZTbTJvdWlk?= =?utf-8?B?eDhieWdJM29lQVFXTkZYWXZ0L09ndmNnUEpKVkVIT0VHbXVtK0hqMFZtcUw3?= =?utf-8?B?U1VoVUJ5ZDRFSldYY2F3dVFKZ3ZxNWtHWjErZ2hONGpXbzBuOW9LVGRMK2tL?= =?utf-8?B?VlFsMXZjVjFMc09UMXRHOVRyZ2JuSVRUajZyODE3MlhOazR1eWFvS2Yra2ZW?= =?utf-8?B?Q2pjWjVqeXNTbFBQL0JvMzZhTHluOStyM0RtblNqUmFvV3R5Ni8rS1JXSnhn?= =?utf-8?B?NGxZZHc0UmxuckMyTCs2TkZsTlJ1cjk2UUlRWVJrTVhJaU15NlNaS1F3OUoy?= =?utf-8?B?YzM2Tk1ha3lhZmV6WmcveTRQZitYUkNXMHNJMlFXVzBVOWEzTXVQdmJlUXJz?= =?utf-8?B?MFNMWHQ0VTdMMUNxK3QxdTR1SHJJTEUwTzVSRkplMU0vQnl6bG1NTXZNU3Iw?= =?utf-8?B?bGtWeWVZYWp0eHBQS0RGUmRlZ0Mzc0tLbjMyb2lkS0NTRm5jNjM5eHIweGxT?= =?utf-8?B?d0Z3Rm92YXZ0bkkwbWIrNFluSnpZVHFKTEpaOUM0b0J2d2hlclVpcmloZWt1?= =?utf-8?B?bVY4MWREU2M5WEM4VEFWaFNVRUhlbWhGM0dDNEZlQ0JCZ2ZMRlFTdjFDK0tT?= =?utf-8?Q?zCFQ=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(7416014)(1800799024)(36860700013)(82310400026);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Nov 2025 07:54:03.3720 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: e0f3f961-ac46-4cd6-207b-08de1aae2837 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: DS1PEPF00017093.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB8554 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) Signed-off-by: Yo-Jung Leo Lin (AMD) Reviewed-by: Alex Deucher --- 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 6c62e27b9800..0743fd8620e4 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 { @@ -588,7 +590,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 Feb 9 12:04:30 2026 Received: from MW6PR02CU001.outbound.protection.outlook.com (mail-westus2azon11012030.outbound.protection.outlook.com [52.101.48.30]) (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 683142C375E; Mon, 3 Nov 2025 07:54:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.48.30 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762156457; cv=fail; b=fCBdVTTcMgeKLaP6ERatXXyy1yyU9GVlZrE26rYaIX0gq9le/FfTmELge4h3VJ2XwntI8K3GuFsgm9YuI/urg6RPSgj1IKFeirmxqO8oJVbQvRMDNMIyGuZsosNhyjqMm7M+QvV9czxfLMIECn1lPq3ORdDlzJyJqSA9oZ5tEWQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762156457; c=relaxed/simple; bh=6UdGsQIlECHxX7f7krA0ZU/+dNVNkZTX7+jP417nVWI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:CC; b=rhe9IpBXA6BTlVWwUesok333Kwh4yw3DKS33CfaKGcP8PQplxK0jcYLMk91MlZ4Kz5+A33jIqZi4n+Je6mzsSrIYRyx5RkkxaQNSd56kJFY9jwAAuCrQgjqFJxO8FidXQjCwqJKjka+2JAT4lS4xMOdmQav6Ow82TFf/Ngdo/m0= 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=zeTv01pT; arc=fail smtp.client-ip=52.101.48.30 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="zeTv01pT" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=GIT4hyEcwsOyjVpHK1y67O2q7sri/XRJE9DpUf0AVfmRnZxEmlrKYl8nNvdpldIxNRik9W372DtFDcabr2e3lJaj8ksD6PJ9zgRtmR4AsNoec4hjy4WrbL9dq8z4wfw0WNlxGtbiedfpg0j2K7EKgtkDv1tjtUcl56r6ZfIszUQ7T0+/rFl6e3nIDcBcg5z/SMhzWjVbCkBQeOWq2CBf3iVQAwtE/YcP4EMyfgnHC0b0U1LznEwyu2LqLQ8xcvON50MZb3AUeeMYvO+vaE65bquVXnAs2XvBPXUg+6t40aw1CvvFVTPtGsY9CcfXGeVyWOTCIeMkq2j0tsuO2PLZIg== 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=kGZhJJUhQy5W37dpo0YD4fGOW0zN9cobZGucdcAE/8M=; b=plNg44sjNHDwdCFjRgp4D4x0O7PAJQZ9OOgmucaWLIpfFXxt+Rje7Fe6n8zVAN4nUFg//wOqH/t9dnSFCtqn8+dhjfAS7kbWLcnB4e6p7har4ZdcCSf3TYmXTs9l9kyF5vD72VzUc085FHiFl5B/owfg9mBTsQEt/kNqgN6e2c/xY/Cz0NUuDQxr9pgRBwHxZGFyVj6CkrezDtpK90/iyqFcz6wyaolz9JPHejEqIwhSd0ZqrYaWq8RkN0dUiEFrlqx8zUw4ZvzsZMngHvPUaNYUWh87R84nNEodJGmROAS0md5TluN5jhQJIEjyz2P6oov2H+2Y/+L0oWfA20ya1Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=linux.intel.com 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=kGZhJJUhQy5W37dpo0YD4fGOW0zN9cobZGucdcAE/8M=; b=zeTv01pT4DarT015AYDNsY1bXemcWF6fAzknRifVl1I0sHac5wZDm1/WZvpsI1s/VfcjUspabFgrmw79LlzCWgSLtxAYRN78TavWA1rIq73vhpJY8a639GaeeR3u0m50tpK5c8WILAUcCb3o7Ndv57ilB79BqLFn2zucjXinpXg= Received: from DS7PR05CA0002.namprd05.prod.outlook.com (2603:10b6:5:3b9::7) by DS0PR12MB6440.namprd12.prod.outlook.com (2603:10b6:8:c8::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9275.16; Mon, 3 Nov 2025 07:54:08 +0000 Received: from DS1PEPF00017093.namprd03.prod.outlook.com (2603:10b6:5:3b9:cafe::57) by DS7PR05CA0002.outlook.office365.com (2603:10b6:5:3b9::7) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9298.7 via Frontend Transport; Mon, 3 Nov 2025 07:54:08 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by DS1PEPF00017093.mail.protection.outlook.com (10.167.17.136) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9298.6 via Frontend Transport; Mon, 3 Nov 2025 07:54:08 +0000 Received: from [127.0.1.1] (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Sun, 2 Nov 2025 23:54:00 -0800 From: "Yo-Jung Leo Lin (AMD)" Date: Mon, 3 Nov 2025 15:51:05 +0800 Subject: [PATCH 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: <20251103-vram-carveout-tuning-for-upstream-v1-2-17e2a72639c5@amd.com> References: <20251103-vram-carveout-tuning-for-upstream-v1-0-17e2a72639c5@amd.com> In-Reply-To: <20251103-vram-carveout-tuning-for-upstream-v1-0-17e2a72639c5@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: , , , , "Yo-Jung Leo Lin (AMD)" , , X-Mailer: b4 0.13.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=7312; i=Leo.Lin@amd.com; h=from:subject:message-id; bh=6UdGsQIlECHxX7f7krA0ZU/+dNVNkZTX7+jP417nVWI=; b=owEBbQKS/ZANAwAKAV8XsZZKKe6GAcsmYgBpCF8LQ8D0iMJ0EjNZc/aSujuyQxlNoeJyt4z82 FnOysO7gtuJAjMEAAEKAB0WIQQzqV4kW+yguuqHrw5fF7GWSinuhgUCaQhfCwAKCRBfF7GWSinu huq+D/9qAkNj1pz3nVUBb/F1XESDL8VvYlBSPKyJU5B+YvhzB96R5tFVhYYcMeBiZoRf4TqOS2u YuUyxNHdr+GZs87mi9uNlOKccmNfiIfbXp0l9vk5Ci9+HJwwI+EJ0Wao7qaI7xyKyVKcZDqgiVG BsOgJFvVNn596V8+plBx8sQ9ag9nF9MCgU5MmZmtNfr4uVb3PXiw+6f5LfPJh+lCB9p3eDgari1 P6wc0+wRFXBPSTKPM1tjnpUc6fQx2eFhKjbe8MnYs36eDW7L7fK+2dYgPg/oXDJvAkFwhgZceBw ArVmUc2y0BZJD99gft4xVHFexvcbbxKFfX7oX9sRHc8sMg5TG0xyIGzUuoR2E2LYPZhS7JVnSJt P5W+InbDhr96dMp1q1qQ6THxIFd4zmN8zWb30GZ5YUHClbyKVqV8Kt6w57jS8iFu4AbQWC4w0T/ c8+N7tmPQPO4aNhjCt3G/dmpQocfmnF2171HBTeuTZBvGXwV9lzHlm/ovv50Dbj5j/pq01w2ZzF w4Y+eADU1qSB9D4rDJaRd1CfW0HeZXmH+DFKGv+tEkS0igX/qd79y0x3ZxXWS9SAa4SSiLxAsAb M0om/3+n4YEWdiuKel0jixE2QoIsOvkq8SiziKwhvWCD27Pn3zJBjvfzQh/DThIPsmgZ0Gndebs lrLclyIa3S33BHA== X-Developer-Key: i=Leo.Lin@amd.com; a=openpgp; fpr=33A95E245BECA0BAEA87AF0E5F17B1964A29EE86 X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS1PEPF00017093:EE_|DS0PR12MB6440:EE_ X-MS-Office365-Filtering-Correlation-Id: 439c37af-f27c-403a-fca4-08de1aae2b36 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|1800799024|82310400026|36860700013; X-Microsoft-Antispam-Message-Info: =?utf-8?B?T203T29yVFl4bVlIdDBXaVhYb0lETHZkTmRGcEs0K1NqUkh5Y1NHOG1JL1Ey?= =?utf-8?B?dlo4VlZnWGNOSjNicHVtcXUrYWEzU3MvcUU4dXZuWU1XSENoNTRqN1JOQVA1?= =?utf-8?B?NG1VNWV6Rlk5NkZLSjlpaTlqb00yOHJ1R3RBZEl2aWd4OFk1dk5KcUUzOTJz?= =?utf-8?B?L0ptTW42MzJkQ2p0WlAzWnFlWjhKeGZYNzVySGt5TjIwZ21Tb1ZUWUIxNUNy?= =?utf-8?B?TG9pU2tCZlBYT0x1ekpqY1N2SDA2NHBGTlorckhSR0U2YVJOQ01uYmZZNS95?= =?utf-8?B?Q0VUN1dock5vUzhqblBDTExRZnkwandXRXJWMnlvVXhzM0pEc2Nicldwb2o5?= =?utf-8?B?VDhRanlabTVjR1phS2hhV1FoYjZBMGdtQU1idGx0T3BJS0lpSENjLzVFSG54?= =?utf-8?B?WUFySzNzaXdkYXdpTUw3TmZPOUdSaG1QRDg5ZVNpdm40V0s2WkNCZDFndWZH?= =?utf-8?B?UGVTTUVaTkhLNTN0b1ExVE44UlBXbE1PWURZdEZ0WW16RFk2VEszOVYrRE1P?= =?utf-8?B?aEVRT0tPaThyVTdSamZmZk81YWVrWXVwVWhnQVM2Q3RpY2NhTDdtNzkycUsy?= =?utf-8?B?b0E2T0dUWUFPTWZra3F5aktCSnE0RzBRYUF3dGI1eWpjL1o5ZzgwYVdhbXBC?= =?utf-8?B?YUdYSWQxYjhublpkRHg1N2FPQlMreEkwNm55amVkMHBYdUxHUGc0d01KYzFm?= =?utf-8?B?dGYvS3hiWFVzbU1XUEc2aysvejc1Q2t4ZzhCd2tkU0VQTUF6OU9MUlRNZjRZ?= =?utf-8?B?Z2EydmZBeHlPdnNCZDZWaVowNjJNb3htc0ZWVW42SlFXVWZyZmhNeUNNMk4v?= =?utf-8?B?cFB0M0RoemduVTdUUDdMMGw5em5NOVlUWGZSa0ZocTJCci91OXhkTURTZjZz?= =?utf-8?B?TTN6WllFVlZPdWFESGdaYmRYR09Ua3d4K1hEM2RjaVUzK2dTWTFTYkhaYU5i?= =?utf-8?B?aUtXV3NMVy9qK2hsaDBkcURKYmFDTmNvYnR5dUhDT01tcmVqWmRlY3VVYVJt?= =?utf-8?B?UFp2d2NjQnpoQzN2MHo2S2QzZU5KYlh6YmMvUVppTm5QK2tRZWhBOVloTXZH?= =?utf-8?B?emRPd3JKM290MUladVprSDJLQWtmTnR1Y2RtL0htT2sxOGdVUXp0QjRDV0tC?= =?utf-8?B?ODdDU0xQV3p0RVRqRExjWERkdW4xV0tSSHBzSXJhNlYyZUtMcWl3WFZjVStS?= =?utf-8?B?dncrMUdlK25ZQlp1Qy9kQmhPVzB5NlN6cklIYkpsTnZYdWRhc1FIT2MwWmpl?= =?utf-8?B?Z0dQU2V6cm80QjFNQWEyZkdrajBPRmpjT21oZ2dZcmxSV3lMVVVFV1dZNGV2?= =?utf-8?B?T1FqNE5aMWtEWkRwek9Ba0RrVlNtZStYZW4wMnVGbjZQZXEybFNVVWRrYkZM?= =?utf-8?B?c0xLYzNseDlFLzdVNzFJWmlUSXNBdk8xMjlnRTFhTGtNT09leWZkUHVrWDR0?= =?utf-8?B?NlNQd2VMTUo3V0xPRXZwM09JSTJHUUd6U3dwNWZxdFYrV2d2SmtlK1hnaUtN?= =?utf-8?B?WjFVclA0OFJ5VmZTeVphMTdXbGNIRGNSQVp1NTB5Nys0SHRMUXV3MEhqVGRn?= =?utf-8?B?Z29na0ZFTTgwTjNEZW5JK2c0NUJxcFNyZjdyTm9NQnBIOUo2VmNTSGFvNjFl?= =?utf-8?B?UDlwbGJhai9hNE1DL2F4Z1RlaVAxU1FDVHVNbEZCTlM0MHVFT0JtZk4vVEpP?= =?utf-8?B?YlF0ZkM3QXlMWnRqNlBTcHBGVHJWaklnaXVNYUxZcjQ5R0RkbjdQREVMVlhD?= =?utf-8?B?RCtvWGNRMlc3eUxucm94c0VJaE9pVjlDc09LcWE5UnFLcndHZlV0bjY2MmlD?= =?utf-8?B?ZE53b0dEa1B2OEZiaUtVSWVWcVE5MitNN1pSUG4xcFJYK0gzNzlHOEYzSUtt?= =?utf-8?B?aHRDeW5xN01JeUJuL1ZYWTlwMStZZWxVbEVHbUhRdlV4UG5JeTBOMEMrYisy?= =?utf-8?B?SkhUcG1seHBYS1dkUGJEcmY1L0ROYUppVTB3ODBROU5KVXFRUUswNG1yNDNh?= =?utf-8?B?SWhWL2hqZVNMeUV5dVQzR3dYT2ZoUGxxNzF0ditRQjVpU1l5dVV5ekQxZnRR?= =?utf-8?B?Q1JoVWxZQjJKT3BMZzdIRmwxUlE3am12NnNoY3pjMzhJeGtJUlJEK1l5TVNx?= =?utf-8?Q?pLbA=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(7416014)(376014)(1800799024)(82310400026)(36860700013);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Nov 2025 07:54:08.4042 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 439c37af-f27c-403a-fca4-08de1aae2b36 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: DS1PEPF00017093.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB6440 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) Signed-off-by: Yo-Jung Leo Lin (AMD) --- drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c | 32 ++++++++-- drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c | 75 ++++++++++++++++++++= ++++ drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.h | 1 + drivers/gpu/drm/amd/amdgpu/atom.h | 4 ++ 4 files changed, 107 insertions(+), 5 deletions(-) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c b/drivers/gpu/drm= /amd/amdgpu/amdgpu_atombios.c index 763f2b8dcf13..58cc3bc9d42d 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c @@ -28,6 +28,7 @@ #include "amdgpu.h" #include "amdgpu_atombios.h" #include "amdgpu_atomfirmware.h" +#include "atomfirmware.h" #include "amdgpu_i2c.h" #include "amdgpu_display.h" =20 @@ -1877,6 +1878,10 @@ void amdgpu_atombios_fini(struct amdgpu_device *adev) if (adev->mode_info.atom_context) { kfree(adev->mode_info.atom_context->scratch); kfree(adev->mode_info.atom_context->iio); + kfree(adev->mode_info.atom_context->uma_carveout_options); + adev->mode_info.atom_context->uma_carveout_options =3D NULL; + adev->mode_info.atom_context->uma_carveout_nr =3D 0; + adev->mode_info.atom_context->uma_carveout_index =3D 0; } kfree(adev->mode_info.atom_context); adev->mode_info.atom_context =3D NULL; @@ -1891,16 +1896,19 @@ void amdgpu_atombios_fini(struct amdgpu_device *ade= v) * * Initializes the driver info and register access callbacks for the * ATOM interpreter (r4xx+). - * Returns 0 on sucess, -ENOMEM on failure. + * Returns 0 on success, -ENOMEM on memory allocation error, or -EINVAL on= ATOM ROM parsing error * Called at driver startup. */ int amdgpu_atombios_init(struct amdgpu_device *adev) { struct card_info *atom_card_info =3D kzalloc(sizeof(struct card_info), GFP_KERNEL); + int rc; =20 - if (!atom_card_info) - return -ENOMEM; + if (!atom_card_info) { + rc =3D -ENOMEM; + goto out_card_info; + } =20 adev->mode_info.atom_card_info =3D atom_card_info; atom_card_info->dev =3D adev_to_drm(adev); @@ -1913,8 +1921,16 @@ int amdgpu_atombios_init(struct amdgpu_device *adev) =20 adev->mode_info.atom_context =3D amdgpu_atom_parse(atom_card_info, adev->= bios); if (!adev->mode_info.atom_context) { - amdgpu_atombios_fini(adev); - return -ENOMEM; + rc =3D -ENOMEM; + goto out_atom_ctx; + } + + rc =3D amdgpu_atomfirmware_get_uma_carveout_info(adev); + + if (rc) { + drm_dbg(adev_to_drm(adev), "Failed to get UMA carveout info: %d\n", rc); + if (rc !=3D -ENODEV) + goto out_uma_info; } =20 mutex_init(&adev->mode_info.atom_context->mutex); @@ -1930,6 +1946,12 @@ int amdgpu_atombios_init(struct amdgpu_device *adev) } =20 return 0; + +out_uma_info: +out_atom_ctx: + amdgpu_atombios_fini(adev); +out_card_info: + return rc; } =20 int amdgpu_atombios_get_data_table(struct amdgpu_device *adev, diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c b/drivers/gpu= /drm/amd/amdgpu/amdgpu_atomfirmware.c index 636385c80f64..698416e84f1f 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c @@ -21,12 +21,14 @@ * */ =20 +#include "linux/slab.h" #include #include "amdgpu.h" #include "atomfirmware.h" #include "amdgpu_atomfirmware.h" #include "atom.h" #include "atombios.h" +#include "atomfirmware.h" #include "soc15_hw_ip.h" =20 union firmware_info { @@ -296,6 +298,79 @@ 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_= device *adev, + union igp_info *igp_info) +{ + struct atom_context *ctx =3D adev->mode_info.atom_context; + struct uma_carveout_option *opts; + + opts =3D kzalloc(sizeof(igp_info->v23.UMASizeControlOption), GFP_KERNEL); + + if (!opts) + goto out_mem; + + memcpy(opts, igp_info->v23.UMASizeControlOption, + sizeof(igp_info->v23.UMASizeControlOption)); + + ctx->uma_carveout_index =3D igp_info->v23.UMACarveoutIndex; + ctx->uma_carveout_nr =3D igp_info->v23.UMACarveoutIndexMax; + ctx->uma_carveout_options =3D opts; + + return 0; + +out_mem: + return -ENOMEM; +} + +static int __amdgpu_atomfirmware_get_uma_carveout_info(struct amdgpu_devic= e *adev, + u8 frev, u8 crev, + union igp_info *igp_info) +{ + switch (frev) { + case 2: + switch (crev) { + case 3: + return __amdgpu_atomfirmware_get_uma_carveout_info_v2_3(adev, igp_info); + break; + default: + break; + } + break; + default: + break; + } + return -ENODEV; +} + +int amdgpu_atomfirmware_get_uma_carveout_info(struct amdgpu_device *adev) +{ + 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; + + if (!amdgpu_acpi_is_set_uma_allocation_size_supported()) + 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); + + return __amdgpu_atomfirmware_get_uma_carveout_info(adev, frev, crev, igp_= info); +} + 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..fb3f34a36569 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.h +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.h @@ -32,6 +32,7 @@ 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); 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); diff --git a/drivers/gpu/drm/amd/amdgpu/atom.h b/drivers/gpu/drm/amd/amdgpu= /atom.h index 825ff28731f5..f07c612f0386 100644 --- a/drivers/gpu/drm/amd/amdgpu/atom.h +++ b/drivers/gpu/drm/amd/amdgpu/atom.h @@ -153,6 +153,10 @@ struct atom_context { uint8_t vbios_ver_str[STRLEN_NORMAL]; uint8_t date[STRLEN_NORMAL]; uint8_t build_num[STRLEN_NORMAL]; + + uint8_t uma_carveout_index; + uint8_t uma_carveout_nr; + struct uma_carveout_option *uma_carveout_options; }; =20 extern int amdgpu_atom_debug; --=20 2.43.0 From nobody Mon Feb 9 12:04:30 2026 Received: from SJ2PR03CU001.outbound.protection.outlook.com (mail-westusazon11012024.outbound.protection.outlook.com [52.101.43.24]) (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 6DADE2C17B3; Mon, 3 Nov 2025 07:54:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.43.24 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762156455; cv=fail; b=uBYGK/VPhWsR2usYpEoUE8YgCTe0IVyR0n4ZxHUR+p2AkMS+4aLqs4pMR7JtXZg5JCUpTB7CrnpnOhyKwyFpkTgcrMUWKv3b1qF3uzZxLlnR0kmeT1d6By5mC9gf5Av6djhCB8QBsFubq6f37rKPDa46ErufnYO3wO8p3jyWPHo= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762156455; c=relaxed/simple; bh=OOPUQvgJFYRAVz/SHG164JwIG24VU1oGoMaElOhVuXk=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:CC; b=q8S+OVAdzQfBNx2kyYeuF/TOD0gVb1SXIadd5TCtoMzqvXoXRh0E0WhDUHGts2zjK1LucNUpSvjSEhcY4Q+NPBlXl1ifUOcyFBXqgr5zAj01WBurkElzv73BybzZH62oIjGos6WlbtEezkSrU8DD82/BNeAyNyDSXsMMAOXcUN0= 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=AmkCNSd7; arc=fail smtp.client-ip=52.101.43.24 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="AmkCNSd7" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=teuI3Nrqr2x5v5Se2VCpNr7t+nXq5/xe69oZXfzuIRHVbdBxAtUuEbTL1rUUlkCehJtiE6D5z23VCzyUHxpH1dcCWUlZrbKGg2jf9MEhjDyImIX6oDNK14XERN20/hjo2IyL5724ODN1eOCNJK4JvNHNE3g1LM8z9F+owpxt5oxxHPgH2stuDAWGEF0i5ZzYiDXoPYq9KcIPYvQlRlpLTSdKVdV2Bmsex9yf9FLBkHd11KBL29vQGvQ9MJv1vUS3gdjuctUuU4PlwQjIJkXpe3yEp7+ISzHBUBBtMo6RxM9intXTrzFSRk0fPwbqhFU9p564j4Y8plAmMtgKO1miZw== 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=k17MXIsfn8Q8h4L+R7U3PCZW2ieaCOBN/yI9P03b8EI=; b=GrMH/LAVUHrByv2qUzf+WoLsxrJoFaWT4SrPabuD3mJO8bITMD/J2KG9fiVHs8LyN2xb8OjijQjYCRpReuifr/tDBOJVHpuqJCfUAY8gtbFhqo0NcVg3qz+9tmn44SL2L3D5IOodtwiDm9oTYmCQWlwYa9UrfCCsJM7V2SbnE08InP6BF82nMe5MUNm1rC0n5SYPKYtESocsuAQKfHBkLrLt4Rv8+xi+3JjZ5brWfOOb5IKIdjAlS8xrttspoe21b1son5b1+40XRNCbjiEN6J5+DupLd+DtM+1vNqwTzMiqN+CpR1WM9N1dioDgAqrFchapsiQ14kxddo7Cd30s1w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=linux.intel.com 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=k17MXIsfn8Q8h4L+R7U3PCZW2ieaCOBN/yI9P03b8EI=; b=AmkCNSd7yyDxjmoQZic6exban2Ot+MlsEw3znZkPLSexoSYb+0jw8vq/CVSqLOHzrpU4HjaJI5s2HLQ63uuinbDSf+CUaBZMQ61Wg0eClao2zo+281Y2QQmloWamyO23cj0Zxc3P4JQhqcjTBYRIHropYeUOivjP9E6NEaY6ldw= Received: from DS7PR05CA0002.namprd05.prod.outlook.com (2603:10b6:5:3b9::7) by DM4PR12MB6304.namprd12.prod.outlook.com (2603:10b6:8:a2::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9275.16; Mon, 3 Nov 2025 07:54:10 +0000 Received: from DS1PEPF00017093.namprd03.prod.outlook.com (2603:10b6:5:3b9:cafe::65) by DS7PR05CA0002.outlook.office365.com (2603:10b6:5:3b9::7) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9298.7 via Frontend Transport; Mon, 3 Nov 2025 07:54:09 +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 DS1PEPF00017093.mail.protection.outlook.com (10.167.17.136) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9298.6 via Frontend Transport; Mon, 3 Nov 2025 07:54:09 +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; Sun, 2 Nov 2025 23:54:04 -0800 From: "Yo-Jung Leo Lin (AMD)" Date: Mon, 3 Nov 2025 15:51:06 +0800 Subject: [PATCH 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: <20251103-vram-carveout-tuning-for-upstream-v1-3-17e2a72639c5@amd.com> References: <20251103-vram-carveout-tuning-for-upstream-v1-0-17e2a72639c5@amd.com> In-Reply-To: <20251103-vram-carveout-tuning-for-upstream-v1-0-17e2a72639c5@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: , , , , "Yo-Jung Leo Lin (AMD)" , , X-Mailer: b4 0.13.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=6396; i=Leo.Lin@amd.com; h=from:subject:message-id; bh=OOPUQvgJFYRAVz/SHG164JwIG24VU1oGoMaElOhVuXk=; b=owEBbQKS/ZANAwAKAV8XsZZKKe6GAcsmYgBpCF8MZa9qWLJSCsG/xjsJzKhTmW0gWhL2B9W3e 4/LFgF4urSJAjMEAAEKAB0WIQQzqV4kW+yguuqHrw5fF7GWSinuhgUCaQhfDAAKCRBfF7GWSinu hrwAD/9vMZSpclVz+UED+S+zuzbt8ZS1l6WCtaiEQQSe2CYiCW0x6E+rWTGtdTLqebFvyVWFd0J 0JcWKIT1c3dId1HmluudQdnWYZo52XSGtYWn9xAa5K2C46fZQrjBrCtD+w0vQalCGVbtLSUBPuK TOsbZtsXi9BLjzIZ8F0CGg2LSIobm1WuY8pWqkGq2KiGWqLDUCh8YnHu8Rn14NrD1Gf74A/P8Qf PLJ8Xf9DoRqA+SUZ8AawIy9qdwKFSal/gFPQPe9aaGJ0/ddXct3Fel6rTg+pq2y+RHcMkc61hK4 WCVmJPf+lw2TvjAf9F1gNsfPuClgoiHYe47tJXIyDxjRjhik7lx3q6ImzgMGPYq7UC/VtsftaEm POCCud1upSAuC5J9Fcm4yEfl9tOat8kWreEGuHU2bMV6PDOayEjlZJGjXwaAlN79pOaq2GQMdUO 0j1EIpyqr29AdmPaTgu9mS4y43fvg3kw3/ExgYALMq6CFcHEgO8KKKhWIs4NJuvZ/oi8x4OJNzB 94XGDVBCLW5+kd3GqVW6FucT3kPd3vvNb7x3XmKMbZD94H2DUsqq3OI+qdIREvdJFNKiE07JnYu P1COAvFQgsJq1bRQ2kwxxaD4Aj7egn47LXuN4QBnli6DikqmNZuOj0ahOm6R3oqybGOMnGNeQrM pNXqqdyfdQlD3NA== X-Developer-Key: i=Leo.Lin@amd.com; a=openpgp; fpr=33A95E245BECA0BAEA87AF0E5F17B1964A29EE86 X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS1PEPF00017093:EE_|DM4PR12MB6304:EE_ X-MS-Office365-Filtering-Correlation-Id: ce7dfa88-49da-44c6-4e72-08de1aae2bb5 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?NU1Sa2plVURTcXhzMkpJKzhPTmk5bHRneVZ5LzNTR3ZTeU5INndndGNxZ2ZN?= =?utf-8?B?RkV3N0E2dnFoVDdRUkF3NHV3QWg3bG5nWHZiQXY2Z2RDb0pYSVMzTkhJT0oy?= =?utf-8?B?QVFHZkkrTnVjM0pxZXRONE5qL0srMGRGc0V3MkJtYld3dVlwK2krWHlFNGxV?= =?utf-8?B?d3NuQ3RiTzhmQ2Ixd2Y0Y0VxVmRLdXIxWjlFK2dGdktCRVZkbmM3MUkxYWNj?= =?utf-8?B?Wkh2cmZkV000dGsrTzd5Q0Y0b2NLakloQ0Nybm1UTGpLcFNEWU85aWR3SnVZ?= =?utf-8?B?TEQySlphWWZZUWFET1VJY0liMWxOYXIxUWNCZEVLb1JpUkQ2eFlYZWtMSklr?= =?utf-8?B?Y2NlRW5MOCtTVWZOZkRZQUtPZzRPQjRTZGNzZkNOVFhrY2MyQXNyT2lyY1Rh?= =?utf-8?B?MmYwN3ZUVGdkZVNra0h6WklmN0loSkdUckpESHBselR5QUpnT3duNTViTjdr?= =?utf-8?B?UkJzb05WYlJwUjJQTjZkU2Qrb2FwbTg1MFNPeUM4V3BjRWxheUNjR2hRRkpm?= =?utf-8?B?dUNaSndnY0N0TUk4ajAxVWRlVGJwY3Z3V2pVU3V2ZE5XQ0NKRi9sQWpOcmcw?= =?utf-8?B?RXlBcDZKaVpRUWhBeklzeFRFNktSMG84NU1xNkU5RDZWazRUWldJNStRaytM?= =?utf-8?B?azJ6Z0tGUEZLVGRsRkF3ZjFaUmtSUHlzVGY4SVlsM3VycHVOR0RsZSt3ZW1y?= =?utf-8?B?T3FjRVlGd2g1UitBT0JHaEJrMW8vUGRNVGlZQis5UDI1K3BwTUVwZmxsVU8w?= =?utf-8?B?NGtBVzBsa0tFeHV5WXdET2ZEc1psVHlRaUFvek1UTG9SZWI2WXVJZHNlNlFC?= =?utf-8?B?RnRIcGsrOHNxaWdsaXNZR05CRnNCYzFaeXArSm1ZQlVNOEp1amVPaVNNSXRq?= =?utf-8?B?QmxSdGdZNHIzblVQZE56c3RXWU8wazNUOWJNRW5EQXhvVjZXaDBuNjJwNTRN?= =?utf-8?B?K2UvdHRFQWFrNHU1NlU4ZUYzSXJZNEFvSTJqWnpXZTBUV3h3a3dvSVBiOUhU?= =?utf-8?B?c2c4UkNSd1g4TVRjTkc4L0FZWkxSdWtsakdJc1FmaUNzRkM4R25kbTkyM3lR?= =?utf-8?B?clU5ZTBWVEpsYnRVaWVYeEllVVVpd2I3UVh4NVZpTTM4L0dwRUhzQ09YMnR4?= =?utf-8?B?Ynd0MEV5QU9laHcrMG1ack9ibm83ZnlUaC9iZ0hwYVJ3NzRLcjhlZWFXZHY0?= =?utf-8?B?T1dDZXNJcStqZEtYMmh6T0FYY2xuNEs1dE9vWkduVFBCTjB4eVQzNHhPWDF0?= =?utf-8?B?TklPZVBLKzNrRE5BYUF6d3Q2d1BNWXVIbEdqYXRoUktJbUFqQUkxSlVXay9h?= =?utf-8?B?ZmtnV205TGswNkFCdDA3blFHU0Zod3p3eEYrSWVpMWs3VDRpS0FLVTRlTWdk?= =?utf-8?B?UTdUeHp5ditpeVIyRGZZTmZMNS9OZkJSU0hkMWhaSmRSajZhaUVaNDVRWFVS?= =?utf-8?B?OVhaVmdHT3psSlFYYWwzZjlKVUhkNDBNeDZSSlZJMkg2RlM4RWtreXVscnN2?= =?utf-8?B?MTdZME5aVm9DblZrNlBIb200dTlTL3VDd1dDbE1mc3lETGlaMDl2QkhtZFJI?= =?utf-8?B?TmJRODhtWEhZL1FLNkc3ZzRQTnQxdXpHRlh4c0FkV3JWZEwzbmluYXNRc1hX?= =?utf-8?B?ZGVrelArSGJzZDNESG1PM0JnSW5QTUg2by9JMkpiU1FqTDdXZksyUXNkL1M3?= =?utf-8?B?ZkJJQlZGK1FhMi9ZK1FNRFdROGVIRmdiSGFjUEowWUxSa29SdlBrbTZWaHQ1?= =?utf-8?B?MTlST2JLRUhVU3BIUWZ0UHhSWjBScEpIelhiQXV3RnM1a3B6elliWkF4MWgz?= =?utf-8?B?RTg4YkNMa0lDSGZFSUFpS3NFazNIbmZqSXV4UFQ4OHRWZ25uYUd3QXR0ckE2?= =?utf-8?B?K0xJOHZOOGhVSDg0elFhNGIvR2ZNdE4rb1ZOa0E3QTZ3bzZPamxyZDdJNmJ4?= =?utf-8?B?VFRRWUJTazBycWFHdmVFRStNVEJpLzlCbnpUaGlIOHcxMVprZ0lVWnV2QzNF?= =?utf-8?B?andSS0ViSHF6cXRRMXpBMXhuMHhabUg5NERQT2xNdnVuSTVBYmpLZE1OMUd2?= =?utf-8?B?aXIxRlNYVlNZSXVxK1ExU1kwazc5bXppZ2dHL29TT2Vvd255N1ZDbkd4UHJ3?= =?utf-8?Q?ZcPM=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;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: 03 Nov 2025 07:54:09.2325 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: ce7dfa88-49da-44c6-4e72-08de1aae2bb5 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: DS1PEPF00017093.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB6304 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) Signed-off-by: Yo-Jung Leo Lin (AMD) Reviewed-by: Alex Deucher --- 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 a5574e84694b..3de520f0b5b4 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h @@ -1686,12 +1686,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); @@ -1720,6 +1722,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, @@ -1727,6 +1730,10 @@ static inline int amdgpu_acpi_smart_shift_update(str= uct amdgpu_device *adev, { return 0; } +int amdgpu_acpi_set_uma_allocation_size(struct amdgpu_device *adev, u8 ind= ex, 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 0743fd8620e4..d53f7b33d619 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c @@ -669,6 +669,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 * @@ -909,6 +914,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 Feb 9 12:04:30 2026 Received: from SN4PR0501CU005.outbound.protection.outlook.com (mail-southcentralusazon11011015.outbound.protection.outlook.com [40.93.194.15]) (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 1C5762D060B; Mon, 3 Nov 2025 07:54:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.194.15 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762156457; cv=fail; b=U9JF0PYBsTlTRgRlXdwB/suFysTWX7Hc2dlkSSPVJDGoHSC9wFH0S6VO53/UPkbVPmCZt11FyMsWqgn0EmkoBlF41XqqGCL3ykEq1SFtij2gKVpSxyobR+WK1e8U8ElImVOGtJcjy6INbfZFGTqugw7y7dPS8Q+WOPOHwPDnQLU= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762156457; c=relaxed/simple; bh=cWbQqAA84R/PVWQYvCaxkQX0B9E5rVNIoVrq6iLZ/LM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:CC; b=uNqeJtaE9C14hqabS5jN3QVJbeU3d4oCkutWtOgbCTktjDoCupOHQY8WfWTbNSQoLlsK6WZ5UjoRrer+i9UaLVMAPCm6x31hJK7Eyg8bS9Wz2MZS0eLJl8Sib7qrIKl5cTVZwDxKPY+myjSk7OSbFVpR2veVGaQ6O1IoOUA+6+M= 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=UmNxRA1a; arc=fail smtp.client-ip=40.93.194.15 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="UmNxRA1a" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=PFM1VbRODWIdVm1ESkkYR1PNuhDQ5czjp2IayqMY9xMGUmlkw9CAXnMmA3g7pGWqyOrS+YD0DIzSPfCjywuKwd4jH5w11ODgzW1IGgIi+zl8w3lolhcCR9rRnAc6hJ60eLCq1TQLQYZDhJvBhGBXrnYbfn4PJQQfRnez0jnGr2huPH1si0lX6i/e/nYoDsHyng/o48U93K2hJL3dmi9aCUHo0xP30iYIwHTdAYO5/oq1CdFcfZB9ZAKME1L4t5yierRvcin12PIiwxtPaUPbDfIRv7m5zS1AkAX/ICgD+ohBPmCFikJI7//k3pP7LtG78GGIBNreyKaOjkvizJXeow== 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=LXyYpuw8cBO5muVBNfqJuVf1CNtSTEIAi6slY7Ga+Jw=; b=fzB+H73Zgs4Pd6F7/t/XZ9Y9Alchc99r+XXzxMS3O8s+7h5CThg9EBJBCRJie35yqhFFkAgLry/QTULI+jcqGFB+WHnlWLrjPtdldgtRttKbw1EuJe9stdpVRZhyCYiiBMpIP1wAPXFaHRz8hQn/iokqEAZ9pYl49oKJoZnj6lCWV55AdyW5xTFp13Oa29brPZnD5CX6OJDQpIe6eI1mIgL7XblnANq5oh0f3hUevF7ebpDQ9jHdva+FOkAF9qpKABBS4Ah6CDr5nZqcXdK1NRZ0toAH1QETRH3zi7PnH1wAH/lPYP/zOiAnjhtlPSdRSU2GEjAqK+gEsTZYey6a1g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=linux.intel.com 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=LXyYpuw8cBO5muVBNfqJuVf1CNtSTEIAi6slY7Ga+Jw=; b=UmNxRA1a0w8iq8Xi2O3ymT2rN9WoMaTKkMbpsnz/4KREILZVzN6OFS1/Yqihs4LTHOIp06yOLPC8REkk11/6+X1Zi2fumBVszX3inmmFe2JyYXasc/6R3Ea4NlpSRVJmFfCBvNZH6MPcZx6LeGGFtLJY8Lvx+kSGo01Ed1Q36wA= Received: from DM6PR05CA0058.namprd05.prod.outlook.com (2603:10b6:5:335::27) by CH2PR12MB4151.namprd12.prod.outlook.com (2603:10b6:610:78::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9275.15; Mon, 3 Nov 2025 07:54:12 +0000 Received: from DS1PEPF00017095.namprd03.prod.outlook.com (2603:10b6:5:335:cafe::b1) by DM6PR05CA0058.outlook.office365.com (2603:10b6:5:335::27) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9298.7 via Frontend Transport; Mon, 3 Nov 2025 07:54: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 DS1PEPF00017095.mail.protection.outlook.com (10.167.17.138) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9298.6 via Frontend Transport; Mon, 3 Nov 2025 07:54:11 +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; Sun, 2 Nov 2025 23:54:07 -0800 From: "Yo-Jung Leo Lin (AMD)" Date: Mon, 3 Nov 2025 15:51:07 +0800 Subject: [PATCH 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: <20251103-vram-carveout-tuning-for-upstream-v1-4-17e2a72639c5@amd.com> References: <20251103-vram-carveout-tuning-for-upstream-v1-0-17e2a72639c5@amd.com> In-Reply-To: <20251103-vram-carveout-tuning-for-upstream-v1-0-17e2a72639c5@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: , , , , "Yo-Jung Leo Lin (AMD)" , , X-Mailer: b4 0.13.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=4028; i=Leo.Lin@amd.com; h=from:subject:message-id; bh=cWbQqAA84R/PVWQYvCaxkQX0B9E5rVNIoVrq6iLZ/LM=; b=owEBbQKS/ZANAwAKAV8XsZZKKe6GAcsmYgBpCF8MfLLld8POhBntc1KtHjPmk4yUxz27FMsSS L3aRzB6DGmJAjMEAAEKAB0WIQQzqV4kW+yguuqHrw5fF7GWSinuhgUCaQhfDAAKCRBfF7GWSinu hoBZD/9X3PEmP0N3SoNQJTq+uDrRpvQAT4Xj5l8KHvw9B7k1AQBsUYteYNsKy6yk1MA3QOPjmdx YxWt5sHsrbbGtEI13cIWMu4Fh2uo1OcvREh/AEI+Zt/koPx1SbyBnvV8U0V9CIBfEuRhb1I8anI Y8E/4srvEtVZ+fqZa027D//rUvcr6B0euU0vYPn0lr9B8/CIVWmNy0+4P6sZiD4CZELm2OWpRh3 PCrrlh215nzfiYT7uuZcUaiUnRE8bgrPJvoUcysNhEac1TMA+jdLLtbUuNNcWSyFhMGi974CUp1 2Hngvaza6fDHU+WauzRNKioIZNJOpCBmxx6zaAhkvovyfNp9oL4euhREn3SPbedROFxs8vGlGKj 1BhuSTP3jenDYHGNJIxxAvbJcytETYRY+xjBk3Ew29JUWre0jfnKVj3NNt0Xmn3UFZ8CZAA0V81 hTP5VKKoEaaVevpybNadJja0Ku7zCm2+0mGLXJK4jW6nLQDPAoZFH63PoNYdFwLzxpgizaecG3q 35CGsZU8eff7z5LXFl4mwZCG77V/o1LSJS5XF2lBeSuQuMp3lRhJXYZo2mp6XvFBjP73fx9oJwR YquGzYukxxcKDO5NYmXVT8G+5b97KEuhE+PTvGyufs5YwLhZYlVdFjnPsU3Uermd4RVXdBdHnFj EbYjj4bFeamJ73Q== X-Developer-Key: i=Leo.Lin@amd.com; a=openpgp; fpr=33A95E245BECA0BAEA87AF0E5F17B1964A29EE86 X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS1PEPF00017095:EE_|CH2PR12MB4151:EE_ X-MS-Office365-Filtering-Correlation-Id: 27194eb8-a2eb-449e-da54-08de1aae2d26 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|7416014|376014|1800799024|36860700013; X-Microsoft-Antispam-Message-Info: =?utf-8?B?WVBCSXdJS1J0ekZHTVVMT1cvbk5ab0RhYXU0UndVQWdGampZOXdpdjNYb3hQ?= =?utf-8?B?eTU3cE1BTDA3YktDTGFVblNmWjhjaFRQYm0wVjNJVHRQSkpjbktQT2gvM3pl?= =?utf-8?B?K2ROTCtSbjhaeXpqN1pIT2x4RjBiL1FCRVJjRVlUODRDMVZvWTd2dFJzRTNt?= =?utf-8?B?NHlEZzJWaU1rYTFidkowMGJ2VVl3S1RaUnVlWXFuODVEdU1pYUlHcTNBSlFp?= =?utf-8?B?bWhHSmREUnBLazFKSGRnNUhYaFNkMWNSVmN1d2tIbEprdVdwUUlnbWhLNHli?= =?utf-8?B?UDFwYTdyWTkvYTdzbTE2U2xDcTVSM1VrVS9jT3drM3Jzd2grMXlWbmtZNzNy?= =?utf-8?B?b2Y5QWVDMFR4dlJ0WWNsNE5DclN1R0QwVGZyRVhGWGJiNDlQREd3c2xGeEhk?= =?utf-8?B?R0c1K1lLTXh0Wm9tVWFBdkdOeWY0ZkErSllXTEdKcllBdkcva0YwenFKaldG?= =?utf-8?B?anFVRzR6VVlvcUlqYnpnRTlMZDJxaUlBY1Q2Sk9rZDVSMVRSYkluOVh4Y3VT?= =?utf-8?B?YzQ3NVZqT2ovT3ExWm1vcmlyWXlPZ0QyaXVEOEUwL3dxSENiOFZMZmxkVUF3?= =?utf-8?B?UE9PT2dMUVhwN2hzUzlGbWplVjVWTDlJcm1jZ003bEtRdzNSZFpMQkFPT1pn?= =?utf-8?B?ZVVwRXV3a2ZTQ2VMODdGMFY5U2krL21mc1pVakdpaVRaOGlKSy9VQmdXa2hS?= =?utf-8?B?TlJueWhFUmVDaE9Ddy9IUXIrMTFNbm5SeGU3WGtaZThpUEZjN2h5VEovRnJJ?= =?utf-8?B?QW9mWC9neUltUU0yNzVaTjRuNjVoMUZIKzl3K2xGOHk2Rk5jQkJkSXc4c3dQ?= =?utf-8?B?TzNvYm5qVGNtLzI1WnhmLzlVdHpucmUvanNwVDZLV3l5dGlOa0NwN05oUy9E?= =?utf-8?B?VjhQZURkOGFocURucTZhYnpTVTRNSVM5QTZxVmwvekZOUnppVnJuQzQzeW56?= =?utf-8?B?ci9qTU9HSVJ1SnBrYVAxSllISk5FZ3oxaFd4RU0zTWF5clFmRHdCUVVBTUhh?= =?utf-8?B?amlJYThIU1l4SE1ZcjB1ZjFRSDhzeWFZV3hKOC9TU3hiYlA1d0JzeGlyM01N?= =?utf-8?B?bHlMMjFZZGZOR3NrQzQ4NGk3MytkaGZzUzdsN2ZieUpwR29yOUh2SG5TTk5F?= =?utf-8?B?cGkxZUQ5TSt6cG1sNnlKc2NFbUZoSEI3Y3B6eVNBaEVDLzR0cGNhQitQZDlm?= =?utf-8?B?QXE0OW8velRxYURoZDlyOGZiNnVFVHVTdENjVm5VcjlXcHlsS1l3OVpwWmhq?= =?utf-8?B?MFRjVmp5VHE0NU1uUk01YURPY3lGK0t4aW1uaE9oZFV4eitjc1V1M29QaXFB?= =?utf-8?B?VS9qM1FJOVlHbWdVZDU0Q3V3d1Z6bWFiRm9tMDNxR3ROMGVtTFp2RkFpem41?= =?utf-8?B?QW0vVVVWZ0h0KzNldDVZc3pjZkR1d3EzMjMwWCtjWEdlbEpMSThxNEtmUTFk?= =?utf-8?B?dk44S1VOZ1h4RXdLTjg0cldBakZPQk5TUk1ndzVQR2N6ejF2SUxZc0NrTjBR?= =?utf-8?B?ak1VMkZ5UlE3WTI2WFBhWHZBYitJYjFBVEgvYjBlcGUyVjQ5SlM4b2ZMQ0Za?= =?utf-8?B?ZVJWNUpGaDFHM3pZWlU4Uk90TkJYU3BQdjAxQmwyYnpkM0xvUnE0dTVTNU5T?= =?utf-8?B?c0JDb1BvSGZBeUxRcUVWalNOWVlhMVgvTmdpWTFUUXNrNk8ySGtPb1lNVXJL?= =?utf-8?B?dmtwZUNzRnFjT0ZWUzJMREc1K2hoc0NDZGFQNGVITm0yeUZMZGNqemFMT2po?= =?utf-8?B?NlJ2OGV6SGJVUlpHSnBxR2xhVStlTEpncFhFLzZXQzhpZmZtdkMzVWF0OUFL?= =?utf-8?B?N2hveitTeldnNnlRbzkwUmtnR1Z2K3pLUGxpWEJYZitMTU51WnBCd1U2aUVC?= =?utf-8?B?QzZsVjRZbFlkQXA5NG44dENKNTRxR1doa3ZXamVpNHRjV21aSUdDb3U5VUFk?= =?utf-8?B?WG0xYzgreFZKNmxDWmhrbU53MWU5dG9sekxNcmNhZU5ObjZINWZxbG1CTmNq?= =?utf-8?B?Sy9aektpcThLMkZ6M3pGcTV0aUF1eWZWem1BRmo1aTJiMnVJVERYbUgrRWla?= =?utf-8?B?QUVVYjR3N1FsamlWNTUzTDgySE5JVFR4UTZWbUdad0NCUUdOd1lENnQ1VnJC?= =?utf-8?Q?P4C0=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(7416014)(376014)(1800799024)(36860700013);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Nov 2025 07:54:11.6549 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 27194eb8-a2eb-449e-da54-08de1aae2d26 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: DS1PEPF00017095.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR12MB4151 Add 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_atombios.c | 95 ++++++++++++++++++++++++= +++- 1 file changed, 93 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c b/drivers/gpu/drm= /amd/amdgpu/amdgpu_atombios.c index 58cc3bc9d42d..1ebfd925b761 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c @@ -1855,11 +1855,102 @@ const struct attribute_group amdgpu_vbios_version_= attr_group =3D { .is_visible =3D amdgpu_vbios_version_attrs_is_visible, }; =20 +static ssize_t uma_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); + struct atom_context *ctx =3D adev->mode_info.atom_context; + + return sysfs_emit(buf, "%u\n", ctx->uma_carveout_index); +} +static ssize_t uma_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 atom_context *ctx =3D adev->mode_info.atom_context; + struct 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 ctx->uma_carveout_nr) + return -EINVAL; + + opt =3D &ctx->uma_carveout_options[val]; + + if (!opt->uma_carveout_option_flags.flags.Auto && + !opt->uma_carveout_option_flags.flags.Custom) { + drm_err_once(ddev, "Option %ul not supported due to lack of Custom/Auto = flag", r); + return -EINVAL; + } + + flags =3D opt->uma_carveout_option_flags.all8; + flags &=3D ~((uint8_t)opt->uma_carveout_option_flags.flags.Custom); + + r =3D amdgpu_acpi_set_uma_allocation_size(adev, val, flags); + if (r) + return r; + ctx->uma_carveout_index =3D val; + + return count; +} +static DEVICE_ATTR_RW(uma_carveout); + +static ssize_t uma_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 atom_context *ctx =3D adev->mode_info.atom_context; + ssize_t size =3D 0; + + for (int i =3D 0; i < ctx->uma_carveout_nr; i++) { + size +=3D sysfs_emit_at(buf, size, "%d: %s (%u GB)\n", + i, + ctx->uma_carveout_options[i].optionName, + ctx->uma_carveout_options[i].memoryCarvedGb); + } + + return size; +} +static DEVICE_ATTR_RO(uma_carveout_options); + +static struct attribute *amdgpu_uma_attrs[] =3D { + &dev_attr_uma_carveout.attr, + &dev_attr_uma_carveout_options.attr, + NULL +}; + +const struct attribute_group amdgpu_uma_attr_group =3D { + .attrs =3D amdgpu_uma_attrs +}; + int amdgpu_atombios_sysfs_init(struct amdgpu_device *adev) { - if (adev->mode_info.atom_context) - return devm_device_add_group(adev->dev, + int r; + + if (adev->mode_info.atom_context) { + r =3D devm_device_add_group(adev->dev, &amdgpu_vbios_version_attr_group); + if (r) + return r; + } + if (adev->mode_info.atom_context->uma_carveout_options && + adev->mode_info.atom_context->uma_carveout_nr) { + r =3D devm_device_add_group(adev->dev, + &amdgpu_uma_attr_group); + if (r) + return r; + } =20 return 0; } --=20 2.43.0 From nobody Mon Feb 9 12:04:30 2026 Received: from CH4PR04CU002.outbound.protection.outlook.com (mail-northcentralusazon11013006.outbound.protection.outlook.com [40.107.201.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 C9ED52D23A8; Mon, 3 Nov 2025 07:54:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.201.6 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762156462; cv=fail; b=fQJa0ytePba4KwMitpYOLEgH9msPdHc3mQgG4cgGYdgBzbHB7IwvMsHKhs3U9xHxBlrBTEHsQseDumURlzWLiTePEYlFhRhm09t373huC2Ftr2K0h+lUuKNpu5Bk7NeRTFTof7cbM8SdRoyu/EPDhlCWIeFbSd2+BVgfui+fhNc= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762156462; c=relaxed/simple; bh=qCBX8mmzd8QBvkys4Z3v211HugS1s3SzrXl9HURiq6s=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:CC; b=IA1To4JLWFPcVLn+HPY7XjUeC1ZzaQdPp/L3pbYR0kQ51uQ1FWXspNaSADBUGptZKBESFJlcAMqhrgEq06fYRKzZYV6gkpV4yhVPE1EoCN7OlUVoSiruGwCcu8iGoLYsoDxXV9beWBTeoJutzmyJEH8gsHScAfE5UPl3rt63/SI= 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=MSjKow7H; arc=fail smtp.client-ip=40.107.201.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="MSjKow7H" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=I/GWCETAiBulFC5TV74ZUQI3NBssLdgGa/zsHhDpGYYdCGOqW1fjp+2fxPxj3XaA0CiNEsCqeknaU5BwhP4X4KhP3JZhkcT2rMDjJI37YtZsRDpPfrAoiY99/J6vfLhOgTOyMccxblriKl1y4zwqk4v9+wh4OqlnVBqX1Rpco+q37NicKNWKVwbw1r081ftLQrCOLOusndEIGsePMqsGYjYT9odF7lNZl2kdfA5S39a2JwJJwW1yQrNRr+ktcXq6ijimFJXYi3P0ekLCY9y/5+JbLXpypGLyYjqNREb7gjra/zmMj5C6R5EcAZikLlwYTj/fpIJaNBhFtmZzN34z+A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=P45SyX+S9aeJckBLwfrZZSIMp/FztSN/rn5FSYdZdR0=; b=cpmoniU8xI5V/Fnc+xfXgmEiJMcp0sQ2Uc0yOLZAYNEfD6HmYPSwvwBlRr2nyM9SBfhcJ+lW2M92cxe091POji8loqkYiQ4O5V/CAy9Uv+fq01ZWz8wA3N//vnfx3IhEMENBTTBM27aKhjMyPnMZAaLoLQI376WzQmx536LMNfq/TB+WLMDwYjiWy0SDhuGXqXQ6Jox9P4neqfXGq3Q3ADSfFv5+4zL+BACvJUqyq5l/QnJFU/kP3gilY7UqrTYipm1TcHlBHV8eZ0UcZMPyrKDRXx/SUtMEC4I+K4LML0itJLyukC6uWO5fJlPdFh1jcojpA+36diY3L921ls9wQg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=linux.intel.com 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=P45SyX+S9aeJckBLwfrZZSIMp/FztSN/rn5FSYdZdR0=; b=MSjKow7HYiGCG19yW5hh3+7Y/loI3v229L+RIQcLNRn/nDJPJPeJ/SNMXxR5o+86oevfVSszhbGIhMYuOvd6IzhA3mf7bGCJr5HPMeSMAzb65+zQlTTBTTmTKGts69dUTySvPETVLicI9ZjQWaqirjCkAZxKB0y5JXzF57q2EVY= Received: from DS7PR05CA0021.namprd05.prod.outlook.com (2603:10b6:5:3b9::26) 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.9275.16; Mon, 3 Nov 2025 07:54:16 +0000 Received: from DS1PEPF00017093.namprd03.prod.outlook.com (2603:10b6:5:3b9:cafe::9b) by DS7PR05CA0021.outlook.office365.com (2603:10b6:5:3b9::26) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9298.7 via Frontend Transport; Mon, 3 Nov 2025 07:54:13 +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 DS1PEPF00017093.mail.protection.outlook.com (10.167.17.136) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9298.6 via Frontend Transport; Mon, 3 Nov 2025 07:54:15 +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; Sun, 2 Nov 2025 23:54:11 -0800 From: "Yo-Jung Leo Lin (AMD)" Date: Mon, 3 Nov 2025 15:51:08 +0800 Subject: [PATCH 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: <20251103-vram-carveout-tuning-for-upstream-v1-5-17e2a72639c5@amd.com> References: <20251103-vram-carveout-tuning-for-upstream-v1-0-17e2a72639c5@amd.com> In-Reply-To: <20251103-vram-carveout-tuning-for-upstream-v1-0-17e2a72639c5@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: , , , , "Yo-Jung Leo Lin (AMD)" , , X-Mailer: b4 0.13.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=2809; i=Leo.Lin@amd.com; h=from:subject:message-id; bh=qCBX8mmzd8QBvkys4Z3v211HugS1s3SzrXl9HURiq6s=; b=owEBbQKS/ZANAwAKAV8XsZZKKe6GAcsmYgBpCF8MzGvkI+THYq3CQNYbycQoBkQ2axPjbG02L wUjmleGfoSJAjMEAAEKAB0WIQQzqV4kW+yguuqHrw5fF7GWSinuhgUCaQhfDAAKCRBfF7GWSinu hqt6EACkM3KtVkKdLDxifZuLs7SNq52Dnhyi1x4eOqoLsKnq82g+z+sbgl2DFWSbYWRVSPJVf+p OPBIY6RWh9hmel/vKf+/aXunlwfFR3/2+K2MoqPmEwWcpx+5hgqjOjNVgTj70RQm/UhvF4TmUwY ClLERcfuW3vof7G/Tb2DbIjHvH+XRrffl7v3fmwVTqm/sGnZtBQhYeWaaC7ndMXwt7/S7sW1hwZ fOT6KSQy5Nk+oz3RLz9aHgFkKoNx6kpcDruxZZeDHdK+PBknWNU+NMORHvxNJUilyLqa+wj5Ro5 V/lzMjvL9FQdy5QnOKilt9ppq2i1F3/jB7QDgvInG3p0MPQkHy0C27ceq64rnPP69wI5tdtW7NZ gJaAUHL/9B8oUA8Wvqg/K0JtsO1zFE5DXw6yCZa5L4EPIKKGYm1yvIBbOw7mYZ8O+rwDcDFX7iP y3kNqpp4/+U2NyziCBTfFXfiZy4HQPsU5rhqrjDb5LC+ST+eIQn1GeXUZb7mhFVsczsN1Z6WLJN 3hqMVhfL26a/n62Oo2EBOXWsB/W89i8BXmjeyxvBMVltbuP8p9emyQ4MLRA/EqETDtOr63MiqGa XrJIkCsUHvNltKCj8mOTSF5y1e5t2JsCLi+JtEwvbXr7bIlTPUS4b4+tMDPMdQ1MnYb8cmOeHlu 1XNSYsTYtEBDxHQ== X-Developer-Key: i=Leo.Lin@amd.com; a=openpgp; fpr=33A95E245BECA0BAEA87AF0E5F17B1964A29EE86 X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS1PEPF00017093:EE_|SJ2PR12MB8784:EE_ X-MS-Office365-Filtering-Correlation-Id: a3335280-7cd3-4537-ceb5-08de1aae2f5f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|36860700013|1800799024|82310400026; X-Microsoft-Antispam-Message-Info: =?utf-8?B?NmorTUtOajZKK2c2Y05qbldkREEzUkhJdGE0QTR1VS9CU25lNVFVSzNBUjc0?= =?utf-8?B?ckgrbFZJeGJkNGM0NXVwNm5oTFdqMXd6Tyt2UVRxVUZJUHVpcGg1WTVBeVd6?= =?utf-8?B?ODV5ZEx5Mi9iUzV0c1UrTzcxS1h4aGFBZUcyNXplSDJERktIQmRYa2ZneGJx?= =?utf-8?B?S3VpdThUS0JVbW1VOVVxTS90Vk1lSVY3N1U2VkdqbWtWcmg3THl5cGZUOHdZ?= =?utf-8?B?bEdJOEkvWFhkN2g4L25NZ1l2VWNGMVVaQTM3S0FRc1VKUHVTQVFTQ0hVUEMx?= =?utf-8?B?VUUyYVl2UDM5alYrbUhsRmhyMFUvYmlOZDlXdjdwNG9XSFdoM1IvbURWU2tV?= =?utf-8?B?dXhkajF5T1o3RnM0R240dVl1c2VCMDFzKzBrL3VnSjNxRG1vVEdRMDhYMTVF?= =?utf-8?B?bFUvWXcvV0NMT3ZYQVlGQi83QkNRaVFreklYV2NhUEYyM1hMS1hrNlVnNjlZ?= =?utf-8?B?MitaQ0tqYklqaDdjSGI3d2NqcGNESDNhTEFZMTJqS3VzSkZYNUZSY3ZzdGU0?= =?utf-8?B?ZElvMkhYR1kwbDBnV2Q0VTk4bXRPdXhNVCtLbGxLeHlxVWZEazJTT0xDYlhU?= =?utf-8?B?WXhwcFNMaVdXRDlqOUxLbEFQUEk4SW5Ydm4weUswZzRwZWRVZ1hRUVoveEJK?= =?utf-8?B?emMrVC9Nd3VMb3ZIVkd5ZDY4RDNMYlZGM0k5Y3MrWkhpcjRnTkxlRGplUFBz?= =?utf-8?B?UVNUTXQvc3JqOFp6L0VIaVNvbHlkalBvU1dtZ01ZbTRyRDZVSUVJT1NVR3Uy?= =?utf-8?B?RFFZZ3lUelhESFhncHBCS0pMZGRaa2Z3TnM3TENVTnk4bTUzemVBSk43UE5J?= =?utf-8?B?TTRpdVRkUXpUalJvUm80VlNtanRwMTNONTFRbEg2RElsMWRRS0xBNDdXRFN6?= =?utf-8?B?eWVCdXplTTRNMnFZazF4SzVnWDlyTXczNlg5ZStTd3dlMkQ3UGZOeHlBRURC?= =?utf-8?B?dkdNVWpkY21lUm5jQUo1VVY3VEx3SGh4VHRvbExMa2U4ZjhnNnRZNTc0dnVG?= =?utf-8?B?RkpkY002c2JvSUh1Ri9KVUZLa25lNVlhek9ib2kveUVESzhhVjFhZExuanAy?= =?utf-8?B?R2dyUnhjRFVSZG1VTzNXTTE3UloraHkxU0I1ZHFsdDZKTXVHZk5YNmlvUUVZ?= =?utf-8?B?S1BFOUs4MzJkdU9CSlAzNm9lWTRkY1c2VU4yRXlQakUrNWFheDZPRTdJNDB0?= =?utf-8?B?enRCYXdqMENkSTRDTEFKLy9EK2JTSjNkY3h3Y0ZrVzF6cXBIUWx4Ty9kT01r?= =?utf-8?B?WDlxYUJiTGoycG85U1FVc1lxTVpXQ0s1Q1BMV0FteDJsM0Q4UTlkU09wa2JY?= =?utf-8?B?dk5ZeWtpM2diUjN0OXkvOVI4S3JOSHJUZk5QWHh6aVh0bXI0ZXNmdXRDSjAr?= =?utf-8?B?aFkxRkNmTGJJMVc1YUdOaGdoZW13WFo4ZHR3SHN5bm5Dak1pMUpTV3pVVWZr?= =?utf-8?B?bzlXcmJyQjNRWGxLNkJYTkxsYTRETVBPeEVuWFBSNm9zSUE4Um1Lckc3dVdn?= =?utf-8?B?aVFwTzVHc1F5QXBmdnVWNDkwR1hXS0JQTGYxYk1MTjZuajNCMm14d0xoeVNy?= =?utf-8?B?TGFzMVo1K3ZtRzFsWjd3a2twYklNcG9rbUNiQlU3MFFyckowWlBVM09iakNF?= =?utf-8?B?ZHFEbmFzdysvdi9JME1MR0xUcHhXbjNJTnRZcldYczhNQVcvYTJlVHZEaWpS?= =?utf-8?B?ZmU5UGxtdjZDTzZGNHVuMVFrNzVkUUsraFFuR1kycTB4VTlkZFo2blF1WitS?= =?utf-8?B?Vzl3WVh4Z1AzcE5jL2xzdzFhS3lWdkZYeW00SC9SNzJGeVAvVjBXMUF4Wi9N?= =?utf-8?B?c0VUQTNLVS83V0prSjBuQ2g4ampvV0JBOGM2MnJ2cUsxa2g1U2FhdGN4azRX?= =?utf-8?B?MXRmMVpNekZCUWZKd284UDI3K1BhZHlKZE81Sk44S0VaT1RDSHJOZU9jbXVK?= =?utf-8?B?Rmk1cmNkM0dhblREWG41R3R5UCtjY2h4SENsT2pubzlva1VFeDlXeUViMWtG?= =?utf-8?B?RFJwM0NMdlZ6aG82V2I1UUVieFZCTktJMW5DN0pOY1hBUS9jZEdxcGZmZkIv?= =?utf-8?B?aEMxc0U0Vzc1ck9sK0Z5bmtTa0hHSkFVMWE5YTA3ZzFRcE5wQVpaUkVXOEdw?= =?utf-8?Q?G+7E=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(7416014)(376014)(36860700013)(1800799024)(82310400026);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Nov 2025 07:54:15.3735 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: a3335280-7cd3-4537-ceb5-08de1aae2f5f 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: DS1PEPF00017093.namprd03.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 Signed-off-by: Yo-Jung Leo Lin (AMD) --- Documentation/gpu/amdgpu/driver-misc.rst | 26 ++++++++++++++++++++++++= ++ drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c | 17 +++++++++++++++++ 2 files changed, 43 insertions(+) diff --git a/Documentation/gpu/amdgpu/driver-misc.rst b/Documentation/gpu/a= mdgpu/driver-misc.rst index 25b0c857816e..5a71fa9c6782 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 implementation. + +For those platforms, users can use the following file to set the carveout = size, +in a way similar to what Windows users can do in the "Tuning" tab in AMD +Adrenalin. + +Note that for BIOS implementations that don't support this, these files wi= ll not +get created at all. + +uma_carveout_options +-------------------- + +.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c + :doc: uma_carveout_options + +uma_carveout +-------------------- + +.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c + :doc: uma_carveout diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c b/drivers/gpu/drm= /amd/amdgpu/amdgpu_atombios.c index 1ebfd925b761..e9f71888ce57 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c @@ -1855,6 +1855,17 @@ const struct attribute_group amdgpu_vbios_version_at= tr_group =3D { .is_visible =3D amdgpu_vbios_version_attrs_is_visible, }; =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 uma_carveout_show(struct device *dev, struct device_attribute *attr, char *buf) @@ -1904,6 +1915,12 @@ static ssize_t uma_carveout_store(struct device *dev, } static DEVICE_ATTR_RW(uma_carveout); =20 +/** + * DOC: uma_carveout_options + * + * This is a read-only file that lists all available UMA allocation + * options and their corresponding indices. + */ static ssize_t uma_carveout_options_show(struct device *dev, struct device_attribute *attr, char *buf) --=20 2.43.0