mirror of
https://github.com/torvalds/linux.git
synced 2026-07-27 17:47:41 +02:00
drm/tyr: separate driver type from driver data
Introduce TyrPlatformDriver as a unit struct for the platform::Driver trait implementation and keep TyrPlatformDriverData for the private driver data. Reviewed-by: Gary Guo <gary@garyguo.net> Tested-by: Deborah Brouwer <deborah.brouwer@collabora.com> Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com> Reviewed-by: Eliot Courtney <ecourtney@nvidia.com> Signed-off-by: Danilo Krummrich <dakr@kernel.org> Reviewed-by: Alexandre Courbot <acourbot@nvidia.com> Link: https://patch.msgid.link/20260529000106.2257996-2-dakr@kernel.org Signed-off-by: Alice Ryhl <aliceryhl@google.com>
This commit is contained in:
parent
75d5932736
commit
ba47c4604c
|
|
@ -51,6 +51,8 @@
|
|||
/// Convenience type alias for the DRM device type for this driver.
|
||||
pub(crate) type TyrDrmDevice = drm::Device<TyrDrmDriver>;
|
||||
|
||||
pub(crate) struct TyrPlatformDriver;
|
||||
|
||||
#[pin_data(PinnedDrop)]
|
||||
pub(crate) struct TyrPlatformDriverData {
|
||||
_device: ARef<TyrDrmDevice>,
|
||||
|
|
@ -93,22 +95,22 @@ fn issue_soft_reset(dev: &Device<Bound>, iomem: &Devres<IoMem>) -> Result {
|
|||
kernel::of_device_table!(
|
||||
OF_TABLE,
|
||||
MODULE_OF_TABLE,
|
||||
<TyrPlatformDriverData as platform::Driver>::IdInfo,
|
||||
<TyrPlatformDriver as platform::Driver>::IdInfo,
|
||||
[
|
||||
(of::DeviceId::new(c"rockchip,rk3588-mali"), ()),
|
||||
(of::DeviceId::new(c"arm,mali-valhall-csf"), ())
|
||||
]
|
||||
);
|
||||
|
||||
impl platform::Driver for TyrPlatformDriverData {
|
||||
impl platform::Driver for TyrPlatformDriver {
|
||||
type IdInfo = ();
|
||||
type Data<'bound> = Self;
|
||||
type Data<'bound> = TyrPlatformDriverData;
|
||||
const OF_ID_TABLE: Option<of::IdTable<Self::IdInfo>> = Some(&OF_TABLE);
|
||||
|
||||
fn probe<'bound>(
|
||||
pdev: &'bound platform::Device<Core<'_>>,
|
||||
_info: Option<&'bound Self::IdInfo>,
|
||||
) -> impl PinInit<Self, Error> + 'bound {
|
||||
) -> impl PinInit<Self::Data<'bound>, Error> + 'bound {
|
||||
let core_clk = Clk::get(pdev.as_ref(), Some(c"core"))?;
|
||||
let stacks_clk = OptionalClk::get(pdev.as_ref(), Some(c"stacks"))?;
|
||||
let coregroup_clk = OptionalClk::get(pdev.as_ref(), Some(c"coregroup"))?;
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
//! The name "Tyr" is inspired by Norse mythology, reflecting Arm's tradition of
|
||||
//! naming their GPUs after Nordic mythological figures and places.
|
||||
|
||||
use crate::driver::TyrPlatformDriverData;
|
||||
use crate::driver::TyrPlatformDriver;
|
||||
|
||||
mod driver;
|
||||
mod file;
|
||||
|
|
@ -14,7 +14,7 @@
|
|||
mod regs;
|
||||
|
||||
kernel::module_platform_driver! {
|
||||
type: TyrPlatformDriverData,
|
||||
type: TyrPlatformDriver,
|
||||
name: "tyr",
|
||||
authors: ["The Tyr driver authors"],
|
||||
description: "Arm Mali Tyr DRM driver",
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user