From nobody Wed May 14 00:29:16 2025 Received: from EUR02-VI1-obe.outbound.protection.outlook.com (mail-vi1eur02on2053.outbound.protection.outlook.com [40.107.241.53]) (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 3683B20CCE5 for <linux-kernel@vger.kernel.org>; Tue, 1 Apr 2025 15:49:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.241.53 ARC-Seal: i=3; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1743522544; cv=fail; b=fRwJ+lD20YhhGLJPeXftvEkqje+USlQRHP8BRWOQmK43ubXEzLDN0slD3C9zXCA5sSn/UIOhtKaCubjpTt1Ho8tqWitT9d/3LVmmDcLLh2TQjZDy43ieICfVqgh2wdsf4UwL3RNCP13keKlhiTKZ4Q57jmq0QeBAdqL7J0x0Wxg= ARC-Message-Signature: i=3; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1743522544; c=relaxed/simple; bh=vw17WZ/KoHZhanWzmSq5u445Z8IkTvYsDsFP9E2TLnA=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=Poc1h//bIH/BbQSSwq5W/tLBl+ml/ymArQdXTfaw/9UuEmoEpEQAhrMcLoHuegdEKe1tm7NFpmwtRVdijkFoDlso2sC6bCyBDYC0O5xMLR4TUjj/+ovZ/cqCwEqPafBEVxCug4sV9SdXGI/ZkYiapqZ/JC9+ldgrJhBCRqRYt8c= ARC-Authentication-Results: i=3; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=arm.com; spf=pass smtp.mailfrom=arm.com; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.b=Psr0hmAn; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.b=Psr0hmAn; arc=fail smtp.client-ip=40.107.241.53 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=arm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.b="Psr0hmAn"; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.b="Psr0hmAn" ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass; b=Bt416+ix0NkstJxHw9wZ5xIMPc2IFPmPjp+slA7FBkZ4Ryik7+SWiNoE/IIGR7kK0NRsQ5ec8UOaq86h9k9CxNKL/3ZHMxjwDhrl53Tja4EM5O/GdzktWpDtjI0MI+mjS5fx1ffvEe1o84DbExCHrYWV3GHFNCX/m5v1XBY1nkYdzUqpUsfNrY8uT0VT493w8i6iIvZWpYcjrUrYt/nmiU9UpOrGY6FhgQGQST9qWES4D0++mqw1UZ8oH4OdpbXKQMZSiF9I8lYZpBNWqRjIBuvVK6huvGTxYHgQk3E1abHtRcgHirqTUh7QraN+ReV0pcNWD50pWlZVlTxQSRBHHw== ARC-Message-Signature: i=2; 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=73aJ/NgW4EkLrd1krm3aj73AkSedo8cBOtOcevIJ3xI=; b=KEE7lfm34mVnLgnMfE1K9tCASDA972IZIJJtnfKXWTi7YeDf43QlHv6oK4s94Vq49vhx/HyRK8ASo9MQLH9Iz4oi1O1z9anrXLDHz6MmUPBPVbx2A8CGrhupwGrVDl35DQNTl2Djbkg6+59wi8/VMfaIC+Ze7rgS6QiqOaJdzD2pwdi4cdBgMREYZVd7rJWVrgkATJ5u3Ul8pR/k3CFseCF9PEMfxA7Skbx5iuHvOR9m4dNjr91K82f7KNlXeazS56JpLxTVg6EIT+jhv32a12r6TtR0bygR8kDfi9Im/TEX4uF7zp872Zws6iNRNmmTOAPqM6+SkAUdzJ6d2EN8hA== ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 63.35.35.123) smtp.rcpttodomain=vger.kernel.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com] dmarc=[1,1,header.from=arm.com]) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=73aJ/NgW4EkLrd1krm3aj73AkSedo8cBOtOcevIJ3xI=; b=Psr0hmAnnMUxJ63tm3LV2koB6DVi/itVyHWIY4kPjVeL0Uq/iv84l/mOr3kjfe5XdmQI9gKl6I3xDx9gUGMhkPd+dR0qrNW0b2yTi1YZvonYyaSQRWa/5D5w6SNwLqPaIo8FHEJBgUOxPuBY0nojOYkwMVBAooRpE/176SiIfhs= Received: from AM0PR10CA0108.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:208:e6::25) by PA4PR08MB7593.eurprd08.prod.outlook.com (2603:10a6:102:26f::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.54; Tue, 1 Apr 2025 15:48:56 +0000 Received: from AMS1EPF00000049.eurprd04.prod.outlook.com (2603:10a6:208:e6:cafe::fa) by AM0PR10CA0108.outlook.office365.com (2603:10a6:208:e6::25) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8583.39 via Frontend Transport; Tue, 1 Apr 2025 15:48:56 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; dkim=pass (signature was verified) header.d=arm.com;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; pr=C Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by AMS1EPF00000049.mail.protection.outlook.com (10.167.16.133) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8606.22 via Frontend Transport; Tue, 1 Apr 2025 15:48:56 +0000 Received: ("Tessian outbound 8df300e92501:v604"); Tue, 01 Apr 2025 15:48:55 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: f877ce8a26a71364 X-TessianGatewayMetadata: oHNERHLLSIuK45Qn4WjcaR8YD+44SIV0c5uhxWi/9qc6kjsQR/FSkxNF9NHjyATuzEYO3ztuWTkzNT7avEtgqMjSiv0id4Y4OXo1JODvoBzsKvl6XJNcVJc1GBfAdKJ4xPup6NuGkO/tETr1ZZus1wihxKkVvhi9kGcs+KBuZJT8PeSBiLkC1ZKX6hHVFjnilHeMoM2mXSofbsJu1vRi/w== X-CR-MTA-TID: 64aa7808 Received: from L037f915c84da.2 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 0A66C371-A3FD-4516-8548-5403BDA98438.1; Tue, 01 Apr 2025 15:48:49 +0000 Received: from EUR05-DB8-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id L037f915c84da.2 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384); Tue, 01 Apr 2025 15:48:49 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=auyrbq0jYWdHp1I81vnBt+HDZO/Ah2/Z5KBln9Nd8CE0vRWcR1Q7HnYMvNIYYdOzaZZxQWrKN6E0EyF/hsaCnqzi9bejR/rCTdPseqDGi1mDdXc8UCw/55vT0iVIjTLNsje4sRJI6Y9uqXLwO1vHtL5990s4CFY5rHPgOly+/xqMdGjXf1LtFpRL7PDrYFa1gEpNhuIEz1fVlXSYgXFbTWWBNC3GJwH1gR5XpTWg+IgCeOhAz7IKXYXijKkldrmlN+dMy2z3JQ17+lTDazLKnr+gaAKY/EJcZT986+DLuMQ7KjDahumxKV2gNIuzzNs6jUcIrlYR9JOYiId/dsThPg== 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=73aJ/NgW4EkLrd1krm3aj73AkSedo8cBOtOcevIJ3xI=; b=QS2juvUtvvWlJF1ik2mdd/Rz1U+naA7hCITEqLgaaYgQYx0WwHf2UjkquMQ6hhxJtg8ZeAv4j/ncxk5fMRQoRjBBNu9+Z4fFcOkkAsT0aGGSjo/1uZW07vu/1GHX9Kzz2BQFBxFD7fwMmQypKcAtpO/A8hOAP1FukU0NGu7Hw696xOh1DyL24rV+7JpFqYNnIncBoMclfW/SuuZnvvkiIpW6GVpJulRuihnwk4HG5Nn5MbCtsuaWyZDYic19OR2oG7LBsj+nAmzy6doXma4jZcP/mt3F7Tj0hP/wcTerL9gFKPlglhfSCHAMnLIXCR/zUsHyLAx7tHiMNrPbWqXwGA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=73aJ/NgW4EkLrd1krm3aj73AkSedo8cBOtOcevIJ3xI=; b=Psr0hmAnnMUxJ63tm3LV2koB6DVi/itVyHWIY4kPjVeL0Uq/iv84l/mOr3kjfe5XdmQI9gKl6I3xDx9gUGMhkPd+dR0qrNW0b2yTi1YZvonYyaSQRWa/5D5w6SNwLqPaIo8FHEJBgUOxPuBY0nojOYkwMVBAooRpE/176SiIfhs= Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; Received: from AM0PR08MB3315.eurprd08.prod.outlook.com (2603:10a6:208:5c::16) by DU0PR08MB8279.eurprd08.prod.outlook.com (2603:10a6:10:40d::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.44; Tue, 1 Apr 2025 15:48:47 +0000 Received: from AM0PR08MB3315.eurprd08.prod.outlook.com ([fe80::42a0:1b6e:cf98:d8fc]) by AM0PR08MB3315.eurprd08.prod.outlook.com ([fe80::42a0:1b6e:cf98:d8fc%6]) with mapi id 15.20.8534.048; Tue, 1 Apr 2025 15:48:47 +0000 From: Lukas Zapolskas <lukas.zapolskas@arm.com> To: Boris Brezillon <boris.brezillon@collabora.com>, Steven Price <steven.price@arm.com>, Liviu Dudau <liviu.dudau@arm.com>, Maarten Lankhorst <maarten.lankhorst@linux.intel.com>, Maxime Ripard <mripard@kernel.org>, Thomas Zimmermann <tzimmermann@suse.de>, David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org Cc: =?UTF-8?q?Adri=C3=A1n=20Larumbe?= <adrian.larumbe@collabora.com>, Lukas Zapolskas <lukas.zapolskas@arm.com> Subject: [PATCH v3 6/7] drm/panthor: Add suspend, resume and reset handling Date: Tue, 1 Apr 2025 16:48:21 +0100 Message-Id: <55457330ddeaa95ad389076b7ad01be452836ae2.1743517880.git.lukas.zapolskas@arm.com> X-Mailer: git-send-email 2.33.0.dirty In-Reply-To: <cover.1743517880.git.lukas.zapolskas@arm.com> References: <cover.1743517880.git.lukas.zapolskas@arm.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: LO0P123CA0009.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:354::14) To AM0PR08MB3315.eurprd08.prod.outlook.com (2603:10a6:208:5c::16) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: <linux-kernel.vger.kernel.org> List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org> List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org> MIME-Version: 1.0 X-MS-TrafficTypeDiagnostic: AM0PR08MB3315:EE_|DU0PR08MB8279:EE_|AMS1EPF00000049:EE_|PA4PR08MB7593:EE_ X-MS-Office365-Filtering-Correlation-Id: c4e8fccc-4f3a-409e-cc65-08dd7134b62c X-LD-Processed: f34e5979-57d9-4aaa-ad4d-b122a662184d,ExtAddr x-checkrecipientrouted: true NoDisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0;ARA:13230040|1800799024|366016|376014|921020; X-Microsoft-Antispam-Message-Info-Original: =?us-ascii?Q?79tkHEDLbsA/NyQjgbBLjF5+7u/szp7v0JekKkjHgqkYRURNsjcq4STDLNrL?= =?us-ascii?Q?4XwuPp17bmvrXr/GW0YE8+eS59322mp7zY6x/MDB7zOrKc6Y7TW49IK58nOp?= =?us-ascii?Q?3YazQL8fz6dFhADYkuaacxSxIqADLIpntx+utA+P5jZl/ZHxc+K9PcOAKIVV?= =?us-ascii?Q?Psq3cAZ4qxJXg6pRG4/Xx7+o7IyQcPSMceXEJyE92IMvc49ugKzQkq9rB9pk?= =?us-ascii?Q?zQbyeJDr/VdG+29LUwSOTj8yQ6B8VlUMaIrzedh51A+CJzCVvXpRTUyLBGMn?= =?us-ascii?Q?cbtSzFsUcCoVNUcXl3cnVRWIMaTmkziZ/EfBHZvyommA+87U0eiltSQnPO9m?= =?us-ascii?Q?L1FQEtDkQYZIMi+MQG7y4vv/ugnws0ywOyFCEtBVqOapWhQZmAh9gD8gjtGp?= =?us-ascii?Q?tqCJLynLEM40MeaiNZkXn1n1zyjfDop70gfF0l8IH0lmS51tTvv0LAErIvnt?= =?us-ascii?Q?ynzUAezRI/wnGPQ3mvj/hcGGNlv6uIZLGKmV3nNoue3+s54R4uwMYwIW8FDT?= =?us-ascii?Q?nIQnZciHPCivmFa22oVd+4/D9Zfp2NaDuqG5fW/yBTIyp+7NsISBd8ULEkpq?= =?us-ascii?Q?yqrTQYnnsIWPkFURX6M/ONwjOSIlbCPRYccxndpMji6slAfR7P4M7jYgo+3j?= =?us-ascii?Q?uAgELKhwOTydfGFuXcqk4Pyh0GZ614e3c3cuLOFIEY8pZ2jabhWG5RepZeU7?= =?us-ascii?Q?vzPFqnIoCtT4G7SpCO67euZoCy5leD+MEeLzbk9Tq6P66bP6GXqclxLK8d6C?= =?us-ascii?Q?H32pAXxW78cF48fKz0MT2sSah7+wgVM3EAS90WmYmtJBLUoT1LvoHmDV/LsN?= =?us-ascii?Q?XnjQH8k5Yil6b+VG6b/Ykv342hcUwk8H4KQ0BLVdQbJZtEDCTuRzqOx4yo/d?= =?us-ascii?Q?mHkwthkZ0sBtKt3Dr9qz7nyOkLf1uNBspYVutJM7xs4ML3thYJ75PDeCoFN2?= =?us-ascii?Q?NyOnCAV51iPrMTA+bJ+QcGT7Zf2lWXKjL7ZGlBzY1ZwgEZN6shbTWcbXuX+U?= =?us-ascii?Q?XujWct7oMWnqaJNo9+yj1CNiPc4rand8H9V9AfrE6yskBBxVqe6OzrRUaje7?= =?us-ascii?Q?7fT4IiTBSSbI03CXHzIx8hlTOFu21bL4rkAav6gIVhgv7fFQcu8bqU/rwm+V?= =?us-ascii?Q?BLuf9SXFesPQca9n2q744JHrccVjpVlh05mIGc5kaPe0JQZz5h/FhSI0Xcyc?= =?us-ascii?Q?1DVeJ7S4JdY2ZAyYgaAVNQBxbSJb9KePcBNpR8KIJndkGOAzgXoSW4rJ2/It?= =?us-ascii?Q?KJZpESy3MMal27/+qTs6zTgxsVVjEWb+VnAS4qaApiJ4XoM9jXnK7aAmxnhR?= =?us-ascii?Q?Rbamgx5DYGKre7b2qHSJqMkTdFqrVLhSa2Bjk/6QobPC9T/ALUchDIkeryx6?= =?us-ascii?Q?bO+P9bbrWREf9dknVACECOA+qf86bePMRAjK3xpOJ6X68ckNJeeOWkQppoCL?= =?us-ascii?Q?OLRJVpwqtr4=3D?= X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR08MB3315.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB8279 Original-Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-SkipListedInternetSender: ip=[2603:10a6:208:5c::16];domain=AM0PR08MB3315.eurprd08.prod.outlook.com X-MS-Exchange-Transport-CrossTenantHeadersStripped: AMS1EPF00000049.eurprd04.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: c457a5ca-72c1-41cd-6aaa-08dd7134b0ec X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|1800799024|14060799003|376014|35042699022|82310400026|921020; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?YOpmY8eJ4pyKTqN2tjzItE4wOl3tbVHhmX8hkHlvrl1lLWzybmk2jhsYg+v3?= =?us-ascii?Q?DfuOKtw7MCAbK1Ya0u/2SMY3NkuHBnfzJl6hvnRipWu3SUnDqRbjjK6ZPRsI?= =?us-ascii?Q?rEEhrjqsFtDiHeQ8DyckO/nmdBJdArr52GmvqfcRwGieFXRBYHWbt4sxNBwV?= =?us-ascii?Q?R7mZ08asW+ZshtHfKVk0wZ5XeRf8393o+hsGCHLhc7UYhB3twSiWUhz6vMqs?= =?us-ascii?Q?sq4KYw9G2in/Jy/9c9ungtTG64ORTDhtlvCr71QmeljcT2O+HFGxmhRC9GkN?= =?us-ascii?Q?qGlUn766ZoDzgZgAujhhmS6tvf5Yzsg988VeoRuEy+5NmaxgWyPVQp8a/3hV?= =?us-ascii?Q?5O/Fd0cgPvPktpHkDx9af5Yx34AkgRj3cXfW6PuXalWZbpYN4UgK+TRhB0As?= =?us-ascii?Q?RBjRIuuqoIQdhogwerOIFq2ky1nlapyxIhzGFezHbhWhOosguXOtf5Ge1ccD?= =?us-ascii?Q?h61pKQnjOAxyHgV6nj9VrWQyuiHFR5+PSzVNb8fP+SJ85DixTAIoqTSVos/J?= =?us-ascii?Q?EaIH/BAdaNLjusWHHyAvXb86s8I5ybYGS6HrzDXTXow9k517sxYbL7PVy93S?= =?us-ascii?Q?NJcquCgiM0h718ajUdgsnKlB792yumauxFXRfJ9vuwNeI/TNeSv2mMqc101+?= =?us-ascii?Q?IDf0wVnWrhXz0gy1gjaidcVWaYyryf2Lob47WtH7d3NMtRVoPYsy6uEtXWgv?= =?us-ascii?Q?hVtRgszpM52ZeLwYVZu7vCuMAJ75v1lGsE5eDmBjTfONmHGCTzUHVPULF8No?= =?us-ascii?Q?PasUm/m5LS5+1YEGtWyok3kteITB+yxfIQZ1/iRFUdtVj7ss5x4QMORKVtqC?= =?us-ascii?Q?nYbcpxrzn38YgH/QVU2JNLsL8/+M33DAliTkvYfDbFrekFqybRbHwz8lW0t7?= =?us-ascii?Q?vUJDIT7QtIbHqN/pp4UcmW6QKYFl7AAYled6E5/FYzpVLJHWx4qhQpR/vMBz?= =?us-ascii?Q?GrLy9lBcR2sVtQbInvOYI8wgYQs9RC4gHOd+mul0QP6ZFfVsAYKIOsWMWzTi?= =?us-ascii?Q?Gjx9y71bBclccMKDHX/f/L6nPYhu405du6XsOAxjYMJ7k5cFRvIrsrvfim6q?= =?us-ascii?Q?LhJTtjXadkrk8RR+ZR05Y4U5NGtmLlBPsyMUA9g1SUfvIZn+zdITgXCoFwOe?= =?us-ascii?Q?v0Kfve810c9N/hR4FHL45qmSDnq/9EiLu62+Pia9es5klrCjl9fq+MNhVcjZ?= =?us-ascii?Q?6M2pVkbJF/1ntO24k/upiajgbgReuX/U5gDBmztKRzUGpV1XHi+vIUY8ovRX?= =?us-ascii?Q?01wttl8tAabyZRSSPQJd31/540esRxAdGeq7dsBzwXsJ/MejfawFSVDI7VSK?= =?us-ascii?Q?vTR8gmw/6SPfrKby2GfyBoFzlHtfeR7Kf1sH/zDmK+0cFaAjYJYVHEqOvPmO?= =?us-ascii?Q?VYairxEXNdMWD+YxYRFcveqYaLnPMZy3mZ6U97dfHZcJZQ/J6dJIR6RJ4YaG?= =?us-ascii?Q?U237hAd2Ioi23CMc0GEMuXY6rocAAZ62W/507+UIlJbsXlwZklxgRv0lgJOa?= =?us-ascii?Q?1aon07LOPBP0zQU=3D?= X-Forefront-Antispam-Report: CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:64aa7808-outbound-1.mta.getcheckrecipient.com;CAT:NONE;SFS:(13230040)(36860700013)(1800799024)(14060799003)(376014)(35042699022)(82310400026)(921020);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Apr 2025 15:48:56.4324 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: c4e8fccc-4f3a-409e-cc65-08dd7134b62c X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: AMS1EPF00000049.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR08MB7593 Content-Type: text/plain; charset="utf-8" The sampler must disable and re-enable counter sampling around suspends, and must re-program the FW interface after a reset to avoid losing data. Signed-off-by: Lukas Zapolskas <lukas.zapolskas@arm.com> --- drivers/gpu/drm/panthor/panthor_device.c | 7 +- drivers/gpu/drm/panthor/panthor_perf.c | 102 +++++++++++++++++++++++ drivers/gpu/drm/panthor/panthor_perf.h | 6 ++ 3 files changed, 114 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/panthor/panthor_device.c b/drivers/gpu/drm/pan= thor/panthor_device.c index 7ac985d44655..92624a8717c5 100644 --- a/drivers/gpu/drm/panthor/panthor_device.c +++ b/drivers/gpu/drm/panthor/panthor_device.c @@ -139,6 +139,7 @@ static void panthor_device_reset_work(struct work_struc= t *work) if (!drm_dev_enter(&ptdev->base, &cookie)) return; =20 + panthor_perf_pre_reset(ptdev); panthor_sched_pre_reset(ptdev); panthor_fw_pre_reset(ptdev, true); panthor_mmu_pre_reset(ptdev); @@ -148,6 +149,7 @@ static void panthor_device_reset_work(struct work_struc= t *work) ret =3D panthor_fw_post_reset(ptdev); atomic_set(&ptdev->reset.pending, 0); panthor_sched_post_reset(ptdev, ret !=3D 0); + panthor_perf_post_reset(ptdev); drm_dev_exit(cookie); =20 if (ret) { @@ -496,8 +498,10 @@ int panthor_device_resume(struct device *dev) ret =3D panthor_device_resume_hw_components(ptdev); } =20 - if (!ret) + if (!ret) { panthor_sched_resume(ptdev); + panthor_perf_resume(ptdev); + } =20 drm_dev_exit(cookie); =20 @@ -561,6 +565,7 @@ int panthor_device_suspend(struct device *dev) /* We prepare everything as if we were resetting the GPU. * The end of the reset will happen in the resume path though. */ + panthor_perf_suspend(ptdev); panthor_sched_suspend(ptdev); panthor_fw_suspend(ptdev); panthor_mmu_suspend(ptdev); diff --git a/drivers/gpu/drm/panthor/panthor_perf.c b/drivers/gpu/drm/panth= or/panthor_perf.c index 3cb79b999886..753c65294745 100644 --- a/drivers/gpu/drm/panthor/panthor_perf.c +++ b/drivers/gpu/drm/panthor/panthor_perf.c @@ -1803,6 +1803,76 @@ void panthor_perf_session_destroy(struct panthor_fil= e *pfile, struct panthor_per } } =20 +static int panthor_perf_sampler_resume(struct panthor_perf_sampler *sample= r) +{ + int ret; + + if (!atomic_read(&sampler->enabled_clients)) + return 0; + + ret =3D panthor_perf_fw_start_sampling(sampler->ptdev); + if (ret) + return ret; + + return 0; +} + +static int panthor_perf_sampler_suspend(struct panthor_perf_sampler *sampl= er) +{ + int ret; + + if (!atomic_read(&sampler->enabled_clients)) + return 0; + + ret =3D panthor_perf_fw_stop_sampling(sampler->ptdev); + if (ret) + return ret; + + return 0; +} + +/** + * panthor_perf_suspend - Prepare the performance counter subsystem for sy= stem suspend. + * @ptdev: Panthor device. + * + * Indicate to the performance counters that the system is suspending. + * + * This function must not be used to handle MCU power state transitions: j= ust before MCU goes + * from on to any inactive state, an automatic sample will be performed by= the firmware, and + * the performance counter firmware state will be restored on warm boot. + * + * Return: 0 on success, negative error code on failure. + */ +int panthor_perf_suspend(struct panthor_device *ptdev) +{ + struct panthor_perf *perf =3D ptdev->perf; + + if (!perf) + return 0; + + return panthor_perf_sampler_suspend(&perf->sampler); +} + +/** + * panthor_perf_resume - Resume the performance counter subsystem after sy= stem resumption. + * @ptdev: Panthor device. + * + * Indicate to the performance counters that the system has resumed. This = must not be used + * to handle MCU state transitions, for the same reasons as detailed in th= e kerneldoc for + * @panthor_perf_suspend. + * + * Return: 0 on success, negative error code on failure. + */ +int panthor_perf_resume(struct panthor_device *ptdev) +{ + struct panthor_perf *perf =3D ptdev->perf; + + if (!perf) + return 0; + + return panthor_perf_sampler_resume(&perf->sampler); +} + /** * panthor_perf_unplug - Terminate the performance counter subsystem. * @ptdev: Panthor device. @@ -1836,3 +1906,35 @@ void panthor_perf_unplug(struct panthor_device *ptde= v) =20 ptdev->perf =3D NULL; } + +void panthor_perf_pre_reset(struct panthor_device *ptdev) +{ + struct panthor_perf_sampler *sampler; + + if (!ptdev || !ptdev->perf) + return; + + sampler =3D &ptdev->perf->sampler; + + if (!atomic_read(&sampler->enabled_clients)) + return; + + panthor_perf_fw_stop_sampling(sampler->ptdev); +} + +void panthor_perf_post_reset(struct panthor_device *ptdev) +{ + struct panthor_perf_sampler *sampler; + + if (!ptdev || !ptdev->perf) + return; + + sampler =3D &ptdev->perf->sampler; + + if (!atomic_read(&sampler->enabled_clients)) + return; + + panthor_perf_fw_write_sampler_config(sampler); + + panthor_perf_fw_start_sampling(sampler->ptdev); +} diff --git a/drivers/gpu/drm/panthor/panthor_perf.h b/drivers/gpu/drm/panth= or/panthor_perf.h index c482198b6fbd..fc08a5440a35 100644 --- a/drivers/gpu/drm/panthor/panthor_perf.h +++ b/drivers/gpu/drm/panthor/panthor_perf.h @@ -13,6 +13,8 @@ struct panthor_file; struct panthor_perf; =20 int panthor_perf_init(struct panthor_device *ptdev); +int panthor_perf_suspend(struct panthor_device *ptdev); +int panthor_perf_resume(struct panthor_device *ptdev); void panthor_perf_unplug(struct panthor_device *ptdev); =20 int panthor_perf_session_setup(struct panthor_device *ptdev, struct pantho= r_perf *perf, @@ -30,5 +32,9 @@ void panthor_perf_session_destroy(struct panthor_file *pf= ile, struct panthor_per =20 void panthor_perf_report_irq(struct panthor_device *ptdev, u32 status); =20 +void panthor_perf_pre_reset(struct panthor_device *ptdev); + +void panthor_perf_post_reset(struct panthor_device *ptdev); + #endif /* __PANTHOR_PERF_H__ */ =20 --=20 2.33.0.dirty