From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from sender5-op-o11.zoho.com (sender5-op-o11.zoho.com [165.173.182.11]) (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 777E548F827 for ; Mon, 12 Oct 2026 14:48:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=pass smtp.client-ip=165.173.182.11 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1791816513; cv=pass; b=vFszEOcd7bfScGBuFTIHfRZQop+Bf3zl0bv8cOkhbJxKS76tiwo1NEtBvNIAZK+DPN4msmk7UPjJpvoDpT6Nq7HBqCSjP1m1Gh6T41ef73KjvjdF/kl7Z7VNERhdcf0wGQE2lTJ3mdHgPpWfPIeV2Y6nqTV8/a93T+mcbN6ms+8= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1791816513; c=relaxed/simple; bh=oJqWnIGEyptXwEVe7ZGMbZ5mIClNfgb5dutlj1038Rg=; h=From:Subject:Date:Message-Id:MIME-Version:Content-Type:To:Cc; b=sqWwKSv5dhaa9SXrDVBWmLZa6ZsVVa6b2JbYTmNJPnSWoOjsHVot7GU1bprz1OLljT3H+3ot0DY4cblzsn+9GP93LrUHmzcQvFxly8TiFbDl5w4XFfSHRIzmgcNxhQOAvjvwHAWLAORcVv/b98GOIt96dln6z3nSBkZqaPl/1aM= ARC-Authentication-Results:i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (1024-bit key) header.d=collabora.com header.i=adrian.larumbe@collabora.com header.b=YAFgf08e; arc=pass smtp.client-ip=165.173.182.11 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=collabora.com header.i=adrian.larumbe@collabora.com header.b="YAFgf08e" ARC-Seal: i=1; a=rsa-sha256; t=1791816482; cv=none; d=zohomail.com; s=zohoarc; b=XOiPCqlQtfrqkV4346ge/wffKkqLIVknvcqw4Jw3EtTid38guJsG3sAN9JEdsL9Rjh0EBvByb2HEF72oq7SKrhjuo7U8QDofTGNpdBwm+p109ghvjwKYHVajmWkR9GaXDWMErV3A/yhSLMTCCNhzg6wMxNBZsxL5PgBYIvmT/jg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1791816482; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:MIME-Version:Message-ID:Subject:Subject:To:To:Message-Id:Reply-To; bh=t8nuMitY40ACyrBwiVPxRftQjYUqoUZEy5nq+8JwsW4=; b=Qfl81TCjWkqqgz8KU1gqKwmlLj3zxAJvPvLSgcPF8olyrnkc37YYPkEb5Vd07MsXCUImnDrFhV7gwqmHKdO3qJvB1bBb9VdGAWGFHUeLGNJEGWciSgsfar0DdqGmzgJPDxo4MRd+0CGfZxEJ+38nPeD+fvc7e1jyNpzG8nGRQPA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=collabora.com; spf=pass smtp.mailfrom=adrian.larumbe@collabora.com; dmarc=pass header.from= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1791816482; s=zohomail; d=collabora.com; i=adrian.larumbe@collabora.com; h=From:From:Subject:Subject:Date:Date:Message-Id:Message-Id:MIME-Version:Content-Type:Content-Transfer-Encoding:To:To:Cc:Cc:Reply-To; bh=t8nuMitY40ACyrBwiVPxRftQjYUqoUZEy5nq+8JwsW4=; b=YAFgf08eO5c3XX0h5YNI4nKIRdiePIS8IMgOVNBYdqVcFr0CkRwxZEK6/Y1YIA3e L9OLE0Hl9UZtCJ+y65YULXjyZuu9xtYP9DfBDcpFavK/G85PqmDxx/aamfvJ7henPi2 N0+02rrhaPl6DHV79muFOv5VIWwFiwh3aBC3hAzA= Received: by smtp.zohomail.com with SMTPS id 1791816481169119.72931259646236; Mon, 12 Oct 2026 07:48:01 -0700 (PDT) From: =?utf-8?q?Adri=C3=A1n_Larumbe?= Subject: [PATCH v15 00/15] Collection of fixes for Panfrost: Perfcnt, RPM, refactorings Date: Mon, 12 Oct 2026 15:47:52 +0100 Message-Id: <20261012-claude-fixes-v15-0-bc0a6c498553@collabora.com> 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: 8bit X-B4-Tracking: v=1; b=H4sIAAAAAAAC/23T3U7cMBAF4FdBuSbVzPifq75HxYU9npRUywYls KJC++61qVCC15d27C9OzvHHsMk6yzY83H0Mq1zmbV7OZYDm/m7gp3j+LeOcy8RAQBYMqZFP8S3 LOM3vso2eEqiISkfPQ9nyssrng7Lj1+P/8faW/gi/VqOueJq312X9+/nCC9Z1X7T9Tl9whBGtB JIYddDhJy+nU0zLGn/w8jxU/kI7YEE3ABXAOLYpa0ZrTA9QO+CoBVQFNMXJYkwZph6gj0BoAF0 AwGD9RMLOxR5gdsAjNoApgMo2EAcJnqkH2ANw8xNtAVxxQ5w0BHE9wB0B3wCuAlQiTsRIJvcAv wMBXAP4AjAlTkY8odc9IBwApAYIBRDj/VR6YFG6KSAchJscEepHGBMoJMWM3SohHgnTErWNkNN kovHiWLoEHYm2DFj7aClJAp+FoJsF7oVEgDYMrI3MtlwHhd54C11CH4mbU9ROcnJaJZWCU6klr tfrP/iWZC4WBAAA X-Change-ID: 20260523-claude-fixes-82b03a134a8c To: Boris Brezillon , Rob Herring , Steven Price , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Faith Ekstrand , "Marty E. Plummer" , Tomeu Vizoso , Eric Anholt , Robin Murphy , Philipp Zabel Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Collabora Kernel Team , =?utf-8?q?Adri=C3=A1n_Larumbe?= , Neil Armstrong X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=9068; i=adrian.larumbe@collabora.com; h=from:subject:message-id; bh=oJqWnIGEyptXwEVe7ZGMbZ5mIClNfgb5dutlj1038Rg=; b=owEB7QES/pANAwAKAQ4mfkzuU0M9AcsmYgBqzPMaXznXSmuLMoi+2596WS7v/+Vdxuvo9hV5N vSgV0ivfAKJAbMEAAEKAB0WIQQyQDDowAUXXfk3B6QOJn5M7lNDPQUCaszzGgAKCRAOJn5M7lND PThnDACUkTREfbxvnN2MB2j55tS7/a7PvbU6rvvy1ymHgTRCXhUi6O1o0cLNvKx/dKn6SQFW6SU olaZS0EVL0yvhljEvfKPyvgg509UyVHOIsaWJK3vHxrzVg5GdGC9Ef5k9cXcLmE7CCtom37EfOD WnZnSLSjzJidrYW9colHkXY4vXc8ZJPL9F7jAmtD0P1rLVyy9r9COBnKKhVH/HQWrf9iCcQdYhC TM3Ij2V901g3CjzV6n7XNdejTnuHrY+G15LprNs2+axpl9m482MG+Xz2u5eEXU3uva1ZCCe3eey NZtRf3WJ3FtIG9dATS9trh5B+LOKrETIFiySFC7glWeoCOZcdQw5qoDsbh9C3e3OoncN1aIXo8C Ha9SQuPkAhYBGVsQ/4ASPDxCTFDQ2/BBmCzDbK8QZ0yTfPSkNoSUYVMH5t7lQ8SOHgN4L81WFW2 YsIDg5U0elT6SX7m6VWbyWYV3fzX6BfDooQM4LuM+PPSGtFticeHPP+pBHNqFbbmbhLSE= X-Developer-Key: i=adrian.larumbe@collabora.com; a=openpgp; fpr=324030E8C005175DF93707A40E267E4CEE53433D This patch series began as an assortment of small fixes for some issues uncovered by Claude. Over time, it has evolved to include many other fixes for further problems revealed by Sashiko in successive revisions, and also refactorings and improvements suggested by maintainer discussions. A subset of patches submitted in previous revisions was already merged after they had been reviewed, to avoid this series growing to unmanageable extents. Signed-off-by: Adrián Larumbe --- Changes in v15: - Rebased on top of latest drm-misc-next for the sake of merging it. - Added last remaining trailers. - Link to v14: https://patch.msgid.link/20261009-claude-fixes-v14-0-cb743b3b973b@collabora.com Changes in v14: - Fixed Sashiko-uncovered issues in the perfcnt-reset fixes commit. - Changed documentation for new state variable in the main driver file. - Link to v13: https://patch.msgid.link/20261008-claude-fixes-v13-0-d6a493185860@collabora.com Changes in v13: - Added initial clk prepares to avoid clocks being unprepared in the suspend path. - Remove warning around scheduler's credit count in the RPM suspend path. - Reject all values other than '1' in the debugfs reset knob. - Cleaned the error reporting protocol for perfcnt reset conditions. - Fixed even more Sashiko issues in perfcnt reset sequence. - Refined commit message for initial perfcnt cache clean removal patch. - Link to v12: https://patch.msgid.link/20260929-claude-fixes-v12-0-62beb08de207@collabora.com Changes in v12: - Fixed perfcnt and driver init bugs uncovered by Sashiko in v11. - Fixed stale commit message for PM fixes. - Link to v11: https://patch.msgid.link/20260925-claude-fixes-v11-0-0dbf5a58e7ce@collabora.com Changes in v11: - Fixed bugs about user_count and PM device status at driver init and remove time. - Documented new uAPI for perfcnt dump ioctl that depends on reset status. - Fixed issues about internal perfcnt bookkeeping in case of reset. - Link to v10: https://patch.msgid.link/20260924-claude-fixes-v10-0-755929b3cc19@collabora.com Changes in v10: - Improved the logic for the debugfs reset knob. - Changed perfcnt reset race commit message to reflect true HW behaviour. - Improved logic of perfcnt reset handling with a state variable instead of booleans. - Added comments explaning how we handle PM status and references at device init time. - Fix RM resume clock disable bug uncovered by Sashiko and also changed function naming. - Link to v9: https://patch.msgid.link/20260912-claude-fixes-v9-0-e588feaa61ef@collabora.com Changes in v9: - Extended clk_(enable|disable) consolidation into other runtime callbacks. - Fixed uAPI and perfcnt/reset interaction errors uncovered by Sashiko. - Link to v8: https://patch.msgid.link/20260907-claude-fixes-v8-0-c2bcb5e82184@collabora.com Changes in v8: - Applied fixes for issues brought up by Sashiko. - Rolled back some additions from v7: job stopping, IRQ consolidation. - Applied RPM fixes before moving most driver init code into panfrost_device.c - Brought back v6 patch that enables MMU IRQs before device is registered. - Simplified perfcnt reset handling procedure, so that no retry is done in the kernel. - Link to v7: https://patch.msgid.link/20260828-claude-fixes-v7-0-72a13b2c125d@collabora.com Changes in v7: - Again fixed some minor issues reported by Sashiko. - Made sure the new debugfs reset knob works even when runtime PM isn't enabled. - Added new patch that handles job termination at driver teardown time. - Link to v6: https://patch.msgid.link/20260826-claude-fixes-v6-0-78119af409e7@collabora.com Changes in v6: - Grafted trivial already-reviwed patches from previous revisions into their own series so that they could be merged into drm-misc-next. - Added commits with multiple refactorings, code rearrangements and simplifications. - Addressed all issues brought up by reviwers and Sashiko in the previous revision. - Link to v5: https://patch.msgid.link/20260811-claude-fixes-v5-0-3d692c9e98c2@collabora.com Changes in v5: - Addressed more issues uncovered by Sashiko. - Discarded two patches to avoid dealing with too many pre-existing issues at once. - Biggest change is the re-arrangement of the start sequence, made to look like Panthor. - Link to v4: https://patch.msgid.link/20260729-claude-fixes-v4-0-01968f2ec77a@collabora.com Changes in v4: - Fixed errors and issues uncovered by Sashiko in the previous revision. - Changed the way RPM checks whether the device is initialised when resuming. - Simplified perfcnt treatment of potential resets. - Link to v3: https://patch.msgid.link/20260724-claude-fixes-v3-0-542af61abd0f@collabora.com Changes in v3: - Applied some minor suggestions for the first couple of patches in the series. - Moved shrinker initialisation into gem initialisation. - Fixed RPM bugs by moving all clock and power initialisation into RPM resume. - Added patch for reset sequence fixes and also a userspace knob to trigger it. - Reworked perfcnt fix by having the reset sequence restore its initial state. - Link to v2: https://patch.msgid.link/20260604-claude-fixes-v2-0-57c6bd4c1655@collabora.com Changes in v2: - Fixed race conditions introduced by the previous revision, in the RPM and HWPerf commits specifically. These can be consulted at [1] - Don't attempt to suspend the device unconditionally at the end of probe(), and do it through autosuspend instead. - Broke the RPM patch into one that fixes PM refcnt proper and another one for MMU enablement at device init time. - Moved perfcnt GPU disable helper into its own commmit. Same for transplating shrinker initialisation and unplug. - Added 'Fixes' and 'Reported-by' tags to all the relevant commits - [1] https://sashiko.dev/#/patchset/20260526-claude-fixes-v1-0-16e92eaa4949%40collabora.com - Link to v1: https://patch.msgid.link/20260526-claude-fixes-v1-0-16e92eaa4949@collabora.com To: Boris Brezillon To: Rob Herring To: Steven Price To: Adrián Larumbe To: Maarten Lankhorst To: Maxime Ripard To: Thomas Zimmermann To: David Airlie To: Simona Vetter To: Faith Ekstrand To: "Marty E. Plummer" To: Tomeu Vizoso To: Eric Anholt To: Alyssa Rosenzweig To: Robin Murphy To: Philipp Zabel Cc: dri-devel@lists.freedesktop.org Cc: linux-kernel@vger.kernel.org Cc: Neil Armstrong --- Adrián Larumbe (15): drm/panfrost: Move shrinker initialization and unplug one level down drm/panfrost: Move lock and modparam initialisations into their subsystems drm/panfrost: Move debugfs initialisation to relevant subsystems drm/panfrost: Skip NULL checks for clock enable/disabling drm/panfrost: Consolidate device clock management and reset drm/panfrost: Fix PM refcnt and autosuspend issues at device probe/remove drm/panfrost: Explicitly enable MMU interrupts at device init drm/panfrost: Move all DRM device initialisation into device_init() drm/panfrost: Warn of RPM get failure at device remove time drm/panfrost: Add debugfs knob for manually triggering a GPU reset drm/panfrost: Move perfcnt GPU disable sequence into a helper drm/panfrost: Skip cache flush/invalidate when enabling perfcnt drm/panfrost: Avoid cache flush after perfcnt sample in fully coherent systems drm/panfrost: Introduce a reset lock drm/panfrost: Fix races between perfcnt and reset sequence drivers/gpu/drm/panfrost/panfrost_device.c | 247 +++++++++++++----- drivers/gpu/drm/panfrost/panfrost_device.h | 5 + drivers/gpu/drm/panfrost/panfrost_drv.c | 198 +------------- drivers/gpu/drm/panfrost/panfrost_drv.h | 9 - drivers/gpu/drm/panfrost/panfrost_gem.c | 64 ++++- drivers/gpu/drm/panfrost/panfrost_gem.h | 10 +- drivers/gpu/drm/panfrost/panfrost_gem_shrinker.c | 9 +- drivers/gpu/drm/panfrost/panfrost_gpu.c | 2 + drivers/gpu/drm/panfrost/panfrost_job.c | 103 +++++++- drivers/gpu/drm/panfrost/panfrost_job.h | 4 + drivers/gpu/drm/panfrost/panfrost_mmu.c | 14 +- drivers/gpu/drm/panfrost/panfrost_perfcnt.c | 319 +++++++++++++++-------- drivers/gpu/drm/panfrost/panfrost_perfcnt.h | 1 + include/uapi/drm/panfrost_drm.h | 29 ++- 14 files changed, 611 insertions(+), 403 deletions(-) --- base-commit: 73df79cceb8c01f311055a61794e229dc81546cb change-id: 20260523-claude-fixes-82b03a134a8c Best regards, -- Adrián Larumbe