From nobody Wed Jun 17 01:34:37 2026 Received: from sender4-pp-f112.zoho.com (sender4-pp-f112.zoho.com [136.143.188.112]) (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 73B431A3172; Tue, 28 Apr 2026 19:20:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=pass smtp.client-ip=136.143.188.112 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777404029; cv=pass; b=G3xNWgNpMjsHW6jURM3EqWjDUznlBTMa4rCFYIcO1bVyhhMm33QDaw81WbOrKv56Qx49KBn7KDf7oE5NNZ/VkeIvOlCW7k5Vv3FP1Uwdh2JLsGN2IPe05Epuoebca5rhqaWfd9i2DJeNL7UuyYJKL20G728zI2JRBr6EzOm5E/w= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777404029; c=relaxed/simple; bh=QLq4uxoh+IxsP7bOvtSOL1OvtImj3hqhtpDGgDrWfVE=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=G1Rxh2rcif4aEQBX5JwwKiM96jyYjgiwQZiFahIlSzU/NvWrB+wpdNNyDWI0iiE2aeJcRYVUOh6uvuV/8J1bSjQwoapaU1WkI3LzLf0veY5hE7UnMFgM4bGtNl90b8OqQ5N8oc5poZe1JbCBaBdho2BzYG8pQ35H9f5MyoQYfZE= 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=deborah.brouwer@collabora.com header.b=KD8ghX6j; arc=pass smtp.client-ip=136.143.188.112 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=deborah.brouwer@collabora.com header.b="KD8ghX6j" ARC-Seal: i=1; a=rsa-sha256; t=1777403979; cv=none; d=zohomail.com; s=zohoarc; b=IhBd5cv2TICv7QKXtl+zRO44E4ZT/031M34auIYkdNQzPP49YB00067q379dbDxg1ntH6dbIl75Z5Xo0m9fEgRL34SUMGvS8P8DJ2uh2+9tsZ9I/L2zZ5LGh6tA6aGeLviJav0DFgn6lZXEwhnp+4i4FWq1Wu/IJBHuZw1PilvA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777403979; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:MIME-Version:Message-ID:References:Subject:Subject:To:To:Message-Id:Reply-To; bh=h4eSSE+crWKJ+xxOqPk2xaRfCGDjT2wgRkoeTYNuCVY=; b=NP02jj/r97BHSyjKcO5M4GhyHT9srCq08zbrHDdy2rBEH/Mu58Wj9uFnGrdVnLcMwhdTNOTq/rwiFpAz/wE2qNUV+PRSJzA1aDKc815S0fTWAw1NfCOjspBlQXQhmIlY3ix6pn89qJU4tho5dK8dgJTxMsqIf6GpdCcLFiFQhnk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=collabora.com; spf=pass smtp.mailfrom=deborah.brouwer@collabora.com; dmarc=pass header.from= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1777403979; s=zohomail; d=collabora.com; i=deborah.brouwer@collabora.com; h=From:From:Date:Date:Subject:Subject:MIME-Version:Content-Type:Content-Transfer-Encoding:Message-Id:Message-Id:References:In-Reply-To:To:To:Cc:Cc:Reply-To; bh=h4eSSE+crWKJ+xxOqPk2xaRfCGDjT2wgRkoeTYNuCVY=; b=KD8ghX6jfTAxq1OiRpjLTCpbMfx+qqjpO4sZ6/Xz1jAlOyVNIeIgPYbXYkzOZ1jm Q4EGEU1Y0IliDEmzs+1xtm06zSYbPF6vBKWv3WeXGNnTuu2rvHXSTqbQ0ll5y1kCufB rD4JLy8KsMMn7FP3kWbYqKo3MNZ4VjRXvyUqM934= Received: by mx.zohomail.com with SMTPS id 1777403977599511.38951537089713; Tue, 28 Apr 2026 12:19:37 -0700 (PDT) From: Deborah Brouwer Date: Tue, 28 Apr 2026 12:19:28 -0700 Subject: [PATCH 1/5] drm/tyr: move clock cleanup into Clocks Drop impl 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: quoted-printable Message-Id: <20260428-fw-boot-prerequisites-v1-1-c69af9abe1af@collabora.com> References: <20260428-fw-boot-prerequisites-v1-0-c69af9abe1af@collabora.com> In-Reply-To: <20260428-fw-boot-prerequisites-v1-0-c69af9abe1af@collabora.com> To: Danilo Krummrich , Alice Ryhl , Daniel Almeida , David Airlie , Simona Vetter , Benno Lossin , Gary Guo , Miguel Ojeda , Boqun Feng , =?utf-8?q?Bj=C3=B6rn_Roy_Baron?= , Andreas Hindborg , Trevor Gross Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, rust-for-linux@vger.kernel.org, boris.brezillon@collabora.com, beata.michalska@arm.com, work@onurozkan.dev, alvin.sun@linux.dev, Deborah Brouwer X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=2613; i=deborah.brouwer@collabora.com; h=from:subject:message-id; bh=QLq4uxoh+IxsP7bOvtSOL1OvtImj3hqhtpDGgDrWfVE=; b=owGbwMvMwCVWuULzOU9c7WvG02pJDJkfOdyLVCKWzL0k6/HSc98O155LNgmGsaU5dktat5+wc 7y4hMuro5SFQYyLQVZMkeWsvVGPeNV7I935/5th5rAygQxh4OIUgImUHGD4n3zIxXc2l0Hg0euv pi09M38Ga2ytztONQQeiU3/r6n94vpWR4Zt0QpKBwFb19fK+V0wiYzP2SEuXvfix8oft4sLDvda uDAA= X-Developer-Key: i=deborah.brouwer@collabora.com; a=openpgp; fpr=CD3F328C177AEF322D9FFF8379A829E70C5E7DEB Currently Tyr disables its clocks from TyrDrmDeviceData::drop(), which causes them to be shut down before any other fields in TyrDrmDeviceData are dropped. This prevents us from using the clocks when dropping the other fields in TyrDrmDeviceData. In order to better control when the clocks are dropped, move this cleanup logic into a Drop implementation on the Clocks struct itself. Since it serves no further purpose, remove the PinnedDrop implementation for TyrDrmDeviceData. Also, while here, remove the #[pin_data] annotation from both the struct Clocks and struct Regulators since neither of these structs need this macro to create structurally pinned fields. Reviewed-by: Boris Brezillon Reviewed-by: Daniel Almeida Reviewed-by: Alice Ryhl Signed-off-by: Deborah Brouwer --- drivers/gpu/drm/tyr/driver.rs | 23 +++++++++-------------- 1 file changed, 9 insertions(+), 14 deletions(-) diff --git a/drivers/gpu/drm/tyr/driver.rs b/drivers/gpu/drm/tyr/driver.rs index e8acd2d69468..bb56a9b996a0 100644 --- a/drivers/gpu/drm/tyr/driver.rs +++ b/drivers/gpu/drm/tyr/driver.rs @@ -52,7 +52,7 @@ pub(crate) struct TyrPlatformDriverData { _device: ARef, } =20 -#[pin_data(PinnedDrop)] +#[pin_data] pub(crate) struct TyrDrmDeviceData { pub(crate) pdev: ARef, =20 @@ -157,17 +157,6 @@ impl PinnedDrop for TyrPlatformDriverData { fn drop(self: Pin<&mut Self>) {} } =20 -#[pinned_drop] -impl PinnedDrop for TyrDrmDeviceData { - fn drop(self: Pin<&mut Self>) { - // TODO: the type-state pattern for Clks will fix this. - let clks =3D self.clks.lock(); - clks.core.disable_unprepare(); - clks.stacks.disable_unprepare(); - clks.coregroup.disable_unprepare(); - } -} - // We need to retain the name "panthor" to achieve drop-in compatibility w= ith // the C driver in the userspace stack. const INFO: drm::DriverInfo =3D drm::DriverInfo { @@ -191,14 +180,20 @@ impl drm::Driver for TyrDrmDriver { } } =20 -#[pin_data] struct Clocks { core: Clk, stacks: OptionalClk, coregroup: OptionalClk, } =20 -#[pin_data] +impl Drop for Clocks { + fn drop(&mut self) { + self.core.disable_unprepare(); + self.stacks.disable_unprepare(); + self.coregroup.disable_unprepare(); + } +} + struct Regulators { _mali: Regulator, _sram: Regulator, --=20 2.53.0 From nobody Wed Jun 17 01:34:37 2026 Received: from sender4-pp-f112.zoho.com (sender4-pp-f112.zoho.com [136.143.188.112]) (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 9890647DD4C; Tue, 28 Apr 2026 19:20:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=pass smtp.client-ip=136.143.188.112 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777404015; cv=pass; b=CmeNlMHEMRZmvxvLnCGbFto0NImYsfpODDug6NIsm+M/xirnGClsBYg8+r36za6rYZsqXtqtU6yBjRYtlHrkv0MmvYgejyy3r9MsJwZYGtMnbbqcAPApe2T94Wy5MSLn9rJE6iEj/ppwe/zWH/G/hDdD8Gaqf3qqbztEL8cuqpY= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777404015; c=relaxed/simple; bh=iAjCbdLlysoue1jMTUMRapmsn146kfJaIEqM/eSiFhc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Ws9/Fsjrkp0LZlJgtU14cpJL+dctQjRw4bVASsekYwjMJYx+Fo6tnRjW+HdY91v5OfBXvaUeCy4FYnXo7MdMfZWX9CAPx5aDa87fjsxGZ84rYL5Ezpo2ZxR2qXqJKSclp4pjeZpY+vCyoxxx5vq5kKnk0UEwWC8VQ0hQi29FaYg= 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=deborah.brouwer@collabora.com header.b=Y30OfXGr; arc=pass smtp.client-ip=136.143.188.112 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=deborah.brouwer@collabora.com header.b="Y30OfXGr" ARC-Seal: i=1; a=rsa-sha256; t=1777403981; cv=none; d=zohomail.com; s=zohoarc; b=DJon07VbFT57f8Igvy44Rzn/O/f+5H48DgnAJzjgrLM3IhtudQHMJalej2PlZAmV96vpEcHaGxKM/k4eVzO8MtFmC+i9SpHATpKr67DJk4lZDhqDOF9FeXTB/ZQxlbor6QfFuORc8RSHiiMn028hHD5yoonSCl3nm75tzlA5Ht8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777403981; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:MIME-Version:Message-ID:References:Subject:Subject:To:To:Message-Id:Reply-To; bh=kTPl9yYwdmxPlkA+LNnQe66DxCpVxNnAaVuSH7KLSew=; b=By0wBlV+sAguCdkt1zKPN6AyWxHITQpVarfvCHlPMsVNc4WhXe8Fln68hva623MoYFYeFOHZ0bwEhDkx/M/xzARdeVQZFsSH1Ixq9Kedx0/3LT4eXC4rkDYq45hE3+tuY7bDCPZFo5dhAIG2IP1LrrpVstIwlQzGF02Q195ilMU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=collabora.com; spf=pass smtp.mailfrom=deborah.brouwer@collabora.com; dmarc=pass header.from= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1777403981; s=zohomail; d=collabora.com; i=deborah.brouwer@collabora.com; h=From:From:Date:Date:Subject:Subject:MIME-Version:Content-Type:Content-Transfer-Encoding:Message-Id:Message-Id:References:In-Reply-To:To:To:Cc:Cc:Reply-To; bh=kTPl9yYwdmxPlkA+LNnQe66DxCpVxNnAaVuSH7KLSew=; b=Y30OfXGrsO3jTKi5229bcGK9z83yMjUuhtwQcTi5DCGj5a9vdchrSZIOAioSvb7S u/2Kkpsh1LqRjExgZpIPPUUSp/yHF39Rd1FAIhXpQqjgO9sYlycSRxAj/+tdA+OO/ne DG9zAczSb5ONZBq3s6yNUXtiV7RZwwg/8X3PQwuQ= Received: by mx.zohomail.com with SMTPS id 1777403978740847.9599992334656; Tue, 28 Apr 2026 12:19:38 -0700 (PDT) From: Deborah Brouwer Date: Tue, 28 Apr 2026 12:19:29 -0700 Subject: [PATCH 2/5] drm/tyr: rename TyrObject to BoData 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: quoted-printable Message-Id: <20260428-fw-boot-prerequisites-v1-2-c69af9abe1af@collabora.com> References: <20260428-fw-boot-prerequisites-v1-0-c69af9abe1af@collabora.com> In-Reply-To: <20260428-fw-boot-prerequisites-v1-0-c69af9abe1af@collabora.com> To: Danilo Krummrich , Alice Ryhl , Daniel Almeida , David Airlie , Simona Vetter , Benno Lossin , Gary Guo , Miguel Ojeda , Boqun Feng , =?utf-8?q?Bj=C3=B6rn_Roy_Baron?= , Andreas Hindborg , Trevor Gross Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, rust-for-linux@vger.kernel.org, boris.brezillon@collabora.com, beata.michalska@arm.com, work@onurozkan.dev, alvin.sun@linux.dev, Deborah Brouwer X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=2007; i=deborah.brouwer@collabora.com; h=from:subject:message-id; bh=ISZXmYabGJ9SdgexjWCJ5nGOwQWfdDa12XyEDh7EmSw=; b=owGbwMvMwCVWuULzOU9c7WvG02pJDJkfOdzPdSscC/seJrb1/u9XUxfo3rL4vsuoSs0gvI6rJ n2PcRVDRykLgxgXg6yYIstZe6Me8ar3Rrrz/zfDzGFlAhnCwMUpABPRKmJk6NQ4a1xwwn9h3vxF qu/8tuf/5RA/d2vtPIt3X9a4cK4NmsXI0LuY/dSEiLqKt3mlxlPZdiy7diD4SdHHUnGPJo5J2Y7 OjAA= X-Developer-Key: i=deborah.brouwer@collabora.com; a=openpgp; fpr=CD3F328C177AEF322D9FFF8379A829E70C5E7DEB From: Boris Brezillon Currently the GEM inner driver data object is called `TyrObject` which is a fairly generic name. To make the code easier to understand, rename `TyrObject` to `BoData` so that the name better reflects its role. No functional change is intended. Reviewed-by: Daniel Almeida Reviewed-by: Alice Ryhl Signed-off-by: Boris Brezillon Co-developed-by: Deborah Brouwer Signed-off-by: Deborah Brouwer --- drivers/gpu/drm/tyr/driver.rs | 4 ++-- drivers/gpu/drm/tyr/gem.rs | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/gpu/drm/tyr/driver.rs b/drivers/gpu/drm/tyr/driver.rs index bb56a9b996a0..bb90324043ed 100644 --- a/drivers/gpu/drm/tyr/driver.rs +++ b/drivers/gpu/drm/tyr/driver.rs @@ -34,7 +34,7 @@ =20 use crate::{ file::TyrDrmFileData, - gem::TyrObject, + gem::BoData, gpu, gpu::GpuInfo, regs::gpu_control::*, // @@ -171,7 +171,7 @@ fn drop(self: Pin<&mut Self>) {} impl drm::Driver for TyrDrmDriver { type Data =3D TyrDrmDeviceData; type File =3D TyrDrmFileData; - type Object =3D drm::gem::Object; + type Object =3D drm::gem::Object; =20 const INFO: drm::DriverInfo =3D INFO; =20 diff --git a/drivers/gpu/drm/tyr/gem.rs b/drivers/gpu/drm/tyr/gem.rs index 5cc6eb0b5d3f..66c427a16c31 100644 --- a/drivers/gpu/drm/tyr/gem.rs +++ b/drivers/gpu/drm/tyr/gem.rs @@ -12,13 +12,13 @@ =20 /// GEM Object inner driver data #[pin_data] -pub(crate) struct TyrObject {} +pub(crate) struct BoData {} =20 -impl gem::DriverObject for TyrObject { +impl gem::DriverObject for BoData { type Driver =3D TyrDrmDriver; type Args =3D (); =20 fn new(_dev: &TyrDrmDevice, _size: usize, _args: ()) -> impl PinInit { - try_pin_init!(TyrObject {}) + try_pin_init!(BoData {}) } } --=20 2.53.0 From nobody Wed Jun 17 01:34:37 2026 Received: from sender4-pp-f112.zoho.com (sender4-pp-f112.zoho.com [136.143.188.112]) (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 44AAA1ACED5; Tue, 28 Apr 2026 19:20:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=pass smtp.client-ip=136.143.188.112 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777404010; cv=pass; b=UDzJ9J3MPpE8StOB43hGhChi2PTU6rBWNfgfDg8fCdLRDFoVWi79IYRcVLZyG9YcUknmpDS6hXGtt3inEkj+kDiIY0EAea35w9N95JTik2MsC6VJzXPQyP//YJmDT0IMQg/UYBAn04Sii49SdRB6569fUMN5suzsOa0q+VkKb2I= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777404010; c=relaxed/simple; bh=C/IlT6foYoxu0RNVT4bIEEkbXufTaRhrVVLu+1cB37Q=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=oa2BbX7J2PYC3iPUajSM3TqGVSd5EOE8G8qa3SM7nEHNEbBOXksj56KAdNNo/JiYcy4DRiNr+ILjrgxGGz3ggwLrR5Y0FyHysMKrcufghdHBwTRPOPBc1Dmvk6LdjJWB8jMN64C+g9RdzBOkz0IkwqHvn66uG1TkDxu/dsLG8No= 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=deborah.brouwer@collabora.com header.b=fTUFpKI+; arc=pass smtp.client-ip=136.143.188.112 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=deborah.brouwer@collabora.com header.b="fTUFpKI+" ARC-Seal: i=1; a=rsa-sha256; t=1777403981; cv=none; d=zohomail.com; s=zohoarc; b=gp5oWEVRkyxshS2sf3FbWXYB2aPjtEKBarevFnXVMq60HYh5j2v7NqIodUbIXjwGIz/lOgkgAcd+9ebMeUDIIUyq8lq8LHDU1lv9jefkeomCzHwzMxdHQ2MBtk1NCkh4bYGtYbFX07Dbueoct77XWwYuCU0ZqZNKtzsnfo185ZM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777403981; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:MIME-Version:Message-ID:References:Subject:Subject:To:To:Message-Id:Reply-To; bh=lylB4VdZYd/+Mm31ZLwjGWKc27cf1j1mM/6RvQC+wUw=; b=Jnrn1Z0EH8IIXG/7Br9I2lVhV4Y6S0AirmFQA5LWfkYckzXWoNygN6843nIyqyHxGw2BRVjhXb4iuFjA7vf5qJh4KO698+HuaQLuw2G6fiqYv7kw4uUh03PTcYM2CK6Izl7JsqVpN4oZM1gCfQRU3YFvqKUbGD2i4b32Hnj7LPw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=collabora.com; spf=pass smtp.mailfrom=deborah.brouwer@collabora.com; dmarc=pass header.from= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1777403981; s=zohomail; d=collabora.com; i=deborah.brouwer@collabora.com; h=From:From:Date:Date:Subject:Subject:MIME-Version:Content-Type:Content-Transfer-Encoding:Message-Id:Message-Id:References:In-Reply-To:To:To:Cc:Cc:Reply-To; bh=lylB4VdZYd/+Mm31ZLwjGWKc27cf1j1mM/6RvQC+wUw=; b=fTUFpKI+HyVEctl1lhx0xGez+GjFP6P999D59RhOIlcnlUTH0HpMGjag14RtJvXY x7+ILYfa3e0CW5CK4x8sNetYdmpa0DrzbdbcYd1De7b4p5Q48XjXRpyBzAFDN4VOD3A tSml0agzQcs/I+yJs3jaqYdrZ5fDSlPJNIsZxSLo= Received: by mx.zohomail.com with SMTPS id 17774039800641003.5924833519763; Tue, 28 Apr 2026 12:19:40 -0700 (PDT) From: Deborah Brouwer Date: Tue, 28 Apr 2026 12:19:30 -0700 Subject: [PATCH 3/5] drm/tyr: use shmem GEM object type in TyrDrmDriver 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: quoted-printable Message-Id: <20260428-fw-boot-prerequisites-v1-3-c69af9abe1af@collabora.com> References: <20260428-fw-boot-prerequisites-v1-0-c69af9abe1af@collabora.com> In-Reply-To: <20260428-fw-boot-prerequisites-v1-0-c69af9abe1af@collabora.com> To: Danilo Krummrich , Alice Ryhl , Daniel Almeida , David Airlie , Simona Vetter , Benno Lossin , Gary Guo , Miguel Ojeda , Boqun Feng , =?utf-8?q?Bj=C3=B6rn_Roy_Baron?= , Andreas Hindborg , Trevor Gross Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, rust-for-linux@vger.kernel.org, boris.brezillon@collabora.com, beata.michalska@arm.com, work@onurozkan.dev, alvin.sun@linux.dev, Deborah Brouwer X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1633; i=deborah.brouwer@collabora.com; h=from:subject:message-id; bh=9AUqc1pwEO0X2lyd1ardJI/seFGgn87n2wfHo+jWFIc=; b=owGbwMvMwCVWuULzOU9c7WvG02pJDJkfOdyjf6+a23rqoWHiT5bTx38mCUgKLJp9ZOnqD+Z7W fheOK692VHKwiDGxSArpshy1t6oR7zqvZHu/P/NMHNYmUCGMHBxCsBEFLUZ/rtdZ/43/247q/IH jquuh/rXvHR3FnJJlldyijLPUlqV5cbw3+X51delmy9O9rCvn9Giue2p1465W20+HNVJ+PKoaMG 8VFYA X-Developer-Key: i=deborah.brouwer@collabora.com; a=openpgp; fpr=CD3F328C177AEF322D9FFF8379A829E70C5E7DEB From: Alvin Sun Tyr buffer objects are shmem-backed, so the driver should use drm::gem::shmem::Object as its GEM object type instead of the base drm::gem::Object type. Switching to the shmem GEM object type matches how Tyr allocates and manages its buffer objects, and uses the shmem-specific GEM abstraction provided by the DRM Rust bindings. Select RUST_DRM_GEM_SHMEM_HELPER to ensure the required helpers are available when DRM_TYR is enabled. Signed-off-by: Alvin Sun Signed-off-by: Deborah Brouwer --- drivers/gpu/drm/tyr/Kconfig | 1 + drivers/gpu/drm/tyr/driver.rs | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/tyr/Kconfig b/drivers/gpu/drm/tyr/Kconfig index e933e6478027..51a68ef8212c 100644 --- a/drivers/gpu/drm/tyr/Kconfig +++ b/drivers/gpu/drm/tyr/Kconfig @@ -8,6 +8,7 @@ config DRM_TYR depends on !GENERIC_ATOMIC64 # for IOMMU_IO_PGTABLE_LPAE depends on COMMON_CLK default n + select RUST_DRM_GEM_SHMEM_HELPER help Rust DRM driver for ARM Mali CSF-based GPUs. =20 diff --git a/drivers/gpu/drm/tyr/driver.rs b/drivers/gpu/drm/tyr/driver.rs index bb90324043ed..cdb9b13bdb32 100644 --- a/drivers/gpu/drm/tyr/driver.rs +++ b/drivers/gpu/drm/tyr/driver.rs @@ -171,7 +171,7 @@ fn drop(self: Pin<&mut Self>) {} impl drm::Driver for TyrDrmDriver { type Data =3D TyrDrmDeviceData; type File =3D TyrDrmFileData; - type Object =3D drm::gem::Object; + type Object =3D drm::gem::shmem::Object; =20 const INFO: drm::DriverInfo =3D INFO; =20 --=20 2.53.0 From nobody Wed Jun 17 01:34:37 2026 Received: from sender4-pp-f112.zoho.com (sender4-pp-f112.zoho.com [136.143.188.112]) (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 8660C47D920; Tue, 28 Apr 2026 19:20:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=pass smtp.client-ip=136.143.188.112 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777404011; cv=pass; b=mREzUmgUn9EweyUG/V6TJaOUQAmkOXCMnRzI01rPLYH8CLzbUZTVLasMKxRav1odKSjd+knraIu7Uw52HKXxg4mA1IpQfEtUUdyKZRNCJNlDHxGdycpv1+WecFCKPn7QIzcHZam6fx8ZUcBRzG4dBCXO7+GcLI+ocMRGW35VRpw= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777404011; c=relaxed/simple; bh=2HzmmiCZUxfD/+isTheQIa8P33Rulr/p65UUcXOioYg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=YS9ym/yhGojtyHKEUNeCg4YPCyuuM/BkixsfxvCTFVSaA4WjM4kvhsoBfXvTLyt0zX4Suc8GdkGSYn0bUQOTs+1qigJEUClyoEfukM8jTDcKJuQPeF0DHl2xrrVjf1nAp0Z2VfWEHwIOCX4NVDRQJ6KZP1Df820dKwdHtyKndsk= 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=deborah.brouwer@collabora.com header.b=hCZxDNNN; arc=pass smtp.client-ip=136.143.188.112 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=deborah.brouwer@collabora.com header.b="hCZxDNNN" ARC-Seal: i=1; a=rsa-sha256; t=1777403981; cv=none; d=zohomail.com; s=zohoarc; b=dGp9LiGwOtchhpSP/OnxzEFL/uYpOYTVkFh+A7RRImR8DvKkMB/oN1RXXmvTTFBs7k+BYGbLqjgOneHN/dzctBd0dEZlGJX1VtFwLAVbp9zu8pQ92Xo8J+DuRsy8vefWX55E4nwYRqmedQV/9HxT9fH0pzxbZ+uET3rT77xRzos= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777403981; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:MIME-Version:Message-ID:References:Subject:Subject:To:To:Message-Id:Reply-To; bh=pta7rQUsKJLFtag3990jQEAgOYeNAUEXuJSZ560zJmg=; b=jOINHIbuJHFccykiT5cIjVpEH9ex4CMNsAvR7YXxZtG/UUIKuRYxLYpFFBpKpfNZjn1P+LDoO7flFxOyq3hQ58tl34nKO8VMgy+f92PyfFZm2drHl7YYg27D6ef+HnqSTGYQHXbOMpo3NqE2fohTjPYOecO4ewv+qt6YMSdSwN8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=collabora.com; spf=pass smtp.mailfrom=deborah.brouwer@collabora.com; dmarc=pass header.from= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1777403981; s=zohomail; d=collabora.com; i=deborah.brouwer@collabora.com; h=From:From:Date:Date:Subject:Subject:MIME-Version:Content-Type:Content-Transfer-Encoding:Message-Id:Message-Id:References:In-Reply-To:To:To:Cc:Cc:Reply-To; bh=pta7rQUsKJLFtag3990jQEAgOYeNAUEXuJSZ560zJmg=; b=hCZxDNNNXnb3g29VROxyomRqAw02MNa7QWzGonxlnyIReOpB1hKsBoxuWuGyCP9n xguys2WNBpGuFm/lScXfq/NnEX94HXZELybLpSPN5CQVrwsP2KAsYLn6rT+0tZCwM6t dcHwPAffVOT/VxgpM3c7aC2Et1huNv5HciVUaZfA= Received: by mx.zohomail.com with SMTPS id 177740398101057.39194490898353; Tue, 28 Apr 2026 12:19:41 -0700 (PDT) From: Deborah Brouwer Date: Tue, 28 Apr 2026 12:19:31 -0700 Subject: [PATCH 4/5] drm/tyr: set DMA mask using GPU physical address 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: quoted-printable Message-Id: <20260428-fw-boot-prerequisites-v1-4-c69af9abe1af@collabora.com> References: <20260428-fw-boot-prerequisites-v1-0-c69af9abe1af@collabora.com> In-Reply-To: <20260428-fw-boot-prerequisites-v1-0-c69af9abe1af@collabora.com> To: Danilo Krummrich , Alice Ryhl , Daniel Almeida , David Airlie , Simona Vetter , Benno Lossin , Gary Guo , Miguel Ojeda , Boqun Feng , =?utf-8?q?Bj=C3=B6rn_Roy_Baron?= , Andreas Hindborg , Trevor Gross Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, rust-for-linux@vger.kernel.org, boris.brezillon@collabora.com, beata.michalska@arm.com, work@onurozkan.dev, alvin.sun@linux.dev, Deborah Brouwer X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1681; i=deborah.brouwer@collabora.com; h=from:subject:message-id; bh=G2uA6uMAoMkNqcilH/Un/4YRA4TPOwE/AUmWdl1k7z0=; b=owGbwMvMwCVWuULzOU9c7WvG02pJDJkfOdyd5nYlcSgd9b+xzcvBVun411ZTNf/ktIdtXpXdB emezTIdpSwMYlwMsmKKLGftjXrEq94b6c7/3wwzh5UJZAgDF6cATOSTKMN/l3vxSSk/DkS7vt7B /2zvHO91/Wlpjyq7uF0+GD2sEsw7z8iwn6Gco6wuRfFZez/vVLlT5bf+tT6SZN6l6LevaMHXuFw +AA== X-Developer-Key: i=deborah.brouwer@collabora.com; a=openpgp; fpr=CD3F328C177AEF322D9FFF8379A829E70C5E7DEB From: Beata Michalska Configure the device DMA mask during probe using the GPU's physical address capability reported in GpuInfo. This ensures DMA allocations use an appropriate address mask. Reviewed-by: Boris Brezillon Reviewed-by: Daniel Almeida Reviewed-by: Alice Ryhl Signed-off-by: Beata Michalska Co-developed-by: Deborah Brouwer Signed-off-by: Deborah Brouwer --- drivers/gpu/drm/tyr/driver.rs | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/drivers/gpu/drm/tyr/driver.rs b/drivers/gpu/drm/tyr/driver.rs index cdb9b13bdb32..e20a5978eed6 100644 --- a/drivers/gpu/drm/tyr/driver.rs +++ b/drivers/gpu/drm/tyr/driver.rs @@ -11,6 +11,10 @@ Device, // }, devres::Devres, + dma::{ + Device as DmaDevice, + DmaMask, // + }, drm, drm::ioctl, io::{ @@ -124,6 +128,14 @@ fn probe( let gpu_info =3D GpuInfo::new(pdev.as_ref(), &iomem)?; gpu_info.log(pdev.as_ref()); =20 + let pa_bits =3D MMU_FEATURES::from_raw(gpu_info.mmu_features) + .pa_bits() + .get(); + // SAFETY: No concurrent DMA allocations or mappings can be made b= ecause + // the device is still being probed and therefore isn't being used= by + // other threads of execution. + unsafe { pdev.dma_set_mask_and_coherent(DmaMask::try_new(pa_bits)?= )? }; + let platform: ARef =3D pdev.into(); =20 let data =3D try_pin_init!(TyrDrmDeviceData { --=20 2.53.0 From nobody Wed Jun 17 01:34:37 2026 Received: from sender4-pp-f112.zoho.com (sender4-pp-f112.zoho.com [136.143.188.112]) (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 A849F47D94B; Tue, 28 Apr 2026 19:20:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=pass smtp.client-ip=136.143.188.112 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777404013; cv=pass; b=tmfFvQYbXZckr8Qd7cmMqUdQtsx4LI3DQefmevvm+h+j78jggaY6OV4F4GCM3rLynTd6geaGBRksbjUNwYVJ8bSafy1DEIyrbGaYabMSHJ0202J60tlfXhYZgui4ljFMp4rt5PtuvjYpeim9I1/VZOB9FVPsXA4D9T41i8HZxts= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777404013; c=relaxed/simple; bh=W29CcEg4G/bR/nBkZsGLw9Q//UYR0bu9cBHhR83fmzU=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=TepdZO7BIzLIxkawNgWI6KbGaWHKjvJOPIHFGFwFlmlkJymb9jRJCITLQG8NpHHZUUgl1zPhIn0CQH036Jze2pgmM7uITgmIapBsmfIoQ4zXfEw40RMynreRxVb7fnIoZCs2XPkx72oq1Gfi/bCq9I0q+ThPKIPtCLQaOB3Upig= 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=deborah.brouwer@collabora.com header.b=Hjkf5Tvh; arc=pass smtp.client-ip=136.143.188.112 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=deborah.brouwer@collabora.com header.b="Hjkf5Tvh" ARC-Seal: i=1; a=rsa-sha256; t=1777403983; cv=none; d=zohomail.com; s=zohoarc; b=IbIPdgBkg3eE0bdD/OL77s9hC6ViO2kSQMbPLChOsmql44qnS13K7TU0udpzzeuzkQQSjScgc3FnBVvmPVz5WtVQDAOtFvizZCrsprlcmYHUzOdXKOlQjxYGiJ5CsJxMk5vDFeu3eI1bod2HZ/samTjm0FUEd/Q4iIEW/BKBN0U= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777403983; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:MIME-Version:Message-ID:References:Subject:Subject:To:To:Message-Id:Reply-To; bh=wLGSvc2M7EuyDUwLLZMuCL0UwqmYT4uqmf47d+D6rF8=; b=drOG1TuZ+G4mbMvSQq1ldHA5tpjx9/ZYDrQOMImoqC47KBQ3mkZQvkzCkPcBnk+BFro1XxkSvMNfjCWMnqvNXjtXyJ6DZb0lAC93ArkY5WJfeWeNQ3f0vPs2j/9hByhMgrxT0FyC+949de8FybE+dOZGSzqum4dVH1fYeNW16Gg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=collabora.com; spf=pass smtp.mailfrom=deborah.brouwer@collabora.com; dmarc=pass header.from= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1777403983; s=zohomail; d=collabora.com; i=deborah.brouwer@collabora.com; h=From:From:Date:Date:Subject:Subject:MIME-Version:Content-Type:Content-Transfer-Encoding:Message-Id:Message-Id:References:In-Reply-To:To:To:Cc:Cc:Reply-To; bh=wLGSvc2M7EuyDUwLLZMuCL0UwqmYT4uqmf47d+D6rF8=; b=Hjkf5Tvht5izMS2gVQfxNb1zIKFE9ziv4xsqzu0XCFj/dwjWLls85MqK+ZeQNc7G Clez9mGeTdCbHQy7TDwhbsqQtyJLCNaeBJ5BqjctzofYISYkPHBae9l89ocP0gCdbgA eevQKVkaa3SKfwnWag05oliNJMnSy8MwubOg5Ggo= Received: by mx.zohomail.com with SMTPS id 1777403981907227.00808545959512; Tue, 28 Apr 2026 12:19:41 -0700 (PDT) From: Deborah Brouwer Date: Tue, 28 Apr 2026 12:19:32 -0700 Subject: [PATCH 5/5] drm/tyr: add shmem backing for GEM objects 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: quoted-printable Message-Id: <20260428-fw-boot-prerequisites-v1-5-c69af9abe1af@collabora.com> References: <20260428-fw-boot-prerequisites-v1-0-c69af9abe1af@collabora.com> In-Reply-To: <20260428-fw-boot-prerequisites-v1-0-c69af9abe1af@collabora.com> To: Danilo Krummrich , Alice Ryhl , Daniel Almeida , David Airlie , Simona Vetter , Benno Lossin , Gary Guo , Miguel Ojeda , Boqun Feng , =?utf-8?q?Bj=C3=B6rn_Roy_Baron?= , Andreas Hindborg , Trevor Gross Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, rust-for-linux@vger.kernel.org, boris.brezillon@collabora.com, beata.michalska@arm.com, work@onurozkan.dev, alvin.sun@linux.dev, Deborah Brouwer X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1796; i=deborah.brouwer@collabora.com; h=from:subject:message-id; bh=W29CcEg4G/bR/nBkZsGLw9Q//UYR0bu9cBHhR83fmzU=; b=owGbwMvMwCVWuULzOU9c7WvG02pJDJkfOdyXPVv4VrSWY6K71LkZhS+KNzRNOdSRG2Ydlv3+L 9OHG7LZHaUsDGJcDLJiiixn7Y16xKveG+nO/98MM4eVCWQIAxenAEzkgQ7D/yyWi1crpTdW7nxh duby5euGFwMDFk2zazvwcK+decUs2TWMDM9CO5xnKk235PEwUNHWU4iYKXqJPf51S8TmhDjt7ZG z+QE= X-Developer-Key: i=deborah.brouwer@collabora.com; a=openpgp; fpr=CD3F328C177AEF322D9FFF8379A829E70C5E7DEB Add support for GEM buffer objects backed by shared memory. This introduces the BoCreateArgs structure for passing creation parameters including flags, and adds a flags field to BoData. Co-developed-by: Boris Brezillon Signed-off-by: Boris Brezillon Signed-off-by: Deborah Brouwer --- drivers/gpu/drm/tyr/gem.rs | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/drivers/gpu/drm/tyr/gem.rs b/drivers/gpu/drm/tyr/gem.rs index 66c427a16c31..1640a161754b 100644 --- a/drivers/gpu/drm/tyr/gem.rs +++ b/drivers/gpu/drm/tyr/gem.rs @@ -1,4 +1,8 @@ // SPDX-License-Identifier: GPL-2.0 or MIT +//! GEM buffer object management for the Tyr driver. +//! +//! This module provides buffer object (BO) management functionality using +//! DRM's GEM subsystem with shmem backing. =20 use kernel::{ drm::gem, @@ -10,15 +14,23 @@ TyrDrmDriver, // }; =20 -/// GEM Object inner driver data +/// Tyr's DriverObject type for GEM objects. #[pin_data] -pub(crate) struct BoData {} +pub(crate) struct BoData { + flags: u32, +} + +/// Provides a way to pass arguments when creating BoData +/// as required by the gem::DriverObject trait. +pub(crate) struct BoCreateArgs { + flags: u32, +} =20 impl gem::DriverObject for BoData { type Driver =3D TyrDrmDriver; - type Args =3D (); + type Args =3D BoCreateArgs; =20 - fn new(_dev: &TyrDrmDevice, _size: usize, _args: ()) -> impl PinInit { - try_pin_init!(BoData {}) + fn new(_dev: &TyrDrmDevice, _size: usize, args: BoCreateArgs) -> impl = PinInit { + try_pin_init!(Self { flags: args.flags }) } } --=20 2.53.0