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 B4B0B3E1D1A for ; Fri, 28 Aug 2026 20:58:18 +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=1787950700; cv=pass; b=r0fvy7Ct+FjXIO9JCMJpBVdUCdqTibcpyg4NUOFCQSn/oRLGwhlpzk/29Tbtovttd1xT0vIKK0GO9v6gKdH4gYb3JKzbgTn0OIaTgyDPLCMTh8euFA75fxm5DLbLb3zv2JkFHspjiFSPPIupvPRxmAclQdxBRQY6vafd8VyMVvU= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787950700; c=relaxed/simple; bh=sD53kiakATC+UcUaCaf7NbRw9ob5hiejFyKuZ4y1uXI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=XOYh1r20ErRq+jDCjWh9xy47cdLkz0JEP6i/vgkg2L+vGt1z6c4NKVsEv1LBlANvmRF0eKd0suaB4iDYs5+WokZ1BT70JNgaDCBVKvAG/NDSTk8bD2lQCUfsabn5NR5kteQQJr3sFGW2HtgjjtFysO/QyRqFTiFTzJagAb3k9NU= 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=TZlNlhaP; 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="TZlNlhaP" ARC-Seal: i=1; a=rsa-sha256; t=1787950662; cv=none; d=zohomail.com; s=zohoarc; b=a3PaqiROngVEgYGz63c4LLAlppHPXlPAAsBg/LL97PurKLHBRrRnhSrpyL4dbC0MkRD4g5SUSCjIWjR2zo5v+m6T7DyHpfYbUF3vjobdU8ibQkLMfQNLYaZdi3XTwyVr3KKJ7JFkYJhjIlZnteKG74JTEjOyT0m8+V1Cn/E2geo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1787950662; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:MIME-Version:Message-ID:Subject:Subject:To:To:Message-Id:Reply-To; bh=w3iyg6HDBs4Cp03goVcc+iKtUKTimcI5YnSFSphq3ZA=; b=E41sQq9Hz2LtnT3X5oXH1NsKOCaoe3i7xo5mLm3qvIPD7+iv1wnme9bBoYpOsVMInwNEoATmHXdCb8swOF4aDj9Qs7eAjWpLLCSnEix1Qdbjk5ermyNfN2v4fW51FB/ZzGadR9KVuVc+/i9E1LJlkPketVyXhyv/cfufmLYmmHQ= 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=1787950662; s=zohomail; d=collabora.com; i=adrian.larumbe@collabora.com; h=From:From:Date:Date:Subject:Subject:MIME-Version:Content-Type:Content-Transfer-Encoding:Message-Id:Message-Id:In-Reply-To:To:To:Cc:Cc:Reply-To; bh=w3iyg6HDBs4Cp03goVcc+iKtUKTimcI5YnSFSphq3ZA=; b=TZlNlhaPYNdvffiosoYbFb83c5W4R0g87t4vwFCHL/jV/vTMkKZu1AUhanwFP9tY /gnHfCO491h5tYq7wYpjYppn0vIlNqFcZmsg6gaCHVMZsJKEwe2N3fIucyD1qKJWxrK Tk/vln5WLv/1aOSwKfrcMR26F/OaKHvQnbG22FMA= Received: by mx.zohomail.com with SMTPS id 1787950659656219.550473564929; Fri, 28 Aug 2026 13:57:39 -0700 (PDT) From: =?utf-8?q?Adri=C3=A1n_Larumbe?= Date: Fri, 28 Aug 2026 21:56:43 +0100 Subject: [PATCH v7 03/17] drm/panfrost: Move lock and modparam initialisations into their subsystems 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 Message-Id: <20260828-claude-fixes-v7-3-72a13b2c125d@collabora.com> References: <20260828-claude-fixes-v7-0-72a13b2c125d@collabora.com> In-Reply-To: <20260828-claude-fixes-v7-0-72a13b2c125d@collabora.com> 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 , Alyssa Rosenzweig , 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=6181; i=adrian.larumbe@collabora.com; h=from:subject:message-id; bh=sD53kiakATC+UcUaCaf7NbRw9ob5hiejFyKuZ4y1uXI=; b=owEB7QES/pANAwAKAQ4mfkzuU0M9AcsmYgBqkfYt9mCdM4WQZ0fkV/3MJ95dPu1Vxo/CpmZEF sc9QamsOOSJAbMEAAEKAB0WIQQyQDDowAUXXfk3B6QOJn5M7lNDPQUCapH2LQAKCRAOJn5M7lND PVl3DACO+9USPhz3bs/+Pu00Ui90vRwsMlXYtTozeoz/Rz1IFNSLKCsubLc3+WgfyuaPQuZ+5qO wsotSnVtpfGYfZLRtdTH/0sGDIlXACJnwrd4F6regQU0uaypXYIrHA9ueUUXMPOmSp/L6pOMiVr ySn2OqS/g6CfIN5PPwFWp8wlOEKCrXejh2d79w9Cs/32tNCwjwaxEeC5g7+9J/CFbz5zPRhqElu lm4X0YfGUIYwm3WTSeXzqDiAqv2V4yrR1HMOHDxpk4nj7TNVVn/Bb1YI2o4q46J3cLoHML7SiBZ +QnHn0TF4umJWf+TZK26w9hEnDsxT9wnQFU+GtloM7bD9lGuqEtB4/mYdMkBXKXZfyUXqMXO/ya DWKSAv/8WDPRhrzVpTY7E3nJ4nvpe3i6Fhc33GpMi9qBydVWpcyhUtDzwF9abEfJyWWdqg2m0Zb HTVREkgFvCxlqeE8pR5gHeMPb08rQ1LmMGhiz+6K7WKgelwIds5yjFnhXycjHitr4qNSs= X-Developer-Key: i=adrian.larumbe@collabora.com; a=openpgp; fpr=324030E8C005175DF93707A40E267E4CEE53433D The device init function feels a bit cluttered with things that should be done in the specific subsystems where those locks and lists are being used. Same goes for module parameters, it's best to limit them to the subsystems where they're relevant. Signed-off-by: Adrián Larumbe --- drivers/gpu/drm/panfrost/panfrost_device.c | 10 ---------- drivers/gpu/drm/panfrost/panfrost_drv.c | 7 ------- drivers/gpu/drm/panfrost/panfrost_drv.h | 13 ------------- drivers/gpu/drm/panfrost/panfrost_gem.c | 9 ++++++++- drivers/gpu/drm/panfrost/panfrost_gem_shrinker.c | 3 +++ drivers/gpu/drm/panfrost/panfrost_gpu.c | 2 ++ drivers/gpu/drm/panfrost/panfrost_job.c | 1 + drivers/gpu/drm/panfrost/panfrost_mmu.c | 3 +++ 8 files changed, 17 insertions(+), 31 deletions(-) diff --git a/drivers/gpu/drm/panfrost/panfrost_device.c b/drivers/gpu/drm/panfrost/panfrost_device.c index d2d2830f11a7..7daa2143f3c4 100644 --- a/drivers/gpu/drm/panfrost/panfrost_device.c +++ b/drivers/gpu/drm/panfrost/panfrost_device.c @@ -223,16 +223,6 @@ int panfrost_device_init(struct panfrost_device *pfdev) pfdev->coherent = device_get_dma_attr(pfdev->base.dev) == DEV_DMA_COHERENT; - mutex_init(&pfdev->shrinker_lock); - INIT_LIST_HEAD(&pfdev->shrinker_list); - - mutex_init(&pfdev->sched_lock); - INIT_LIST_HEAD(&pfdev->as_lru_list); - - spin_lock_init(&pfdev->as_lock); - - spin_lock_init(&pfdev->cycle_counter.lock); - #ifdef CONFIG_DEBUG_FS mutex_init(&pfdev->debugfs.gems_lock); INIT_LIST_HEAD(&pfdev->debugfs.gems_list); diff --git a/drivers/gpu/drm/panfrost/panfrost_drv.c b/drivers/gpu/drm/panfrost/panfrost_drv.c index 80996e311a9d..ec8c1c08e147 100644 --- a/drivers/gpu/drm/panfrost/panfrost_drv.c +++ b/drivers/gpu/drm/panfrost/panfrost_drv.c @@ -21,7 +21,6 @@ #include #include "panfrost_device.h" -#include "panfrost_drv.h" #include "panfrost_gem.h" #include "panfrost_mmu.h" #include "panfrost_job.h" @@ -955,12 +954,6 @@ static const struct drm_driver panfrost_drm_driver = { #endif }; -#ifdef CONFIG_TRANSPARENT_HUGEPAGE -bool panfrost_transparent_hugepage = true; -module_param_named(transparent_hugepage, panfrost_transparent_hugepage, bool, 0400); -MODULE_PARM_DESC(transparent_hugepage, "Use a dedicated tmpfs mount point with Transparent Hugepage enabled (true = default)"); -#endif - static int panfrost_probe(struct platform_device *pdev) { struct panfrost_device *pfdev; diff --git a/drivers/gpu/drm/panfrost/panfrost_drv.h b/drivers/gpu/drm/panfrost/panfrost_drv.h deleted file mode 100644 index bac0c415d4da..000000000000 --- a/drivers/gpu/drm/panfrost/panfrost_drv.h +++ /dev/null @@ -1,13 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0 or MIT */ -/* Copyright 2025 Amazon.com, Inc. or its affiliates */ - -#ifndef __PANFROST_DRV_H__ -#define __PANFROST_DRV_H__ - -#if IS_ENABLED(CONFIG_TRANSPARENT_HUGEPAGE) -extern bool panfrost_transparent_hugepage; -#else -#define panfrost_transparent_hugepage false -#endif - -#endif diff --git a/drivers/gpu/drm/panfrost/panfrost_gem.c b/drivers/gpu/drm/panfrost/panfrost_gem.c index 7b993a089af2..15105b7f954b 100644 --- a/drivers/gpu/drm/panfrost/panfrost_gem.c +++ b/drivers/gpu/drm/panfrost/panfrost_gem.c @@ -11,10 +11,17 @@ #include #include #include "panfrost_device.h" -#include "panfrost_drv.h" #include "panfrost_gem.h" #include "panfrost_mmu.h" +#ifdef CONFIG_TRANSPARENT_HUGEPAGE +bool panfrost_transparent_hugepage = true; +module_param_named(transparent_hugepage, panfrost_transparent_hugepage, bool, 0400); +MODULE_PARM_DESC(transparent_hugepage, "Use a dedicated tmpfs mount point with Transparent Hugepage enabled (true = default)"); +#else +#define panfrost_transparent_hugepage false +#endif + int panfrost_gem_init(struct panfrost_device *pfdev) { int err; diff --git a/drivers/gpu/drm/panfrost/panfrost_gem_shrinker.c b/drivers/gpu/drm/panfrost/panfrost_gem_shrinker.c index fefae87535d6..72cd7a165e6d 100644 --- a/drivers/gpu/drm/panfrost/panfrost_gem_shrinker.c +++ b/drivers/gpu/drm/panfrost/panfrost_gem_shrinker.c @@ -97,6 +97,9 @@ panfrost_gem_shrinker_scan(struct shrinker *shrinker, struct shrink_control *sc) */ int panfrost_gem_shrinker_init(struct panfrost_device *pfdev) { + mutex_init(&pfdev->shrinker_lock); + INIT_LIST_HEAD(&pfdev->shrinker_list); + pfdev->shrinker = shrinker_alloc(0, "drm-panfrost"); if (!pfdev->shrinker) return -ENOMEM; diff --git a/drivers/gpu/drm/panfrost/panfrost_gpu.c b/drivers/gpu/drm/panfrost/panfrost_gpu.c index 7d555e63e21a..8a15ccce08e9 100644 --- a/drivers/gpu/drm/panfrost/panfrost_gpu.c +++ b/drivers/gpu/drm/panfrost/panfrost_gpu.c @@ -516,6 +516,8 @@ int panfrost_gpu_init(struct panfrost_device *pfdev) { int err; + spin_lock_init(&pfdev->cycle_counter.lock); + err = panfrost_gpu_soft_reset(pfdev); if (err) return err; diff --git a/drivers/gpu/drm/panfrost/panfrost_job.c b/drivers/gpu/drm/panfrost/panfrost_job.c index 2d12b83e900a..6f920fd0fc4e 100644 --- a/drivers/gpu/drm/panfrost/panfrost_job.c +++ b/drivers/gpu/drm/panfrost/panfrost_job.c @@ -873,6 +873,7 @@ int panfrost_jm_init(struct panfrost_device *pfdev) INIT_WORK(&pfdev->reset.work, panfrost_reset_work); spin_lock_init(&js->job_lock); + mutex_init(&pfdev->sched_lock); js->irq = platform_get_irq_byname(to_platform_device(pfdev->base.dev), "job"); if (js->irq < 0) diff --git a/drivers/gpu/drm/panfrost/panfrost_mmu.c b/drivers/gpu/drm/panfrost/panfrost_mmu.c index 4a3162c3b659..5c393ed6e310 100644 --- a/drivers/gpu/drm/panfrost/panfrost_mmu.c +++ b/drivers/gpu/drm/panfrost/panfrost_mmu.c @@ -955,6 +955,9 @@ int panfrost_mmu_init(struct panfrost_device *pfdev) { int err; + INIT_LIST_HEAD(&pfdev->as_lru_list); + spin_lock_init(&pfdev->as_lock); + pfdev->mmu_irq = platform_get_irq_byname(to_platform_device(pfdev->base.dev), "mmu"); if (pfdev->mmu_irq < 0) return pfdev->mmu_irq; -- 2.55.0