The recently introduced `GspBootContext` is useful in at least two
other places:

- As a replacement for the sequencer's `GspSequencerParams`,
- As the main parameter of `Gsp::unload`, for symmetry with `Gsp::boot`.

This symmetry can be further exploited to make `Gsp::boot` and
`Gsp::unload` generic over the exact boot context required for the
current chip. Doing so requires some more preliminary work that goes
beyond this series, but this groundwork is needed regardless.

Another cleanup that can be performed as a consequence is the removal of
the `BootUnloadGuard`. This type is cumbersome as it holds extra
references to the boot context, making it difficult to make some of
these references mutable (as we want to do with the `Falcon`s that
should require exclusive access to load and run firmware). Furthermore,
it is only needed a single time in `Gsp::boot`.

By running the boot process in a local closure, we can catch errors and
call `Gsp::unload` on the unload bundle just as efficiently, and with
less code.

Although the final goal is to enable mutable methods on `Falcon`s and
make the GSP boot context generic, these cleanups stand on their own and
remove quite a bit of code, so I am sending them separately.

This series applies on `drm-rust-next`, and requires [1].

[1] https://lore.kernel.org/all/[email protected]/

Signed-off-by: Alexandre Courbot <[email protected]>
---
Alexandre Courbot (6):
      gpu: nova-core: gsp: sequencer: use GspBootContext
      gpu: nova-core: gsp: sequencer: do not store sequence into GspSequencer
      gpu: nova-core: gsp: move boot code into local closure
      gpu: nova-core: gsp: replace BootUnloadGuard with local handler
      gpu: nova-core: gsp: move unload bundle error handling to Gsp::boot
      gpu: nova-core: gsp: make unload take GspBootContext

 drivers/gpu/nova-core/gpu.rs           |  19 ++++-
 drivers/gpu/nova-core/gsp/boot.rs      | 140 ++++++++++++---------------------
 drivers/gpu/nova-core/gsp/hal.rs       |  35 ++++-----
 drivers/gpu/nova-core/gsp/hal/gh100.rs |  59 ++++++--------
 drivers/gpu/nova-core/gsp/hal/tu102.rs | 133 ++++++++++++++-----------------
 drivers/gpu/nova-core/gsp/sequencer.rs |  71 +++++++----------
 6 files changed, 191 insertions(+), 266 deletions(-)
---
base-commit: e655873885063245fd7f49f81cebfdfdef66a59d
change-id: 20260619-nova-bootcontext-401d6107e8fb
prerequisite-message-id: [email protected]
prerequisite-patch-id: 3b9948cc78c017fd9edcd51e1a65d0aa741a1b8a
prerequisite-patch-id: e5c8ef9f9fde8bf165f8339da1cc55c7f25ee845
prerequisite-patch-id: e6657ea9ed37ee9a195aae6d87d5f28d4ef2378e

Best regards,
--  
Alexandre Courbot <[email protected]>

Reply via email to