diff options
| author | Alexandre Courbot <acourbot@nvidia.com> | 2025-06-19 22:24:08 +0900 |
|---|---|---|
| committer | Danilo Krummrich <dakr@kernel.org> | 2025-06-23 22:05:41 +0200 |
| commit | 3606620b316c29e3de8ff87b40828c722086a9c9 (patch) | |
| tree | 4a987084ead90e1dca87b1af5bc7366dba58d9ee /drivers/gpu/nova-core/falcon.rs | |
| parent | 859aa3d940585db3f3513964020c2a42614804dc (diff) | |
gpu: nova-core: update and annotate TODO list
A few new dependencies are required to remove some of the TODO items:
- A way to safely convert from byte slices to types implementing
`FromBytes`,
- A way to obtain slices and write into a `CoherentAllocation`,
- Several improvements to the `register!()` macro,
- Alignment operations to powers of two, and an equivalent to the C
`fls`,
- Support for `xa_alloc` in the XAlloc bindings.
Some items have also become obsolete:
- The auxiliary bus abstractions have been implemented and are in use,
- The ELF utilities are not considered for being part of the core kernel
bindings anymore.
- VBIOS, falcon and GPU timer have been completed.
We now have quite a few TODO entries in the code, so annotate them with
a 4 letter code representing the corresponding task in `todo.rst`. This
allows to easily find which part of the code corresponds to a given
entry (and conversely).
Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
Link: https://lore.kernel.org/r/20250619-nova-frts-v6-24-ecf41ef99252@nvidia.com
Signed-off-by: Danilo Krummrich <dakr@kernel.org>
Diffstat (limited to 'drivers/gpu/nova-core/falcon.rs')
| -rw-r--r-- | drivers/gpu/nova-core/falcon.rs | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/gpu/nova-core/falcon.rs b/drivers/gpu/nova-core/falcon.rs index fe4d3d458a6b..07be1c30668c 100644 --- a/drivers/gpu/nova-core/falcon.rs +++ b/drivers/gpu/nova-core/falcon.rs @@ -35,6 +35,7 @@ pub(crate) enum FalconCoreRev { Rev7 = 7, } +// TODO[FPRI]: replace with `FromPrimitive`. impl TryFrom<u8> for FalconCoreRev { type Error = Error; @@ -68,6 +69,7 @@ pub(crate) enum FalconCoreRevSubversion { Subversion3 = 3, } +// TODO[FPRI]: replace with `FromPrimitive`. impl TryFrom<u8> for FalconCoreRevSubversion { type Error = Error; @@ -101,6 +103,7 @@ pub(crate) enum FalconSecurityModel { Heavy = 3, } +// TODO[FPRI]: replace with `FromPrimitive`. impl TryFrom<u8> for FalconSecurityModel { type Error = Error; @@ -128,6 +131,7 @@ pub(crate) enum FalconModSelAlgo { Rsa3k = 1, } +// TODO[FPRI]: replace with `FromPrimitive`. impl TryFrom<u8> for FalconModSelAlgo { type Error = Error; @@ -148,6 +152,7 @@ pub(crate) enum DmaTrfCmdSize { Size256B = 0x6, } +// TODO[FPRI]: replace with `FromPrimitive`. impl TryFrom<u8> for DmaTrfCmdSize { type Error = Error; @@ -199,6 +204,7 @@ pub(crate) enum FalconFbifTarget { NoncoherentSysmem = 2, } +// TODO[FPRI]: replace with `FromPrimitive`. impl TryFrom<u8> for FalconFbifTarget { type Error = Error; @@ -354,7 +360,7 @@ impl<E: FalconEngine + 'static> Falcon<E> { regs::NV_PFALCON_FALCON_ENGINE::alter(bar, E::BASE, |v| v.set_reset(true)); - // TODO: replace with udelay() or equivalent once available. + // TODO[DLAY]: replace with udelay() or equivalent once available. // TIMEOUT: falcon engine should not take more than 10us to reset. let _: Result = util::wait_on(Duration::from_micros(10), || None); |