From nobody Wed May 14 01:09:15 2025 Received: from AS8PR04CU009.outbound.protection.outlook.com (mail-westeuropeazon11011018.outbound.protection.outlook.com [52.101.70.18]) (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 984637DA93 for <linux-kernel@vger.kernel.org>; Tue, 1 Apr 2025 15:48:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.70.18 ARC-Seal: i=3; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1743522537; cv=fail; b=o17DvAuf2eVAqifoQpRVtBFNG/tc59VpibR7XeolGQU/BXf/bO4XJ5Cul2czNL0S/pXLoeeJSrJwE+9Vbk4fjAhOPzUVyCvXEhttO4T1+BD0KaYCbuRgds9d8tUHHHbIIiNitXZ5wtx077LWz8nTQZ9oPKbC43DMfQD19Fe5EIo= ARC-Message-Signature: i=3; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1743522537; c=relaxed/simple; bh=gqPiVdwTBUEZ5TcRPUL3d78twDD+RZc4ZivDsA7/rOM=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=EWsa7yLNTstvwgMUK95IOlL+JMQFfBcOYfxKzy1EbwGRjotDePz6MeD6FCrsK0C3q+7uYmH83LE0/xhf8YsNIc84RrldGESzw3qMNO6Pd1C7Hmt1zl0aSuRaU68cEMOSIW4G93zwuyWkw9vuJ1+Sr37frqQqfzhkBAQguzyeVOs= 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=ZB4XxlhL; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.b=ZB4XxlhL; arc=fail smtp.client-ip=52.101.70.18 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="ZB4XxlhL"; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.b="ZB4XxlhL" ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass; b=ngSzfymkucHOmyFNk4PUKeALvIKHzcKHmcYe577sg95/FyV6T8rPxx96DnHDcZg08FPbVGV7W610077Ets49t6x58bbJs7tBKgIxkPMvlpfThfIHo7bupClY8/SoyHM2yFXxw6eWXBCNKRI8TjDq9zx0lyqtKyFZJ7T4MdRWwpqiTFy04FlRYgg0lOK1Hbcp8ktDY7IMYJm41y/Nr5Y++12nBdToizO4M0dUuXs2DHv6PaJwUFzHeIAgfZ3krQ+BPAOAUuMXOo+Z7hMZubojzAOxrGy8scfwLNZLeZOoj7qMF97r7nCpd2lnAPlFKfm2kEAqKEkhi8QD9+G3T8IOjg== 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=RKToYnsnhK/atjtQcUyS+m3lGaKZADzK4Xhkt3mZuVo=; b=PoQUD+RTTPvyMnQXMD60GpLSxTMpE+8tuHE2Oc70wu+f0t01tZfszp+38lOtbY+P9iY5FT5kT5ODGo97ysMF+jAh2NK8HMTPw7Gl4Wp9nKzBo9DUYILnY1qbqvX5cALSInxE95WkKa4C0HXKTTom4mZeHTbWmPY0eclFvV4utf1ujrwRw+enSZOKTq+zjObEke8HdTwxXWkcoiR1APmNFdFaDv6Wf7AQmCu89v6plgbp61YmzJzDhulvcz9cLTGw+vKf3h7eoqgCMrFDjBbvPvxQPbEoB09qTHeghemwiJrquDKnajgCk0w3RjPuODxWB5ASbCj6Pe38lPp9/adn8Q== 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=RKToYnsnhK/atjtQcUyS+m3lGaKZADzK4Xhkt3mZuVo=; b=ZB4XxlhLBJzUytrgYqaEHiYB5nHTNaTFSoJ1iZh/P0dCn7o4B/4W7EWXOTr9tz/Sh7pkXFeT6GeM4Cqmj6eL0mLJfAB2eagtTFuVsHlaeCh+1DZwHaBlWCOZJTKaTgD2qwylGPn9OR+LwQWJCM03w/NAbCvGKFl/fNHlUbsjIps= Received: from PA7P264CA0166.FRAP264.PROD.OUTLOOK.COM (2603:10a6:102:36f::17) by DB4PR08MB9191.eurprd08.prod.outlook.com (2603:10a6:10:3fc::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:48 +0000 Received: from AMS0EPF0000019B.eurprd05.prod.outlook.com (2603:10a6:102:36f:cafe::4) by PA7P264CA0166.outlook.office365.com (2603:10a6:102:36f::17) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8534.54 via Frontend Transport; Tue, 1 Apr 2025 15:48:48 +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 AMS0EPF0000019B.mail.protection.outlook.com (10.167.16.247) 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:46 +0000 Received: ("Tessian outbound d933a9851b56:v604"); Tue, 01 Apr 2025 15:48:46 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 3fdee01f070c5258 X-TessianGatewayMetadata: zdau7lNxuKT/PBcDwz3JCS2lj63ukJ2jrJIWxTaUjM4J6d/6vgGv2Uba6bRv7oVwjPrFR7AVbtJd2w2lXo0EC7ypRf38cXS0EBPE8gRernDiHiVlJ4Fv6w5eUk61eC8BtMmtjqw2Kz7GPm42uGpB0DedA5fQQA6MXUpJUpWUmae+F/l/q0nIP+VWkx+pkSzP3TzAnnKjhnU+Noi4B2eyuw== X-CR-MTA-TID: 64aa7808 Received: from L12314321001d.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id A8011DF0-7E90-4AE2-B5FE-6DADAC91EE5E.1; Tue, 01 Apr 2025 15:48:39 +0000 Received: from EUR05-DB8-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id L12314321001d.1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384); Tue, 01 Apr 2025 15:48:39 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=gSx1CPoRt16r07GY7pWLzthTJMdFmrhOJY53q3dMq4FHZahsLE8CoEey/1+bpyGDgEVMTdTnqPjegb/wT/XPXeUMyoywCEazb2t7wVJMvSfaO2inGYQ79K1IU6e+O4e1Q5Gy5KAjKlYj4eEZ+sGaXLxlQN7f//vJ/Nx71srbCNj7z+U2druhY/VUOk/+Su0IE+W/5y/yChHlwEvq7HhL1FwwD+Atj4JSVLoV2hTzwAw4A+UWh4M0csElGJUbSXAYNTBmfSzd563jETc1hNHj9tF+7L1Ow+nTeiXgX8zQQWJ+/wJg+uzXrFqIvlyvbxtHvlTNSIeqmY+KPk+WCZM6rQ== 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=RKToYnsnhK/atjtQcUyS+m3lGaKZADzK4Xhkt3mZuVo=; b=IQJHJzMawE3owv7ibm8XZ5HwRvxl5ZHCzxPXJWWTvgk5o6v+ra7w319dnhnzfxG+JaiuolZ9Ps0qS5AgWzWDUH/xSl+OGMMj2lquNpaKRof+01mjMyoggF5Bzbd0v8y/FcJJ+oxnJ6IGxCypgbGQjY0CSQyGRCfn+C+SrRFS9RaiWDOukNXR3ZQycdW20Bsvt4QqLMrj6ZfF712POI3BTON0Xz9S83SwY7jWSrje8IzGVtdgzSd1UyvhVaK+TyIP3FuzJG9z0MfOoVY7yusTlrfUPvS6A5SJVxTKE2BGVIrBz3uh3FCpXZ9YiCHlK7jkm+aUWcDZMpd1bNmUIUNXtQ== 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=RKToYnsnhK/atjtQcUyS+m3lGaKZADzK4Xhkt3mZuVo=; b=ZB4XxlhLBJzUytrgYqaEHiYB5nHTNaTFSoJ1iZh/P0dCn7o4B/4W7EWXOTr9tz/Sh7pkXFeT6GeM4Cqmj6eL0mLJfAB2eagtTFuVsHlaeCh+1DZwHaBlWCOZJTKaTgD2qwylGPn9OR+LwQWJCM03w/NAbCvGKFl/fNHlUbsjIps= 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:38 +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:38 +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 2/7] drm/panthor: Add DEV_QUERY.PERF_INFO handling for Gx10 Date: Tue, 1 Apr 2025 16:48:17 +0100 Message-Id: <203e6c8f7e82068fd570896a4302757247980c09.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-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: LO6P123CA0047.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:310::16) 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_|AMS0EPF0000019B:EE_|DB4PR08MB9191:EE_ X-MS-Office365-Filtering-Correlation-Id: df9c3118-7195-4984-87a2-08dd7134b070 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: =?utf-8?B?T25hd2lVMkV4dFcvNnU0eGZVd0Z3Tnc0UUxYelRCY2wxY2FPOEpkSVNETm91?= =?utf-8?B?NExsaGhmT0RtRXVqbXk0RDFGU2JjNVkvTDJ5L2laSTFicno2ZWwyeERPN2Vm?= =?utf-8?B?N1p4UWN0VzYybXdoSGUwZlpoS1BJMnB6ZEQ2RTdjWFBYNnZndjYxbW9XZjg4?= =?utf-8?B?NFZNYUEvZlpCajg5Y1BnYzZtUUxKVSsvREM1YmxrTU9lTlZGR2dqeTFPVGlL?= =?utf-8?B?L3NnNkJjd2tHVGp5dUtDc2UvampvVjRrNUFtWnVZRWMzOU5KUkpNd3JiVDVE?= =?utf-8?B?Qzh4d3RZcndkTTZJTVJJQ29zditwVzdrV1J5WUNyUVdkM201eldqd3AyRjEy?= =?utf-8?B?bE13c2Z5cGc4NW1rS1ZBZExVam96KzI3SGNseWJ5SEhGcW51cGNSeVROVGQx?= =?utf-8?B?ZmR0NW01OEFDRlk3cVErOUJFT25ETmNYUkl6RGozZkZuSXVubkhBVktqNC9Z?= =?utf-8?B?VlNiLzNqdS9HcTcvSDJaV1FWZjR2ZWJFOS8yODBVdnhYeUFlUWNIRWczQmJn?= =?utf-8?B?MW1ZMXhNS0JZbGpGTWJkSnhRYWQ4WGFDZnNGMlV0TVZIVDhKSHJvcU5MWVdP?= =?utf-8?B?KzlqcEgyZVNxS1RjT2ROSEZpUE8wRmtFMms5RXQ1aXlvWnZjSWNZVC9jVUUx?= =?utf-8?B?c0wrdXViZ0ZmckF3T1g2V2lrYjE1aGUvWGdsWTY1cXErNW1DN0RtUzRBbjcv?= =?utf-8?B?VHViQ0NxZXJXaFQyVTgzRU5pbmVZSkE4L0VXaU8rUzNqTmR0dUNHYzhBSDJs?= =?utf-8?B?VnpsbVZ5VWJPNmdNQzdIVmp1ZVZNZDkzVUpHUFpRRkNsWjZOZVJabFVaZlMw?= =?utf-8?B?ajR5a2JrVUtZNHVxRnRia3p0YmllMWJaZjhPbEt3NnhXamFaZXo1ZXN6SzVT?= =?utf-8?B?eHUxSFFNS0lwL0tiRmdscUhRK3hBeHVVdDhCWGgxcGIwUzJxNUNaVVluZXBU?= =?utf-8?B?UlVqNDM4eUhlQzArYUVQSDd3RnRJZWJwNjFLbDFERi9memxVTmNQQlpIdDdT?= =?utf-8?B?N3dvUlBzVVBFOVlPUFVrYVIzSE9RRytOZHdWRWxMM1BpVnNlLzRWYzNmdk1F?= =?utf-8?B?bllMMkdhVUdQbzhLQ0RDLzFIUitGQndEdWFoRUhVQmNObHNhTnB1VUhKVGFP?= =?utf-8?B?YXMxQUVDeHNPdFdKWXpCTnBBZjRrSGtORmUzNFM5YkdtY3FIMXZsRFBNQkxu?= =?utf-8?B?UEk5ZkJuM2IwWllGUGZYdjRrSkFmZG5TVmpjdzNMbS9IUEhZcy9HRHJwMWZr?= =?utf-8?B?a0RsLzNNRUVFV2FaR3MzcVE3cmNqeHZ3ZkFEdUdPc1ZiQ25ta0hzb1NQckFo?= =?utf-8?B?MCtBazFyczVyb1lyYXhrOHEyZ0lhTUhZSXJXUWdPUjRxRWxLYUtaVklnK3R3?= =?utf-8?B?NUZiaS9pTk90NDFicVdydkJUbzNqL2o2QjRWWmxnQ1dJNll4Nnd1WlJmM2I4?= =?utf-8?B?OC9ibmQxZzc1c0hGbHc3cWpVVnBiUjlvVzhseGEzS1NZSVVjaDI0S3I0L3lS?= =?utf-8?B?YXFtYnB5V1pYMlRIalpsYWwrSXlleXlsL2wzRFhJOWFtYkloUEFCTzZXbzBW?= =?utf-8?B?T2t4ajFVT2VXNyswYW5qcHFTbElzaWdzaUhDdG5PUnA3TWlsQzdTaktZT1Bu?= =?utf-8?B?UCtmYnh6UFBkb1B3T2owTU54cXptbDhpYm5WSVBVT3p3b2p0eHpWNWx2NEY3?= =?utf-8?B?K1M3R3ZPTUpSdTZ5ZWhOMDBDTk1IMndxbjJPeTc3SDlOMG1xQTkrQ0FrVW9w?= =?utf-8?B?T3RTWURwdVFMbzI0bE15T1JyVmN5dFBCMU9tMXhCTnFNbkF5Q1Q2ZW1NMU51?= =?utf-8?B?RjhnUlpVaWpWWWN5L1krUEcrQXVEbUtuVzFRUkVwV2lxL0ZXV3FwYWxGT3VV?= =?utf-8?B?NGhDb1poQy9TbEs1QjczZVgzdzlKNEd5cFdWWE1wbVVCSDJIdTZWVm0vb2FN?= =?utf-8?Q?+SEC48H7oXA=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: AMS0EPF0000019B.eurprd05.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 22075fad-1163-4046-218e-08dd7134ab1e X-Microsoft-Antispam: BCL:0;ARA:13230040|14060799003|82310400026|36860700013|35042699022|1800799024|376014|921020; X-Microsoft-Antispam-Message-Info: =?utf-8?B?dndBSHFjOXFHcWNiWTRodHFSRTUzOTFrOEh1ZFpISTNPMCtmNFRTUTdjTmRM?= =?utf-8?B?RzBRQXB2MmVWTzdYZ1BvandyamVDemhKYlRwbzZjK3k5UXZvTUFqU29aeDFM?= =?utf-8?B?U29MYndnVzM2Mjg3NWNaTmdZV2lXUzZ1WVFmREFjRlEvek9vdU1SaWtpcGJO?= =?utf-8?B?UkxpTzVMY0U4RjcveFVoeldMell6RTYwTmx1N01HS1FDdVhBNmVDcFFOQXZ0?= =?utf-8?B?WFVoVkhIWVR3NEpPMkNhMHovZWlvU3lBYTQ2eVVXWjNqZDRqRmdpK2J6Rmpr?= =?utf-8?B?cTlzbU1Ka2NKN2pqcVQzbjJ3MEpJU3RnWUVmR1ptWmhMcjVrV0lzUTFmcXVk?= =?utf-8?B?d3lySC9nbWJMVTBZblVyRmxNTmhSTWlkVWJCOVRNZjdwQTR3bnYxdVpYRkFm?= =?utf-8?B?L1BCWVYyVVJieC8zNkd0cG5kRVhINzFXZWRuYVBQUVU2U2ZIV0F2TXVjOFZH?= =?utf-8?B?aC92SG50dXdVODJYOUY0c1l0VkJFVEhuclJhZXFlaUtwbVBjbkRPOXNhSzdS?= =?utf-8?B?M0w2NlM5RktBdFBqK0F6dStQc1VnQTRSRWo3UDljVmxLNUx4QjEwL1RTckxs?= =?utf-8?B?Y2NsNG5vYnI0cDJydGlTZ3Zsa3BBMXBlbDAxSWg0dFRwMmtxQStxMEI2WmFz?= =?utf-8?B?YXRpdTBSYVNGN3RXaWxOTnY3OVFraGphcExzYzN4WlpwZm5PRzVIRFIyYThp?= =?utf-8?B?NHl1bjNiZXpueTVKUmo4U0xlZnJXMnJyQzFUK0VVSERqdVNrSm5OMGQ4VG9w?= =?utf-8?B?Ymg5bjNsaGxqak4vOHJ2V2VyeThPU3VwVGtldmxScmYwa3Urd1QvSWN4VUpF?= =?utf-8?B?TWMycFZGZlVwaWdoaFpSRXpwaFdIUDYzY2s5Q1I1Q1QvcDhvNzFZMUY0ZUxV?= =?utf-8?B?UUZMdWtzbTBQbzJaUzRBbWpkUnZyL2lFaEMrcHhGTVZKaDdwMWZjMnJCMzND?= =?utf-8?B?SEJhN21Xa0FxVUFyRzZMRWtHY0xJZjBrbUpaVnp0aVVXUEkzTCt1VHZUUlFE?= =?utf-8?B?TGFkR3VrK1BTelY2VHo3NjgzZERNR0dlbSs1ZVNqdGFaSzlhYXBrTkFKNVpP?= =?utf-8?B?VUtDem5ZTmF4eGRaTkVUK3AwV3RCOUF4NFNFT3NscDY2My8yb01qZHJkSGtr?= =?utf-8?B?OXlSa2dkN3N5NHd4Tkg3VW1mYlU2bXBlTUY4b3JOZTlCMTNVVTZPTjFJQnhU?= =?utf-8?B?U0JIcXN0K0xhK3hPVU9tb3dOMmIzYXl2enVMUVFGQXJzeStEb1lSdXhYUGFG?= =?utf-8?B?Ui9nMHd3eDFXd3BSRk9heDZ3VkhFNUpoMThOeHdsVUx4aVFmeU5PQTNZUk9P?= =?utf-8?B?ajJLSUJMSHFXcDgvZHpSVmlxNGRteis2dDVlRmJKZUxHUklSTS9ieXdleGlh?= =?utf-8?B?Rit5SnhVWCtyYjltNjFHOWdrTDhzQm5nQW9UZlEvZlNsblQzQUFUSnYzQ2Nm?= =?utf-8?B?ZEpBK3BNK3pMWWhJVzcwa1RUSUs5VWRPOWd1eUs0bTB4KzMvOUtLbU1jbG0y?= =?utf-8?B?QWdKeXZwS1dYZTJuZTdHdGIwTmIySWszTVBodWVYRzlxckVBbnNxbk9yYk9U?= =?utf-8?B?ZDhRSklRb0c5LzdqektwRFFqZnVFZG84L0RxL0JOcDdsTWVLdmhxZkxxdWFM?= =?utf-8?B?NTAyaExCL2tsNUw2Z0V3TWZhY3lnc3RnbUp2Z1lXM3hQbmprcU1sTmZhVkkr?= =?utf-8?B?WlpRbUF5T09VcWhKYXRPTWVCT0ZqOG41c2RZSGdDOU05VC80OWg1aVhMVncx?= =?utf-8?B?N2pNTm8xMXFNekhCZVEvUGE0aUhNWVZGZWpzWmdzbEtFWC9JL0piTzVVTC9s?= =?utf-8?B?RmhjZ1VNVzBITHNXb3hCZzZFckJvdGQxUW1obFhzVzBJM2RTY1o4MVdmUWUx?= =?utf-8?B?S1h2VkZZbVNPYkxEOGYxZkJVUVJFTXExUWZzMnVlYjlMaXYwR3lKaGxIb2tx?= =?utf-8?B?SzFjM0kvak51N2o2M2VFTm1DeHlFVkx5dWZnQ2pBdHR4c05RR3BLcTltR08v?= =?utf-8?Q?gzdZfS7s570knEwKRhqd8mkNWuP47Q=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)(14060799003)(82310400026)(36860700013)(35042699022)(1800799024)(376014)(921020);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Apr 2025 15:48:46.8256 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: df9c3118-7195-4984-87a2-08dd7134b070 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: AMS0EPF0000019B.eurprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB4PR08MB9191 This change adds the IOCTL to query data about the performance counter setup. Some of this data was available via previous DEV_QUERY calls, for instance for GPU info, but exposing it via PERF_INFO minimizes the overhead of creating a single session to just the one aggregate IOCTL. Signed-off-by: Lukas Zapolskas <lukas.zapolskas@arm.com> Reviewed-by: Adri=C3=A1n Larumbe <adrian.larumbe@collabora.com> --- drivers/gpu/drm/panthor/Makefile | 1 + drivers/gpu/drm/panthor/panthor_device.c | 5 +++ drivers/gpu/drm/panthor/panthor_device.h | 3 ++ drivers/gpu/drm/panthor/panthor_drv.c | 10 ++++- drivers/gpu/drm/panthor/panthor_fw.h | 3 ++ drivers/gpu/drm/panthor/panthor_perf.c | 55 ++++++++++++++++++++++++ drivers/gpu/drm/panthor/panthor_perf.h | 15 +++++++ include/uapi/drm/panthor_drm.h | 1 + 8 files changed, 92 insertions(+), 1 deletion(-) create mode 100644 drivers/gpu/drm/panthor/panthor_perf.c create mode 100644 drivers/gpu/drm/panthor/panthor_perf.h diff --git a/drivers/gpu/drm/panthor/Makefile b/drivers/gpu/drm/panthor/Mak= efile index 15294719b09c..0df9947f3575 100644 --- a/drivers/gpu/drm/panthor/Makefile +++ b/drivers/gpu/drm/panthor/Makefile @@ -9,6 +9,7 @@ panthor-y :=3D \ panthor_gpu.o \ panthor_heap.o \ panthor_mmu.o \ + panthor_perf.o \ panthor_sched.o =20 obj-$(CONFIG_DRM_PANTHOR) +=3D panthor.o diff --git a/drivers/gpu/drm/panthor/panthor_device.c b/drivers/gpu/drm/pan= thor/panthor_device.c index a9da1d1eeb70..76b4cf3dc391 100644 --- a/drivers/gpu/drm/panthor/panthor_device.c +++ b/drivers/gpu/drm/panthor/panthor_device.c @@ -19,6 +19,7 @@ #include "panthor_fw.h" #include "panthor_gpu.h" #include "panthor_mmu.h" +#include "panthor_perf.h" #include "panthor_regs.h" #include "panthor_sched.h" =20 @@ -259,6 +260,10 @@ int panthor_device_init(struct panthor_device *ptdev) if (ret) goto err_unplug_fw; =20 + ret =3D panthor_perf_init(ptdev); + if (ret) + goto err_unplug_fw; + /* ~3 frames */ pm_runtime_set_autosuspend_delay(ptdev->base.dev, 50); pm_runtime_use_autosuspend(ptdev->base.dev); diff --git a/drivers/gpu/drm/panthor/panthor_device.h b/drivers/gpu/drm/pan= thor/panthor_device.h index da6574021664..657ccc39568c 100644 --- a/drivers/gpu/drm/panthor/panthor_device.h +++ b/drivers/gpu/drm/panthor/panthor_device.h @@ -120,6 +120,9 @@ struct panthor_device { /** @csif_info: Command stream interface information. */ struct drm_panthor_csif_info csif_info; =20 + /** @perf_info: Performance counter interface information. */ + struct drm_panthor_perf_info perf_info; + /** @gpu: GPU management data. */ struct panthor_gpu *gpu; =20 diff --git a/drivers/gpu/drm/panthor/panthor_drv.c b/drivers/gpu/drm/pantho= r/panthor_drv.c index 06fe46e32073..9d2b716cca45 100644 --- a/drivers/gpu/drm/panthor/panthor_drv.c +++ b/drivers/gpu/drm/panthor/panthor_drv.c @@ -175,7 +175,8 @@ panthor_get_uobj_array(const struct drm_panthor_obj_arr= ay *in, u32 min_stride, PANTHOR_UOBJ_DECL(struct drm_panthor_sync_op, timeline_value), \ PANTHOR_UOBJ_DECL(struct drm_panthor_queue_submit, syncs), \ PANTHOR_UOBJ_DECL(struct drm_panthor_queue_create, ringbuf_size), \ - PANTHOR_UOBJ_DECL(struct drm_panthor_vm_bind_op, syncs)) + PANTHOR_UOBJ_DECL(struct drm_panthor_vm_bind_op, syncs), \ + PANTHOR_UOBJ_DECL(struct drm_panthor_perf_info, shader_blocks)) =20 /** * PANTHOR_UOBJ_SET() - Copy a kernel object to a user object. @@ -835,6 +836,10 @@ static int panthor_ioctl_dev_query(struct drm_device *= ddev, void *data, struct d args->size =3D sizeof(priorities_info); return 0; =20 + case DRM_PANTHOR_DEV_QUERY_PERF_INFO: + args->size =3D sizeof(ptdev->perf_info); + return 0; + default: return -EINVAL; } @@ -859,6 +864,9 @@ static int panthor_ioctl_dev_query(struct drm_device *d= dev, void *data, struct d panthor_query_group_priorities_info(file, &priorities_info); return PANTHOR_UOBJ_SET(args->pointer, args->size, priorities_info); =20 + case DRM_PANTHOR_DEV_QUERY_PERF_INFO: + return PANTHOR_UOBJ_SET(args->pointer, args->size, ptdev->perf_info); + default: return -EINVAL; } diff --git a/drivers/gpu/drm/panthor/panthor_fw.h b/drivers/gpu/drm/panthor= /panthor_fw.h index 6598d96c6d2a..8bcb933fa790 100644 --- a/drivers/gpu/drm/panthor/panthor_fw.h +++ b/drivers/gpu/drm/panthor/panthor_fw.h @@ -197,8 +197,11 @@ struct panthor_fw_global_control_iface { u32 output_va; u32 group_num; u32 group_stride; +#define GLB_PERFCNT_FW_SIZE(x) ((((x) >> 16) << 8)) u32 perfcnt_size; u32 instr_features; +#define PERFCNT_FEATURES_MD_SIZE(x) (((x) & GENMASK(3, 0)) << 8) + u32 perfcnt_features; }; =20 struct panthor_fw_global_input_iface { diff --git a/drivers/gpu/drm/panthor/panthor_perf.c b/drivers/gpu/drm/panth= or/panthor_perf.c new file mode 100644 index 000000000000..b0a6f3fca8a9 --- /dev/null +++ b/drivers/gpu/drm/panthor/panthor_perf.c @@ -0,0 +1,55 @@ +// SPDX-License-Identifier: GPL-2.0 or MIT +/* Copyright 2023 Collabora Ltd */ +/* Copyright 2025 Arm ltd. */ + +#include <linux/bitops.h> +#include <drm/panthor_drm.h> + +#include "panthor_device.h" +#include "panthor_fw.h" +#include "panthor_perf.h" + +/** + * PANTHOR_PERF_COUNTERS_PER_BLOCK - On CSF architectures pre-11.x, the nu= mber of counters + * per block was hardcoded to be 64. Arch 11.0 onwards supports the PRFCNT= _FEATURES GPU register, + * which indicates the same information. + */ +#define PANTHOR_PERF_COUNTERS_PER_BLOCK (64) + +static void panthor_perf_info_init(struct panthor_device *ptdev) +{ + struct panthor_fw_global_iface *glb_iface =3D panthor_fw_get_glb_iface(pt= dev); + struct drm_panthor_perf_info *const perf_info =3D &ptdev->perf_info; + + if (PERFCNT_FEATURES_MD_SIZE(glb_iface->control->perfcnt_features)) + perf_info->flags |=3D DRM_PANTHOR_PERF_BLOCK_STATES_SUPPORT; + + perf_info->counters_per_block =3D PANTHOR_PERF_COUNTERS_PER_BLOCK; + + perf_info->sample_header_size =3D sizeof(struct drm_panthor_perf_sample_h= eader); + perf_info->block_header_size =3D sizeof(struct drm_panthor_perf_block_hea= der); + + if (GLB_PERFCNT_FW_SIZE(glb_iface->control->perfcnt_size)) + perf_info->fw_blocks =3D 1; + + perf_info->cshw_blocks =3D 1; + perf_info->tiler_blocks =3D 1; + perf_info->memsys_blocks =3D DRM_PANTHOR_L2_SLICES(ptdev->gpu_info.mem_fe= atures); + perf_info->shader_blocks =3D hweight64(ptdev->gpu_info.shader_present); +} + +/** + * panthor_perf_init - Initialize the performance counter subsystem. + * @ptdev: Panthor device + * + * Return: 0 on success, negative error code on failure. + */ +int panthor_perf_init(struct panthor_device *ptdev) +{ + if (!ptdev) + return -EINVAL; + + panthor_perf_info_init(ptdev); + + return 0; +} diff --git a/drivers/gpu/drm/panthor/panthor_perf.h b/drivers/gpu/drm/panth= or/panthor_perf.h new file mode 100644 index 000000000000..3c32c24c164c --- /dev/null +++ b/drivers/gpu/drm/panthor/panthor_perf.h @@ -0,0 +1,15 @@ +/* SPDX-License-Identifier: GPL-2.0 or MIT */ +/* Copyright 2025 Collabora Ltd */ +/* Copyright 2025 Arm ltd. */ + +#ifndef __PANTHOR_PERF_H__ +#define __PANTHOR_PERF_H__ + +#include <linux/types.h> + +struct panthor_device; + +int panthor_perf_init(struct panthor_device *ptdev); + +#endif /* __PANTHOR_PERF_H__ */ + diff --git a/include/uapi/drm/panthor_drm.h b/include/uapi/drm/panthor_drm.h index c63cbdddde76..4d352008dffa 100644 --- a/include/uapi/drm/panthor_drm.h +++ b/include/uapi/drm/panthor_drm.h @@ -270,6 +270,7 @@ struct drm_panthor_gpu_info { =20 /** @mem_features: Memory features. */ __u32 mem_features; +#define DRM_PANTHOR_L2_SLICES(x) ((((x) >> 8) & 0xf) + 1) =20 /** @mmu_features: MMU features. */ __u32 mmu_features; --=20 2.33.0.dirty