This series spawns from the discussion in [1], where it was noticed that
several structures of the VBIOS could just be read using `FromBytes`
instead of being built manually.
While implementing it, I also noticed that we were repeating the
following pattern quite a bit in the code:
slice
.get(..size_of::<TargetType>())
.and_then(TargetType::from_bytes_copy)
... which begs for dedicated methods doing this in the `FromBytes`
trait. This is what the first patch does, taking inspiration from a
similar feature in the `zerocopy` crate.
The remaining patches leverage these new methods to simplify the VBIOS
code a bit, accordingly.
If patch 1 is deemed a valid idea, I hope we can merge it into the DRM
tree along with the rest of this series.
The base for this work is `drm-rust-next`, with [2] applied.
[1]
https://lore.kernel.org/rust-for-linux/[email protected]/
[2]
https://lore.kernel.org/rust-for-linux/[email protected]/
Signed-off-by: Alexandre Courbot <[email protected]>
---
Alexandre Courbot (5):
rust: transmute: add `from_bytes_prefix` family of methods
gpu: nova-core: vbios: use FromBytes for PmuLookupTable header
gpu: nova-core: vbios: use FromBytes for PcirStruct
gpu: nova-core: vbios: use FromBytes for BitHeader
gpu: nova-core: vbios: use FromBytes for NpdeStruct
drivers/gpu/nova-core/vbios.rs | 137 ++++++++++++++++-------------------------
rust/kernel/transmute.rs | 60 ++++++++++++++++++
2 files changed, 113 insertions(+), 84 deletions(-)
---
base-commit: 639291d7c30cec5cf0d9a79371021c2e4404cfc9
change-id: 20251028-nova-vbios-frombytes-eb0cbb6a2f11
Best regards,
--
Alexandre Courbot <[email protected]>