mirror of
https://github.com/linux-msm/laptops-kernel.git
synced 2026-08-13 14:19:53 -07:00
gpu: nova-core: apply the one "use" item per line policy
As per [1], we need one "use" item per line, in order to reduce merge conflicts. Furthermore, we need a trailing ", //" in order to tell rustfmt(1) to leave it alone. This does that for the entire nova-core driver. [1] https://docs.kernel.org/rust/coding-guidelines.html#imports Acked-by: Danilo Krummrich <dakr@kernel.org> Signed-off-by: John Hubbard <jhubbard@nvidia.com> [acourbot@nvidia.com: remove imports already in prelude as pointed out by Danilo.] [acourbot@nvidia.com: remove a few unneeded trailing `//`.] Signed-off-by: Alexandre Courbot <acourbot@nvidia.com> Message-ID: <20251107021006.434109-1-jhubbard@nvidia.com>
This commit is contained in:
committed by
Alexandre Courbot
parent
ade19c5060
commit
173c99b85a
@@ -2,12 +2,17 @@
|
||||
|
||||
//! Simple DMA object wrapper.
|
||||
|
||||
use core::ops::{Deref, DerefMut};
|
||||
use core::ops::{
|
||||
Deref,
|
||||
DerefMut, //
|
||||
};
|
||||
|
||||
use kernel::device;
|
||||
use kernel::dma::CoherentAllocation;
|
||||
use kernel::page::PAGE_SIZE;
|
||||
use kernel::prelude::*;
|
||||
use kernel::{
|
||||
device,
|
||||
dma::CoherentAllocation,
|
||||
page::PAGE_SIZE,
|
||||
prelude::*, //
|
||||
};
|
||||
|
||||
pub(crate) struct DmaObject {
|
||||
dma: CoherentAllocation<u8>,
|
||||
|
||||
@@ -1,13 +1,18 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
use kernel::{
|
||||
auxiliary, c_str,
|
||||
auxiliary,
|
||||
c_str,
|
||||
device::Core,
|
||||
pci,
|
||||
pci::{Class, ClassMask, Vendor},
|
||||
pci::{
|
||||
Class,
|
||||
ClassMask,
|
||||
Vendor, //
|
||||
},
|
||||
prelude::*,
|
||||
sizes::SZ_16M,
|
||||
sync::Arc,
|
||||
sync::Arc, //
|
||||
};
|
||||
|
||||
use crate::gpu::Gpu;
|
||||
|
||||
@@ -3,20 +3,28 @@
|
||||
//! Falcon microprocessor base support
|
||||
|
||||
use core::ops::Deref;
|
||||
use hal::FalconHal;
|
||||
use kernel::device;
|
||||
use kernel::dma::DmaAddress;
|
||||
use kernel::io::poll::read_poll_timeout;
|
||||
use kernel::prelude::*;
|
||||
use kernel::sync::aref::ARef;
|
||||
use kernel::time::delay::fsleep;
|
||||
use kernel::time::Delta;
|
||||
|
||||
use crate::dma::DmaObject;
|
||||
use crate::driver::Bar0;
|
||||
use crate::gpu::Chipset;
|
||||
use crate::regs;
|
||||
use crate::regs::macros::RegisterBase;
|
||||
use hal::FalconHal;
|
||||
|
||||
use kernel::{
|
||||
device,
|
||||
dma::DmaAddress,
|
||||
io::poll::read_poll_timeout,
|
||||
prelude::*,
|
||||
sync::aref::ARef,
|
||||
time::{
|
||||
delay::fsleep,
|
||||
Delta, //
|
||||
},
|
||||
};
|
||||
|
||||
use crate::{
|
||||
dma::DmaObject,
|
||||
driver::Bar0,
|
||||
gpu::Chipset,
|
||||
regs,
|
||||
regs::macros::RegisterBase, //
|
||||
};
|
||||
|
||||
pub(crate) mod gsp;
|
||||
mod hal;
|
||||
|
||||
@@ -2,8 +2,16 @@
|
||||
|
||||
use crate::{
|
||||
driver::Bar0,
|
||||
falcon::{Falcon, FalconEngine, PFalcon2Base, PFalconBase},
|
||||
regs::{self, macros::RegisterBase},
|
||||
falcon::{
|
||||
Falcon,
|
||||
FalconEngine,
|
||||
PFalcon2Base,
|
||||
PFalconBase, //
|
||||
},
|
||||
regs::{
|
||||
self,
|
||||
macros::RegisterBase, //
|
||||
},
|
||||
};
|
||||
|
||||
/// Type specifying the `Gsp` falcon engine. Cannot be instantiated.
|
||||
|
||||
@@ -2,9 +2,15 @@
|
||||
|
||||
use kernel::prelude::*;
|
||||
|
||||
use crate::driver::Bar0;
|
||||
use crate::falcon::{Falcon, FalconBromParams, FalconEngine};
|
||||
use crate::gpu::Chipset;
|
||||
use crate::{
|
||||
driver::Bar0,
|
||||
falcon::{
|
||||
Falcon,
|
||||
FalconBromParams,
|
||||
FalconEngine, //
|
||||
},
|
||||
gpu::Chipset,
|
||||
};
|
||||
|
||||
mod ga102;
|
||||
|
||||
|
||||
@@ -2,16 +2,24 @@
|
||||
|
||||
use core::marker::PhantomData;
|
||||
|
||||
use kernel::device;
|
||||
use kernel::io::poll::read_poll_timeout;
|
||||
use kernel::prelude::*;
|
||||
use kernel::time::Delta;
|
||||
use kernel::{
|
||||
device,
|
||||
io::poll::read_poll_timeout,
|
||||
prelude::*,
|
||||
time::Delta, //
|
||||
};
|
||||
|
||||
use crate::driver::Bar0;
|
||||
use crate::falcon::{
|
||||
Falcon, FalconBromParams, FalconEngine, FalconModSelAlgo, PeregrineCoreSelect,
|
||||
use crate::{
|
||||
driver::Bar0,
|
||||
falcon::{
|
||||
Falcon,
|
||||
FalconBromParams,
|
||||
FalconEngine,
|
||||
FalconModSelAlgo,
|
||||
PeregrineCoreSelect, //
|
||||
},
|
||||
regs,
|
||||
};
|
||||
use crate::regs;
|
||||
|
||||
use super::FalconHal;
|
||||
|
||||
|
||||
@@ -1,7 +1,13 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
use crate::falcon::{FalconEngine, PFalcon2Base, PFalconBase};
|
||||
use crate::regs::macros::RegisterBase;
|
||||
use crate::{
|
||||
falcon::{
|
||||
FalconEngine,
|
||||
PFalcon2Base,
|
||||
PFalconBase, //
|
||||
},
|
||||
regs::macros::RegisterBase,
|
||||
};
|
||||
|
||||
/// Type specifying the `Sec2` falcon engine. Cannot be instantiated.
|
||||
pub(crate) struct Sec2(());
|
||||
|
||||
@@ -2,16 +2,23 @@
|
||||
|
||||
use core::ops::Range;
|
||||
|
||||
use kernel::prelude::*;
|
||||
use kernel::ptr::{Alignable, Alignment};
|
||||
use kernel::sizes::*;
|
||||
use kernel::sync::aref::ARef;
|
||||
use kernel::{dev_warn, device};
|
||||
use kernel::{
|
||||
device,
|
||||
prelude::*,
|
||||
ptr::{
|
||||
Alignable,
|
||||
Alignment, //
|
||||
},
|
||||
sizes::*,
|
||||
sync::aref::ARef, //
|
||||
};
|
||||
|
||||
use crate::dma::DmaObject;
|
||||
use crate::driver::Bar0;
|
||||
use crate::gpu::Chipset;
|
||||
use crate::regs;
|
||||
use crate::{
|
||||
dma::DmaObject,
|
||||
driver::Bar0,
|
||||
gpu::Chipset,
|
||||
regs, //
|
||||
};
|
||||
|
||||
mod hal;
|
||||
|
||||
|
||||
@@ -2,8 +2,10 @@
|
||||
|
||||
use kernel::prelude::*;
|
||||
|
||||
use crate::driver::Bar0;
|
||||
use crate::gpu::Chipset;
|
||||
use crate::{
|
||||
driver::Bar0,
|
||||
gpu::Chipset, //
|
||||
};
|
||||
|
||||
mod ga100;
|
||||
mod ga102;
|
||||
|
||||
@@ -1,15 +1,17 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
struct Ga100;
|
||||
|
||||
use kernel::prelude::*;
|
||||
|
||||
use crate::driver::Bar0;
|
||||
use crate::fb::hal::FbHal;
|
||||
use crate::regs;
|
||||
use crate::{
|
||||
driver::Bar0,
|
||||
fb::hal::FbHal,
|
||||
regs, //
|
||||
};
|
||||
|
||||
use super::tu102::FLUSH_SYSMEM_ADDR_SHIFT;
|
||||
|
||||
struct Ga100;
|
||||
|
||||
pub(super) fn read_sysmem_flush_page_ga100(bar: &Bar0) -> u64 {
|
||||
u64::from(regs::NV_PFB_NISO_FLUSH_SYSMEM_ADDR::read(bar).adr_39_08()) << FLUSH_SYSMEM_ADDR_SHIFT
|
||||
| u64::from(regs::NV_PFB_NISO_FLUSH_SYSMEM_ADDR_HI::read(bar).adr_63_40())
|
||||
|
||||
@@ -2,9 +2,11 @@
|
||||
|
||||
use kernel::prelude::*;
|
||||
|
||||
use crate::driver::Bar0;
|
||||
use crate::fb::hal::FbHal;
|
||||
use crate::regs;
|
||||
use crate::{
|
||||
driver::Bar0,
|
||||
fb::hal::FbHal,
|
||||
regs, //
|
||||
};
|
||||
|
||||
fn vidmem_size_ga102(bar: &Bar0) -> u64 {
|
||||
regs::NV_USABLE_FB_SIZE_IN_MB::read(bar).usable_fb_size()
|
||||
|
||||
@@ -1,10 +1,13 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
use crate::driver::Bar0;
|
||||
use crate::fb::hal::FbHal;
|
||||
use crate::regs;
|
||||
use kernel::prelude::*;
|
||||
|
||||
use crate::{
|
||||
driver::Bar0,
|
||||
fb::hal::FbHal,
|
||||
regs, //
|
||||
};
|
||||
|
||||
/// Shift applied to the sysmem address before it is written into `NV_PFB_NISO_FLUSH_SYSMEM_ADDR`,
|
||||
/// to be used by HALs.
|
||||
pub(super) const FLUSH_SYSMEM_ADDR_SHIFT: u32 = 8;
|
||||
|
||||
@@ -4,17 +4,20 @@
|
||||
//! to be loaded into a given execution unit.
|
||||
|
||||
use core::marker::PhantomData;
|
||||
use core::mem::size_of;
|
||||
|
||||
use kernel::device;
|
||||
use kernel::firmware;
|
||||
use kernel::prelude::*;
|
||||
use kernel::str::CString;
|
||||
use kernel::transmute::FromBytes;
|
||||
use kernel::{
|
||||
device,
|
||||
firmware,
|
||||
prelude::*,
|
||||
str::CString,
|
||||
transmute::FromBytes, //
|
||||
};
|
||||
|
||||
use crate::dma::DmaObject;
|
||||
use crate::falcon::FalconFirmware;
|
||||
use crate::gpu;
|
||||
use crate::{
|
||||
dma::DmaObject,
|
||||
falcon::FalconFirmware,
|
||||
gpu, //
|
||||
};
|
||||
|
||||
pub(crate) mod booter;
|
||||
pub(crate) mod fwsec;
|
||||
|
||||
@@ -4,20 +4,37 @@
|
||||
//! running on [`Sec2`], that is used on Turing/Ampere to load the GSP firmware into the GSP falcon
|
||||
//! (and optionally unload it through a separate firmware image).
|
||||
|
||||
use core::marker::PhantomData;
|
||||
use core::mem::size_of;
|
||||
use core::ops::Deref;
|
||||
use core::{
|
||||
marker::PhantomData,
|
||||
ops::Deref, //
|
||||
};
|
||||
|
||||
use kernel::device;
|
||||
use kernel::prelude::*;
|
||||
use kernel::transmute::FromBytes;
|
||||
use kernel::{
|
||||
device,
|
||||
prelude::*,
|
||||
transmute::FromBytes, //
|
||||
};
|
||||
|
||||
use crate::dma::DmaObject;
|
||||
use crate::driver::Bar0;
|
||||
use crate::falcon::sec2::Sec2;
|
||||
use crate::falcon::{Falcon, FalconBromParams, FalconFirmware, FalconLoadParams, FalconLoadTarget};
|
||||
use crate::firmware::{BinFirmware, FirmwareDmaObject, FirmwareSignature, Signed, Unsigned};
|
||||
use crate::gpu::Chipset;
|
||||
use crate::{
|
||||
dma::DmaObject,
|
||||
driver::Bar0,
|
||||
falcon::{
|
||||
sec2::Sec2,
|
||||
Falcon,
|
||||
FalconBromParams,
|
||||
FalconFirmware,
|
||||
FalconLoadParams,
|
||||
FalconLoadTarget, //
|
||||
},
|
||||
firmware::{
|
||||
BinFirmware,
|
||||
FirmwareDmaObject,
|
||||
FirmwareSignature,
|
||||
Signed,
|
||||
Unsigned, //
|
||||
},
|
||||
gpu::Chipset,
|
||||
};
|
||||
|
||||
/// Local convenience function to return a copy of `S` by reinterpreting the bytes starting at
|
||||
/// `offset` in `slice`.
|
||||
|
||||
@@ -10,20 +10,44 @@
|
||||
//! - The command to be run, as this firmware can perform several tasks ;
|
||||
//! - The ucode signature, so the GSP falcon can run FWSEC in HS mode.
|
||||
|
||||
use core::marker::PhantomData;
|
||||
use core::mem::{align_of, size_of};
|
||||
use core::ops::Deref;
|
||||
use core::{
|
||||
marker::PhantomData,
|
||||
mem::{
|
||||
align_of,
|
||||
size_of, //
|
||||
},
|
||||
ops::Deref,
|
||||
};
|
||||
|
||||
use kernel::device::{self, Device};
|
||||
use kernel::prelude::*;
|
||||
use kernel::transmute::FromBytes;
|
||||
use kernel::{
|
||||
device::{
|
||||
self,
|
||||
Device, //
|
||||
},
|
||||
prelude::*,
|
||||
transmute::FromBytes,
|
||||
};
|
||||
|
||||
use crate::dma::DmaObject;
|
||||
use crate::driver::Bar0;
|
||||
use crate::falcon::gsp::Gsp;
|
||||
use crate::falcon::{Falcon, FalconBromParams, FalconFirmware, FalconLoadParams, FalconLoadTarget};
|
||||
use crate::firmware::{FalconUCodeDescV3, FirmwareDmaObject, FirmwareSignature, Signed, Unsigned};
|
||||
use crate::vbios::Vbios;
|
||||
use crate::{
|
||||
dma::DmaObject,
|
||||
driver::Bar0,
|
||||
falcon::{
|
||||
gsp::Gsp,
|
||||
Falcon,
|
||||
FalconBromParams,
|
||||
FalconFirmware,
|
||||
FalconLoadParams,
|
||||
FalconLoadTarget, //
|
||||
},
|
||||
firmware::{
|
||||
FalconUCodeDescV3,
|
||||
FirmwareDmaObject,
|
||||
FirmwareSignature,
|
||||
Signed,
|
||||
Unsigned, //
|
||||
},
|
||||
vbios::Vbios,
|
||||
};
|
||||
|
||||
const NVFW_FALCON_APPIF_ID_DMEMMAPPER: u32 = 0x4;
|
||||
|
||||
|
||||
@@ -2,16 +2,29 @@
|
||||
|
||||
use core::mem::size_of_val;
|
||||
|
||||
use kernel::device;
|
||||
use kernel::dma::{DataDirection, DmaAddress};
|
||||
use kernel::kvec;
|
||||
use kernel::prelude::*;
|
||||
use kernel::scatterlist::{Owned, SGTable};
|
||||
use kernel::{
|
||||
device,
|
||||
dma::{
|
||||
DataDirection,
|
||||
DmaAddress, //
|
||||
},
|
||||
kvec,
|
||||
prelude::*,
|
||||
scatterlist::{
|
||||
Owned,
|
||||
SGTable, //
|
||||
},
|
||||
};
|
||||
|
||||
use crate::dma::DmaObject;
|
||||
use crate::firmware::riscv::RiscvFirmware;
|
||||
use crate::gpu::{Architecture, Chipset};
|
||||
use crate::gsp::GSP_PAGE_SIZE;
|
||||
use crate::{
|
||||
dma::DmaObject,
|
||||
firmware::riscv::RiscvFirmware,
|
||||
gpu::{
|
||||
Architecture,
|
||||
Chipset, //
|
||||
},
|
||||
gsp::GSP_PAGE_SIZE,
|
||||
};
|
||||
|
||||
/// Ad-hoc and temporary module to extract sections from ELF images.
|
||||
///
|
||||
|
||||
@@ -5,13 +5,17 @@
|
||||
|
||||
use core::mem::size_of;
|
||||
|
||||
use kernel::device;
|
||||
use kernel::firmware::Firmware;
|
||||
use kernel::prelude::*;
|
||||
use kernel::transmute::FromBytes;
|
||||
use kernel::{
|
||||
device,
|
||||
firmware::Firmware,
|
||||
prelude::*,
|
||||
transmute::FromBytes, //
|
||||
};
|
||||
|
||||
use crate::dma::DmaObject;
|
||||
use crate::firmware::BinFirmware;
|
||||
use crate::{
|
||||
dma::DmaObject,
|
||||
firmware::BinFirmware, //
|
||||
};
|
||||
|
||||
/// Descriptor for microcode running on a RISC-V core.
|
||||
#[repr(C)]
|
||||
|
||||
@@ -18,12 +18,16 @@
|
||||
//!
|
||||
//! Note that the devinit sequence also needs to run during suspend/resume.
|
||||
|
||||
use kernel::io::poll::read_poll_timeout;
|
||||
use kernel::prelude::*;
|
||||
use kernel::time::Delta;
|
||||
use kernel::{
|
||||
io::poll::read_poll_timeout,
|
||||
prelude::*,
|
||||
time::Delta, //
|
||||
};
|
||||
|
||||
use crate::driver::Bar0;
|
||||
use crate::regs;
|
||||
use crate::{
|
||||
driver::Bar0,
|
||||
regs, //
|
||||
};
|
||||
|
||||
/// Wait for the `GFW` (GPU firmware) boot completion signal (`GFW_BOOT`), or a 4 seconds timeout.
|
||||
///
|
||||
|
||||
@@ -1,13 +1,26 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
use kernel::{device, devres::Devres, error::code::*, fmt, pci, prelude::*, sync::Arc};
|
||||
use kernel::{
|
||||
device,
|
||||
devres::Devres,
|
||||
fmt,
|
||||
pci,
|
||||
prelude::*,
|
||||
sync::Arc, //
|
||||
};
|
||||
|
||||
use crate::driver::Bar0;
|
||||
use crate::falcon::{gsp::Gsp as GspFalcon, sec2::Sec2 as Sec2Falcon, Falcon};
|
||||
use crate::fb::SysmemFlush;
|
||||
use crate::gfw;
|
||||
use crate::gsp::Gsp;
|
||||
use crate::regs;
|
||||
use crate::{
|
||||
driver::Bar0,
|
||||
falcon::{
|
||||
gsp::Gsp as GspFalcon,
|
||||
sec2::Sec2 as Sec2Falcon,
|
||||
Falcon, //
|
||||
},
|
||||
fb::SysmemFlush,
|
||||
gfw,
|
||||
gsp::Gsp,
|
||||
regs,
|
||||
};
|
||||
|
||||
macro_rules! define_chipset {
|
||||
({ $($variant:ident = $value:expr),* $(,)* }) =>
|
||||
|
||||
@@ -1,21 +1,35 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
use kernel::device;
|
||||
use kernel::pci;
|
||||
use kernel::prelude::*;
|
||||
use kernel::{
|
||||
device,
|
||||
pci,
|
||||
prelude::*, //
|
||||
};
|
||||
|
||||
use crate::driver::Bar0;
|
||||
use crate::falcon::{gsp::Gsp, sec2::Sec2, Falcon};
|
||||
use crate::fb::FbLayout;
|
||||
use crate::firmware::{
|
||||
booter::{BooterFirmware, BooterKind},
|
||||
fwsec::{FwsecCommand, FwsecFirmware},
|
||||
gsp::GspFirmware,
|
||||
FIRMWARE_VERSION,
|
||||
use crate::{
|
||||
driver::Bar0,
|
||||
falcon::{
|
||||
gsp::Gsp,
|
||||
sec2::Sec2,
|
||||
Falcon, //
|
||||
},
|
||||
fb::FbLayout,
|
||||
firmware::{
|
||||
booter::{
|
||||
BooterFirmware,
|
||||
BooterKind, //
|
||||
},
|
||||
fwsec::{
|
||||
FwsecCommand,
|
||||
FwsecFirmware, //
|
||||
},
|
||||
gsp::GspFirmware,
|
||||
FIRMWARE_VERSION, //
|
||||
},
|
||||
gpu::Chipset,
|
||||
regs,
|
||||
vbios::Vbios,
|
||||
};
|
||||
use crate::gpu::Chipset;
|
||||
use crate::regs;
|
||||
use crate::vbios::Vbios;
|
||||
|
||||
impl super::Gsp {
|
||||
/// Helper function to load and run the FWSEC-FRTS firmware and confirm that it has properly
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user