From nobody Mon Feb 9 23:19:44 2026 Received: from EUR03-AM7-obe.outbound.protection.outlook.com (mail-am7eur03on2049.outbound.protection.outlook.com [40.107.105.49]) (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 9D2001B2198 for ; Thu, 19 Dec 2024 17:05:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.105.49 ARC-Seal: i=3; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734627962; cv=fail; b=lXpY0YX3xkY6ByaQR/caBFBBXAJFnIdMbeig9OwGHb1whO+o08difUvpUVucTGZs7X+BCJwoo2KyX+pvOLv8WOL8Rfltqs9K9adQqJIhO9dJf9euZuWfNdguaoPFw1Q81kyAJMxFlcOmVhSFiMYoP3SJs1WYqJheIetOfDO8dc4= ARC-Message-Signature: i=3; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734627962; c=relaxed/simple; bh=axizyYc4TL36Qv+2Pz5vy2qcUgg4byAXYR4mo+hku1E=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=LjavNbklLwyk09tasvzVtcHV4ZQIptvEP6906COECwWX91kiXhu6eaUDwmbOfp67o3fmcHE4zz7yLXHlhj+2vPk08b5iPsvdOKpUWAYDT3EVYSsewvAeBapUVQr+uIif8GD8GAsNeTCyJ/nCBCTZl1skz3uDM/FaLdLWCdt8NiY= 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=HzZHrHVL; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.b=HzZHrHVL; arc=fail smtp.client-ip=40.107.105.49 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="HzZHrHVL"; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.b="HzZHrHVL" ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass; b=PJ7KXmp3kXp2dpphxXchYDYTk3uLE2YD2htaDxlsTRqs+wv6ysWUvP47ySiOdK9NCXK+iwFyXHWnSErEKRRT1I1Z1OEP/72bYZf9czaxrYmbX1UJMM/0jKlV3PrQB2ynmcAoTtDwkg9PRziq8t9iyvO6e6aEGdcdg/nX/cprbODA6sUK56A1lVQHdGm6I+79XW55+B/TP5WVacaStIc7WiOnQYXhBDbZYQZvwFMwfVPbCxsL2Ypik7DUFsLk/eHY3nP2rLPQAaHlR9vAHELlNohwH7o+svxB0/PMLHbdfFdqwTE/8evrZq8p4tq/Weq2f+juTqBvHEnDigEh9ZmLjA== 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=B30OBGeMjBaX2MEB36FZDiv9JLRT33e56cLFZvvKWFA=; b=StBaeJaMxo+2S9y6WfvxMxoY41OJakRjK1tlHsmwDyYdLFp88zKlT42cRzpUuV0RvKcoH6hpw1nEigXdx0wsZzZ9t5g3WjOi4b4XK+ar7582R8oZ5CWyFzoIZ/l4Tik7jREGg0JqA3VqbrVpeSnN70CuLsrnp+D5YqkYt2wyYt9HfH01/q1LqpYDtxqhgLgSRUU5bcIlM+Bi6JljHZ+CMyxHeUukxLNMd3Ka29Xg3OvhFxpL40qaJjw/lXD9SmVXdJdPkPyZ0LFCMGDKTJ29zhDMicHcxyvqKl/1FlXsol63ThHHTcI0xUa11TlS8wq5xalJ7F4LaHxjki5WxKVFdw== 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=B30OBGeMjBaX2MEB36FZDiv9JLRT33e56cLFZvvKWFA=; b=HzZHrHVLmxPL17HLqAECLhIZ3M8GWrhxhDEqyQYlnGFo2UwVXrVDXQvuXrbcmWVjpCntm67ZrNA1CZ3d3qHSbImYeIuXtvnIJUG5hrVwzpo9utZRL/+luNRKQ0gShkxNwpYZQyYlwyFZazTk4pNm0xlQmtGYWFEdCep8QV1/Rao= Received: from AS4P251CA0029.EURP251.PROD.OUTLOOK.COM (2603:10a6:20b:5d3::19) by AM9PR08MB6129.eurprd08.prod.outlook.com (2603:10a6:20b:284::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8272.14; Thu, 19 Dec 2024 17:05:55 +0000 Received: from AM3PEPF0000A792.eurprd04.prod.outlook.com (2603:10a6:20b:5d3:cafe::c1) by AS4P251CA0029.outlook.office365.com (2603:10a6:20b:5d3::19) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8251.25 via Frontend Transport; Thu, 19 Dec 2024 17:05:55 +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 AM3PEPF0000A792.mail.protection.outlook.com (10.167.16.121) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8251.15 via Frontend Transport; Thu, 19 Dec 2024 17:05:54 +0000 Received: ("Tessian outbound 7762b28e8285:v528"); Thu, 19 Dec 2024 17:05:54 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 09b2f0bedd6230ba X-TessianGatewayMetadata: u3IGdk9v2dczOG+tRXHACX+4qGxpscn9rXln9MeYg/CCmB6FdZXvKeNXykHhIteqL90EJIPUCenJFL7iYDEOazfDeYWZ4zoc/0EK580kE5ogrUYCJh6sdzaCP7WblDyJ538TEF7YGlQUIlxQ7HjHmJim3JKYVhUudpVcSCQk+QQ= X-CR-MTA-TID: 64aa7808 Received: from Laeb471f382c8.6 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 68D64701-8084-45D6-80A0-ECB9B37D33F1.1; Thu, 19 Dec 2024 17:05:43 +0000 Received: from EUR02-DB5-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id Laeb471f382c8.6 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384); Thu, 19 Dec 2024 17:05:43 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=hXHgcdeHJO6tdRyMV8j7Cam69974cc34QGV9z8ZV7vqqFJNi2mDCTZ1Fw8PgV4Eo1NyRT+eSAVRVUhw7Q4UthDzlvpV20uT5juWnp40JOiEINn1d4stpvdxFAaUPwuEHBZExHvOAkO+hC6RtrIwxCMYdj4EzdBf87oYzrWfwwbsrp2lASL6VNmxuOW+N5eVSIKr1VRzXG0BsTFhs6ataMNWgxc8anfpA0A1V5Jqqtj2hUOKcp6+RKscIpA3Fx7eFF9b8wQCDis1q5SwH1UHmhxtWsZhSOJI9dhnyqQn4SR9gR/YpWP24uRwWZdo9femPUlwbLsBfPQsSRcdGmx/UcQ== 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=B30OBGeMjBaX2MEB36FZDiv9JLRT33e56cLFZvvKWFA=; b=IrRNF7/xsyfBYTH/WY58cw2nntU1M7W+tc0fMZPXGKsAXuu9rAXn0O+9NPL4MheXDbDApAPsEC957Yro5S0rF7y9WldmX6UMq1DJ2jtexMWyKa73wDp4se9DuIDrnXjOVAuNXtWyBTuiIveHVTsGl+lK+ZBWNAGuF4NsghwjQW/FFmxKZKfP7DiYNqQEHG5P5rMyI7DaBe5oDEgafl2INtPJAX6INkddU5fp/Z6LVKjwI8guZQoDM59Bc2JhGmRdI2309On1qlO2cJQuuFJugZD3/rHXAz6lzVOn5CXl1QFQCt+ZboSn/Z5h5HmqzgGE2l8RDQ0+hE2XcTrtjAy3ew== 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=B30OBGeMjBaX2MEB36FZDiv9JLRT33e56cLFZvvKWFA=; b=HzZHrHVLmxPL17HLqAECLhIZ3M8GWrhxhDEqyQYlnGFo2UwVXrVDXQvuXrbcmWVjpCntm67ZrNA1CZ3d3qHSbImYeIuXtvnIJUG5hrVwzpo9utZRL/+luNRKQ0gShkxNwpYZQyYlwyFZazTk4pNm0xlQmtGYWFEdCep8QV1/Rao= Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; Received: from VI0PR08MB11200.eurprd08.prod.outlook.com (2603:10a6:800:257::18) by DB3PR08MB9109.eurprd08.prod.outlook.com (2603:10a6:10:430::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8251.21; Thu, 19 Dec 2024 17:05:34 +0000 Received: from VI0PR08MB11200.eurprd08.prod.outlook.com ([fe80::d594:64a:dfc:db74]) by VI0PR08MB11200.eurprd08.prod.outlook.com ([fe80::d594:64a:dfc:db74%5]) with mapi id 15.20.8251.015; Thu, 19 Dec 2024 17:05:34 +0000 From: Karunika Choo To: dri-devel@lists.freedesktop.org Cc: nd@arm.com, Boris Brezillon , Steven Price , Liviu Dudau , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , linux-kernel@vger.kernel.org Subject: [RFC PATCH 1/4] drm/panthor: Add 64-bit register accessors Date: Thu, 19 Dec 2024 17:05:18 +0000 Message-ID: <20241219170521.64879-2-karunika.choo@arm.com> X-Mailer: git-send-email 2.47.1 In-Reply-To: <20241219170521.64879-1-karunika.choo@arm.com> References: <20241219170521.64879-1-karunika.choo@arm.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: LO2P123CA0083.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:138::16) To VI0PR08MB11200.eurprd08.prod.outlook.com (2603:10a6:800:257::18) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-TrafficTypeDiagnostic: VI0PR08MB11200:EE_|DB3PR08MB9109:EE_|AM3PEPF0000A792:EE_|AM9PR08MB6129:EE_ X-MS-Office365-Filtering-Correlation-Id: 39fc3f2c-d878-4c18-1b2f-08dd204f6678 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|376014|366016; X-Microsoft-Antispam-Message-Info-Original: =?us-ascii?Q?3ESuSeN3cmz5ln75TO3uO2mtjzP+qyUYelFHdbEqHKaU+dChXMXbafV83W2T?= =?us-ascii?Q?4MaURy/RGwTH7B9TVMPdlR/fEfhVxLtTEtITCHkZKbiTXvi+WVyyklZjmtw6?= =?us-ascii?Q?ytwiAStHO1QXVAMOXkgdssgxBLCV8WH9ClGGpmgQkjD6N0AhBjr62iWh6ytI?= =?us-ascii?Q?wIpCUsSROn1K0nsxNdkLcY+Gq1ThcRvZxai/h2hJieqTzovSuRSMkc9dej6N?= =?us-ascii?Q?FIuE0jSPgXP+NmbLcnAqWaozoibXnH+CfKZONublYMJjGPP3eq6LlQaJoo83?= =?us-ascii?Q?34K+7yeMLDfUUK235cdeQ23pMBuvu19li2KouadAIKdn4gR8Z29ovbG8Ou+i?= =?us-ascii?Q?BCX4/epvMakle1hymV6KIgFxOWBhdL2dXl94d4hJPqdh/DVLWeC6pZdZUI2N?= =?us-ascii?Q?d/J0uA//eGJBKYz4nCv8fBeZ+sRZRNRJNcNMNbCnQDifUKTJQ0f5J8wuJ3rQ?= =?us-ascii?Q?56jWCLgDGOx6xB1+s47kFkNdwqKWhRSR8qj72nvkyIXHicRadT97++sXD6wT?= =?us-ascii?Q?u9MOjXYz6g/6l8+QBIF681h7rc3c2Hkaj1SYgwUaDKMm/G5/nZC/HIuQu6XM?= =?us-ascii?Q?GaSkJ8R3iQZ7FX0I6fyzob5A69trchjcyyvw5jOEqTatJFrs577QU+5hBwel?= =?us-ascii?Q?WzMtmqWBVnDtnDZm6lsguF1BM9ZMFLwE8V9y/NI9xM2Qagz0tGtnm8CZ8LTG?= =?us-ascii?Q?T0+GikPWP2/B9y+BWRNDxna51xKlfi/hmmLG23P6NzqLSXnNETd68EJp8JJ3?= =?us-ascii?Q?z98AOiMojvyp/8Fnt3Ts2Qk6/lKM3ldwX8oTHHLbfd/mWU+Yzd6sCjYm8Wyk?= =?us-ascii?Q?UISOn3UO17ND12emw8nLuAHUhehmBXT7rOwBXfp2GC7K/Gox059HU1ozrlnl?= =?us-ascii?Q?8eqVhtK+zicP3kfMDc8c3vVLWkzcpHBBwkAyIAcyd0ym9eNx+vlFQU7+aS3O?= =?us-ascii?Q?GndOuI3AGwGvKBGc/0Euy9C6fb2lrVB6voSGq5AIKcC7k0Xf2fx63EcQZG0n?= =?us-ascii?Q?bNMI791hX6aDPJ0kbutDnSqg+9evL/0JnALll9XFNsZ1JFz8lubzRsCxgOe7?= =?us-ascii?Q?09mzh2c+SK0oKzJei5kUHqDFyBtOaLT/OBeg6Z1zt+jqI51lJBj6lA9ESZe9?= =?us-ascii?Q?IRIueN2rcmQT+yoJ5EnHDeL2d+xEp47dV+gKhBqguEk7/RExCRwg/1lGKqAo?= =?us-ascii?Q?jx0EtMxAdKdphbH7DOrZ9aFYSYH3aw5hqVaiYdGGk+BQpCbFg2Zj20fWiA7n?= =?us-ascii?Q?GS2OQRkV70GZXlfg3xj66TgDpEVvwurvf+YqSDDeMgc2FXtMacQ0f4pJC8Q9?= =?us-ascii?Q?r9jHaQmczZnq7jDK4cPgFn03js06ZmFg7tqnWt+r9sqUMmWlz0/7sbgTKzqt?= =?us-ascii?Q?ct7mKYv+vb2QIiFseLUdJIQ5boF7?= X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI0PR08MB11200.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB3PR08MB9109 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:800:257::18];domain=VI0PR08MB11200.eurprd08.prod.outlook.com X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM3PEPF0000A792.eurprd04.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 8b4b6389-8850-4eb9-1452-08dd204f58ca X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|14060799003|35042699022|82310400026|1800799024|36860700013; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?VsuGboP+lZkaiccAc51WK4jwBT0oUhvN69DcOW0J+1KmBYn9DcK9E7j0QfHK?= =?us-ascii?Q?WzVClpf8ewJktHDhrl86kXjczMlWrVAQ12y0dJhFsT+z76R1CkarjOXWGWKh?= =?us-ascii?Q?6F2Map877xo6fmzJY/AOAA6HeOeb8kQDPmTHP/WbjPzuQsQkySyvHOyJHddZ?= =?us-ascii?Q?wIgTDMOvA07LFHFfz5DKkeiTQdpekRX8EaX4JPKKEiX6ILn56tuY9c5zG57i?= =?us-ascii?Q?QjKH51AMV4KHRMOlfuom3E5B1caoQLKvMhmtKKqvwKddM9XDwItR4bwk1L0H?= =?us-ascii?Q?YjhvTnjMUhwaoID8anWVDPVYvUdm/dVULhIlSMLBWH3UIbFfKtr5aVmNHbiK?= =?us-ascii?Q?jz4iO2Cq3QS/wMmjNYlAyaWKGzU37TkGoVg+LrNWp/KOhDUxgxQIyOlRY9kQ?= =?us-ascii?Q?etiO4eb2tQJgB8Xz0+oPOdTMwRJyDK9vcOd1/MiXNBkMGE3AW7YAiq7zO+9E?= =?us-ascii?Q?SIfbO2HP48QJnsT4vEK3zkyc7H3rmA3j/x5IQROSdLhk7lVsIioOnRt1rbkV?= =?us-ascii?Q?2QaH1NQhJC3A60BsBgjaRvUeRKpgYpIgAmgxCvYtRLgh0L4FLqZzZP6+M19O?= =?us-ascii?Q?LmJsdtQ8qkK9XQEUCD6PaKJplw5X4j1TS24xZ45SXXHOHnqj8onai41M+y3K?= =?us-ascii?Q?X6fbeWn2zsuSQyQilOStnKUGmmGyMlJ8yTXC0vbARkih35HCJzsPld9edPdT?= =?us-ascii?Q?0qznfLD4BXP4cXZDTZa8lEEPiBLFTZOBhIxigUOKhCMsB+rDNUe2QrtRBMzq?= =?us-ascii?Q?UIZnKqf+ONKpU3Yq0vUEBtMGZNui+QRWPOCPEL5H8+A+fm62HX8KDXLSQ/Ux?= =?us-ascii?Q?+9V7KoW3io+cYazX8d7o777Nfd1mi9dM/xtU5eG+IJB/lG6uOdo6WKiqD+sP?= =?us-ascii?Q?RxMUNjddCghzNHe1cvNvqvnbJKKDwFMiI+e5EZHg54TyVt/5tamxDPCOyBaj?= =?us-ascii?Q?5ODRwdwcbXltvBS0pyleHUEIPbNGMtP7BDLTLHjplPNqOhwehQGS4cX2NwNW?= =?us-ascii?Q?GfaSBofWKHqeotqKQDGLkngRvdqlwr2LpBonKc4cSIS5I4GQJZUVyFXbbSwg?= =?us-ascii?Q?1hNfHaC37y5yWqnzyvuwMrC8fiWTj1B4vb8jHkr0MDj8yKHWNoqFE7sCMDpS?= =?us-ascii?Q?R64BRmEgNCF6WBlKRE5BbkGsC/Nq8n3HF//7ozOzNzdtwtG7fXyAM2wnUbm4?= =?us-ascii?Q?+QCdUIK5+gdm4e57GIov00ijhIfALtQjETiYD+OrJZaQrWkOAMIl/BIeBJdN?= =?us-ascii?Q?UuzyNBpFnA/a1/SoiCBNFX61H8LrYZhJfZyDULhFtb57nc9OjhN/pXYT7lhM?= =?us-ascii?Q?XwJuxMVwPqj7wlFVYzmIBBCfCMrZ1z+ZHAWg0V7dYQdaBXbLtMQshgL6TxUV?= =?us-ascii?Q?mnKClDjce4IdCaCDOux0hfp63U/eHeGsaKlUmFI8WB4uW6p+Ati7m9AGqurK?= =?us-ascii?Q?a89zV/exYuW/sIWmuOm2nJB6q0LBAZ7BhdqWyQ2zfVLzQDAAlD8JFb2tPuif?= =?us-ascii?Q?xqKV+bM9kcuQcmo=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)(376014)(14060799003)(35042699022)(82310400026)(1800799024)(36860700013);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Dec 2024 17:05:54.9349 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 39fc3f2c-d878-4c18-1b2f-08dd204f6678 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: AM3PEPF0000A792.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR08MB6129 Content-Type: text/plain; charset="utf-8" This patch adds 64-bit register accessors to simplify register access in Panthor. It also adds 64-bit variants for read_poll_timeout and replaces all 64-bit and poll register accesses with these new functions. Signed-off-by: Karunika Choo --- drivers/gpu/drm/panthor/panthor_fw.c | 11 +- drivers/gpu/drm/panthor/panthor_gpu.c | 143 +++++++------------------ drivers/gpu/drm/panthor/panthor_mmu.c | 34 ++---- drivers/gpu/drm/panthor/panthor_regs.h | 49 +++++++++ 4 files changed, 104 insertions(+), 133 deletions(-) diff --git a/drivers/gpu/drm/panthor/panthor_fw.c b/drivers/gpu/drm/panthor= /panthor_fw.c index 68eb4fb4d3a8..8f1b9eff66ef 100644 --- a/drivers/gpu/drm/panthor/panthor_fw.c +++ b/drivers/gpu/drm/panthor/panthor_fw.c @@ -1061,8 +1061,8 @@ static void panthor_fw_stop(struct panthor_device *pt= dev) u32 status; =20 gpu_write(ptdev, MCU_CONTROL, MCU_CONTROL_DISABLE); - if (readl_poll_timeout(ptdev->iomem + MCU_STATUS, status, - status =3D=3D MCU_STATUS_DISABLED, 10, 100000)) + if (gpu_read_poll_timeout(ptdev, MCU_STATUS, status, + status =3D=3D MCU_STATUS_DISABLED, 10, 100000)) drm_err(&ptdev->base, "Failed to stop MCU"); } =20 @@ -1087,9 +1087,10 @@ void panthor_fw_pre_reset(struct panthor_device *ptd= ev, bool on_hang) =20 panthor_fw_update_reqs(glb_iface, req, GLB_HALT, GLB_HALT); gpu_write(ptdev, CSF_DOORBELL(CSF_GLB_DOORBELL_ID), 1); - if (!readl_poll_timeout(ptdev->iomem + MCU_STATUS, status, - status =3D=3D MCU_STATUS_HALT, 10, 100000)) { - ptdev->reset.fast =3D true; + if (!gpu_read_poll_timeout(ptdev, MCU_STATUS, status, + status =3D=3D MCU_STATUS_HALT, 10, + 100000)) { + ptdev->fw->fast_reset =3D true; } else { drm_warn(&ptdev->base, "Failed to cleanly suspend MCU"); } diff --git a/drivers/gpu/drm/panthor/panthor_gpu.c b/drivers/gpu/drm/pantho= r/panthor_gpu.c index 671049020afa..a7d5022d34be 100644 --- a/drivers/gpu/drm/panthor/panthor_gpu.c +++ b/drivers/gpu/drm/panthor/panthor_gpu.c @@ -108,14 +108,9 @@ static void panthor_gpu_init_info(struct panthor_devic= e *ptdev) =20 ptdev->gpu_info.as_present =3D gpu_read(ptdev, GPU_AS_PRESENT); =20 - ptdev->gpu_info.shader_present =3D gpu_read(ptdev, GPU_SHADER_PRESENT_LO); - ptdev->gpu_info.shader_present |=3D (u64)gpu_read(ptdev, GPU_SHADER_PRESE= NT_HI) << 32; - - ptdev->gpu_info.tiler_present =3D gpu_read(ptdev, GPU_TILER_PRESENT_LO); - ptdev->gpu_info.tiler_present |=3D (u64)gpu_read(ptdev, GPU_TILER_PRESENT= _HI) << 32; - - ptdev->gpu_info.l2_present =3D gpu_read(ptdev, GPU_L2_PRESENT_LO); - ptdev->gpu_info.l2_present |=3D (u64)gpu_read(ptdev, GPU_L2_PRESENT_HI) <= < 32; + ptdev->gpu_info.shader_present =3D gpu_read64(ptdev, GPU_SHADER_PRESENT_L= O); + ptdev->gpu_info.tiler_present =3D gpu_read64(ptdev, GPU_TILER_PRESENT_LO); + ptdev->gpu_info.l2_present =3D gpu_read64(ptdev, GPU_L2_PRESENT_LO); =20 arch_major =3D GPU_ARCH_MAJOR(ptdev->gpu_info.gpu_id); product_major =3D GPU_PROD_MAJOR(ptdev->gpu_info.gpu_id); @@ -152,8 +147,7 @@ static void panthor_gpu_irq_handler(struct panthor_devi= ce *ptdev, u32 status) { if (status & GPU_IRQ_FAULT) { u32 fault_status =3D gpu_read(ptdev, GPU_FAULT_STATUS); - u64 address =3D ((u64)gpu_read(ptdev, GPU_FAULT_ADDR_HI) << 32) | - gpu_read(ptdev, GPU_FAULT_ADDR_LO); + u64 address =3D gpu_read64(ptdev, GPU_FAULT_ADDR_LO); =20 drm_warn(&ptdev->base, "GPU Fault 0x%08x (%s) at 0x%016llx\n", fault_status, panthor_exception_name(ptdev, fault_status & 0xFF), @@ -244,45 +238,28 @@ int panthor_gpu_block_power_off(struct panthor_device= *ptdev, u32 pwroff_reg, u32 pwrtrans_reg, u64 mask, u32 timeout_us) { - u32 val, i; + u64 val; int ret; =20 - for (i =3D 0; i < 2; i++) { - u32 mask32 =3D mask >> (i * 32); - - if (!mask32) - continue; - - ret =3D readl_relaxed_poll_timeout(ptdev->iomem + pwrtrans_reg + (i * 4), - val, !(mask32 & val), - 100, timeout_us); - if (ret) { - drm_err(&ptdev->base, "timeout waiting on %s:%llx power transition", - blk_name, mask); - return ret; - } + ret =3D gpu_read64_relaxed_poll_timeout(ptdev, pwrtrans_reg, val, + !(mask & val), 100, timeout_us); + if (ret) { + drm_err(&ptdev->base, + "timeout waiting on %s:%llx power transition", blk_name, + mask); + return ret; } =20 - if (mask & GENMASK(31, 0)) - gpu_write(ptdev, pwroff_reg, mask); - - if (mask >> 32) - gpu_write(ptdev, pwroff_reg + 4, mask >> 32); - - for (i =3D 0; i < 2; i++) { - u32 mask32 =3D mask >> (i * 32); + if (mask) + gpu_write64(ptdev, pwroff_reg, mask); =20 - if (!mask32) - continue; - - ret =3D readl_relaxed_poll_timeout(ptdev->iomem + pwrtrans_reg + (i * 4), - val, !(mask32 & val), - 100, timeout_us); - if (ret) { - drm_err(&ptdev->base, "timeout waiting on %s:%llx power transition", - blk_name, mask); - return ret; - } + ret =3D gpu_read64_relaxed_poll_timeout(ptdev, pwrtrans_reg, val, + !(mask & val), 100, timeout_us); + if (ret) { + drm_err(&ptdev->base, + "timeout waiting on %s:%llx power transition", blk_name, + mask); + return ret; } =20 return 0; @@ -305,45 +282,26 @@ int panthor_gpu_block_power_on(struct panthor_device = *ptdev, u32 pwron_reg, u32 pwrtrans_reg, u32 rdy_reg, u64 mask, u32 timeout_us) { - u32 val, i; + u64 val; int ret; =20 - for (i =3D 0; i < 2; i++) { - u32 mask32 =3D mask >> (i * 32); - - if (!mask32) - continue; - - ret =3D readl_relaxed_poll_timeout(ptdev->iomem + pwrtrans_reg + (i * 4), - val, !(mask32 & val), - 100, timeout_us); - if (ret) { - drm_err(&ptdev->base, "timeout waiting on %s:%llx power transition", - blk_name, mask); - return ret; - } + ret =3D gpu_read64_relaxed_poll_timeout(ptdev, pwrtrans_reg, val, + !(mask & val), 100, timeout_us); + if (ret) { + drm_err(&ptdev->base, "timeout waiting on %s:%llx power transition", + blk_name, mask); + return ret; } =20 - if (mask & GENMASK(31, 0)) - gpu_write(ptdev, pwron_reg, mask); - - if (mask >> 32) - gpu_write(ptdev, pwron_reg + 4, mask >> 32); - - for (i =3D 0; i < 2; i++) { - u32 mask32 =3D mask >> (i * 32); + if (mask) + gpu_write64(ptdev, pwron_reg, mask); =20 - if (!mask32) - continue; - - ret =3D readl_relaxed_poll_timeout(ptdev->iomem + rdy_reg + (i * 4), - val, (mask32 & val) =3D=3D mask32, - 100, timeout_us); - if (ret) { - drm_err(&ptdev->base, "timeout waiting on %s:%llx readiness", - blk_name, mask); - return ret; - } + ret =3D gpu_read64_relaxed_poll_timeout( + ptdev, rdy_reg, val, (mask & val) =3D=3D mask, 100, timeout_us); + if (ret) { + drm_err(&ptdev->base, "timeout waiting on %s:%llx readiness", + blk_name, mask); + return ret; } =20 return 0; @@ -492,26 +450,6 @@ void panthor_gpu_resume(struct panthor_device *ptdev) panthor_gpu_l2_power_on(ptdev); } =20 -/** - * panthor_gpu_read_64bit_counter() - Read a 64-bit counter at a given off= set. - * @ptdev: Device. - * @reg: The offset of the register to read. - * - * Return: The counter value. - */ -static u64 -panthor_gpu_read_64bit_counter(struct panthor_device *ptdev, u32 reg) -{ - u32 hi, lo; - - do { - hi =3D gpu_read(ptdev, reg + 0x4); - lo =3D gpu_read(ptdev, reg); - } while (hi !=3D gpu_read(ptdev, reg + 0x4)); - - return ((u64)hi << 32) | lo; -} - /** * panthor_gpu_read_timestamp() - Read the timestamp register. * @ptdev: Device. @@ -520,7 +458,7 @@ panthor_gpu_read_64bit_counter(struct panthor_device *p= tdev, u32 reg) */ u64 panthor_gpu_read_timestamp(struct panthor_device *ptdev) { - return panthor_gpu_read_64bit_counter(ptdev, GPU_TIMESTAMP_LO); + return gpu_read64_sync(ptdev, GPU_TIMESTAMP_LO); } =20 /** @@ -531,10 +469,5 @@ u64 panthor_gpu_read_timestamp(struct panthor_device *= ptdev) */ u64 panthor_gpu_read_timestamp_offset(struct panthor_device *ptdev) { - u32 hi, lo; - - hi =3D gpu_read(ptdev, GPU_TIMESTAMP_OFFSET_HI); - lo =3D gpu_read(ptdev, GPU_TIMESTAMP_OFFSET_LO); - - return ((u64)hi << 32) | lo; + return gpu_read64(ptdev, GPU_TIMESTAMP_OFFSET_LO); } diff --git a/drivers/gpu/drm/panthor/panthor_mmu.c b/drivers/gpu/drm/pantho= r/panthor_mmu.c index c39e3eb1c15d..bed13089bbd4 100644 --- a/drivers/gpu/drm/panthor/panthor_mmu.c +++ b/drivers/gpu/drm/panthor/panthor_mmu.c @@ -509,9 +509,9 @@ static int wait_ready(struct panthor_device *ptdev, u32= as_nr) /* Wait for the MMU status to indicate there is no active command, in * case one is pending. */ - ret =3D readl_relaxed_poll_timeout_atomic(ptdev->iomem + AS_STATUS(as_nr), - val, !(val & AS_STATUS_AS_ACTIVE), - 10, 100000); + ret =3D gpu_read_relaxed_poll_timeout_atomic(ptdev, AS_STATUS(as_nr), val, + !(val & AS_STATUS_AS_ACTIVE), + 10, 100000); =20 if (ret) { panthor_device_schedule_reset(ptdev); @@ -563,8 +563,7 @@ static void lock_region(struct panthor_device *ptdev, u= 32 as_nr, region =3D region_width | region_start; =20 /* Lock the region that needs to be updated */ - gpu_write(ptdev, AS_LOCKADDR_LO(as_nr), lower_32_bits(region)); - gpu_write(ptdev, AS_LOCKADDR_HI(as_nr), upper_32_bits(region)); + gpu_write64(ptdev, AS_LOCKADDR_LO(as_nr), region); write_cmd(ptdev, as_nr, AS_COMMAND_LOCK); } =20 @@ -614,14 +613,9 @@ static int panthor_mmu_as_enable(struct panthor_device= *ptdev, u32 as_nr, if (ret) return ret; =20 - gpu_write(ptdev, AS_TRANSTAB_LO(as_nr), lower_32_bits(transtab)); - gpu_write(ptdev, AS_TRANSTAB_HI(as_nr), upper_32_bits(transtab)); - - gpu_write(ptdev, AS_MEMATTR_LO(as_nr), lower_32_bits(memattr)); - gpu_write(ptdev, AS_MEMATTR_HI(as_nr), upper_32_bits(memattr)); - - gpu_write(ptdev, AS_TRANSCFG_LO(as_nr), lower_32_bits(transcfg)); - gpu_write(ptdev, AS_TRANSCFG_HI(as_nr), upper_32_bits(transcfg)); + gpu_write64(ptdev, AS_TRANSTAB_LO(as_nr), transtab); + gpu_write64(ptdev, AS_MEMATTR_LO(as_nr), memattr); + gpu_write64(ptdev, AS_TRANSCFG_LO(as_nr), transcfg); =20 return write_cmd(ptdev, as_nr, AS_COMMAND_UPDATE); } @@ -634,14 +628,9 @@ static int panthor_mmu_as_disable(struct panthor_devic= e *ptdev, u32 as_nr) if (ret) return ret; =20 - gpu_write(ptdev, AS_TRANSTAB_LO(as_nr), 0); - gpu_write(ptdev, AS_TRANSTAB_HI(as_nr), 0); - - gpu_write(ptdev, AS_MEMATTR_LO(as_nr), 0); - gpu_write(ptdev, AS_MEMATTR_HI(as_nr), 0); - - gpu_write(ptdev, AS_TRANSCFG_LO(as_nr), AS_TRANSCFG_ADRMODE_UNMAPPED); - gpu_write(ptdev, AS_TRANSCFG_HI(as_nr), 0); + gpu_write64(ptdev, AS_TRANSTAB_LO(as_nr), 0); + gpu_write64(ptdev, AS_MEMATTR_LO(as_nr), 0); + gpu_write64(ptdev, AS_TRANSCFG_LO(as_nr), AS_TRANSCFG_ADRMODE_UNMAPPED); =20 return write_cmd(ptdev, as_nr, AS_COMMAND_UPDATE); } @@ -1677,8 +1666,7 @@ static void panthor_mmu_irq_handler(struct panthor_de= vice *ptdev, u32 status) u32 source_id; =20 fault_status =3D gpu_read(ptdev, AS_FAULTSTATUS(as)); - addr =3D gpu_read(ptdev, AS_FAULTADDRESS_LO(as)); - addr |=3D (u64)gpu_read(ptdev, AS_FAULTADDRESS_HI(as)) << 32; + addr =3D gpu_read64(ptdev, AS_FAULTADDRESS_LO(as)); =20 /* decode the fault status */ exception_type =3D fault_status & 0xFF; diff --git a/drivers/gpu/drm/panthor/panthor_regs.h b/drivers/gpu/drm/panth= or/panthor_regs.h index b7b3b3add166..269c2c68dde2 100644 --- a/drivers/gpu/drm/panthor/panthor_regs.h +++ b/drivers/gpu/drm/panthor/panthor_regs.h @@ -10,6 +10,9 @@ #ifndef __PANTHOR_REGS_H__ #define __PANTHOR_REGS_H__ =20 +#include + +/* GX10 registers */ #define GPU_ID 0x0 #define GPU_ARCH_MAJOR(x) ((x) >> 28) #define GPU_ARCH_MINOR(x) (((x) & GENMASK(27, 24)) >> 24) @@ -236,4 +239,50 @@ #define gpu_read(dev, reg) \ readl((dev)->iomem + (reg)) =20 +#define gpu_read_relaxed(dev, reg) \ + readl_relaxed((dev)->iomem + (reg)) + +#define gpu_write64(dev, reg, data) \ + do { \ + u64 __val =3D (u64)(data); \ + gpu_write(dev, reg, lower_32_bits(__val)); \ + gpu_write(dev, reg + 4, upper_32_bits(__val)); \ + } while (0) + +#define gpu_read64(dev, reg) \ + (gpu_read(dev, reg) | ((u64)gpu_read(dev, reg + 4) << 32)) + +#define gpu_read64_relaxed(dev, reg) \ + (gpu_read_relaxed(dev, reg) | ((u64)gpu_read_relaxed(dev, reg + 4) << 32)) + +#define gpu_read64_sync(dev, reg_lo) \ + ({ \ + u32 lo, hi1, hi2; \ + const u64 reg_hi =3D reg_lo + 4; \ + do { \ + hi1 =3D readl((dev)->iomem + (reg_hi)); \ + lo =3D readl((dev)->iomem + (reg_lo)); \ + hi2 =3D readl((dev)->iomem + (reg_hi)); \ + } while (hi1 !=3D hi2); \ + lo | ((u64)hi2 << 32u); \ + }) + +#define gpu_read_poll_timeout(dev, reg, val, cond, delay_us, timeout_us) \ + read_poll_timeout(gpu_read, val, cond, delay_us, timeout_us, false, dev, = reg) + +#define gpu_read_poll_timeout_atomic(dev, reg, val, cond, delay_us, timeou= t_us) \ + read_poll_timeout_atomic(gpu_read, val, cond, delay_us, timeout_us, false= , dev, reg) + +#define gpu_read64_poll_timeout(dev, reg, val, cond, delay_us, timeout_us)= \ + read_poll_timeout(gpu_read64, val, cond, delay_us, timeout_us, false, dev= , reg) + +#define gpu_read64_poll_timeout_atomic(dev, reg, val, cond, delay_us, time= out_us) \ + read_poll_timeout_atomic(gpu_read64, val, cond, delay_us, timeout_us, fal= se, dev, reg) + +#define gpu_read_relaxed_poll_timeout_atomic(dev, reg, val, cond, delay_us= , timeout_us) \ + read_poll_timeout_atomic(gpu_read_relaxed, val, cond, delay_us, timeout_u= s, false, dev, reg) + +#define gpu_read64_relaxed_poll_timeout(dev, reg, val, cond, delay_us, tim= eout_us) \ + read_poll_timeout(gpu_read64_relaxed, val, cond, delay_us, timeout_us, fa= lse, dev, reg) + #endif --=20 2.47.1