mirror of
https://github.com/torvalds/linux.git
synced 2026-04-18 14:53:58 -04:00
Merge tag 'drm-rust-next-2025-09-16' of https://gitlab.freedesktop.org/drm/rust/kernel into drm-next
DRM Rust changes for v6.18
Alloc
- Add BorrowedPage type and AsPageIter trait
- Implement Vmalloc::to_page() and VmallocPageIter
- Implement AsPageIter for VBox and VVec
DMA & Scatterlist
- Add dma::DataDirection and type alias for dma_addr_t
- Abstraction for struct scatterlist and struct sg_table
DRM
- In the DRM GEM module, simplify overall use of generics, add
DriverFile type alias and drop Object::SIZE.
Nova (Core)
- Various register!() macro improvements (paving the way for lifting
it to common driver infrastructure)
- Minor VBios fixes and refactoring
- Minor firmware request refactoring
- Advance firmware boot stages; process Booter and patch its
signature, process GSP and GSP bootloader
- Switch development fimrware version to r570.144
- Add basic firmware bindings for r570.144
- Move GSP boot code to its own module
- Clean up and take advantage of pin-init features to store most of
the driver's private data within a single allocation
- Update ARef import from sync::aref
- Add website to MAINTAINERS entry
Nova (DRM)
- Update ARef import from sync::aref
- Add website to MAINTAINERS entry
Pin-Init
- Merge pin-init PR from Benno
- `#[pin_data]` now generates a `*Projection` struct similar to the
`pin-project` crate.
- Add initializer code blocks to `[try_][pin_]init!` macros: make
initializer macros accept any number of `_: {/* arbitrary code
*/},` & make them run the code at that point.
- Make the `[try_][pin_]init!` macros expose initialized fields via
a `let` binding as `&mut T` or `Pin<&mut T>` for later fields.
Rust
- Various methods for AsBytes and FromBytes traits
Tyr
- Initial Rust driver skeleton for ARM Mali GPUs.
- It can power up the GPU, query for GPU metatdata through MMIO and
provide the metadata to userspace via DRM device IOCTL (struct
drm_panthor_dev_query).
Signed-off-by: Dave Airlie <airlied@redhat.com>
From: "Danilo Krummrich" <dakr@kernel.org>
Link: https://lore.kernel.org/r/DCUC4SY6SRBD.1ZLHAIQZOC6KG@kernel.org
This commit is contained in:
@@ -135,11 +135,9 @@ impl<T: Send> Devres<T> {
|
||||
T: 'a,
|
||||
Error: From<E>,
|
||||
{
|
||||
let callback = Self::devres_callback;
|
||||
|
||||
try_pin_init!(&this in Self {
|
||||
dev: dev.into(),
|
||||
callback,
|
||||
callback: Self::devres_callback,
|
||||
// INVARIANT: `inner` is properly initialized.
|
||||
inner <- Opaque::pin_init(try_pin_init!(Inner {
|
||||
devm <- Completion::new(),
|
||||
@@ -160,7 +158,7 @@ impl<T: Send> Devres<T> {
|
||||
// properly initialized, because we require `dev` (i.e. the *bound* device) to
|
||||
// live at least as long as the returned `impl PinInit<Self, Error>`.
|
||||
to_result(unsafe {
|
||||
bindings::devm_add_action(dev.as_raw(), Some(callback), inner.cast())
|
||||
bindings::devm_add_action(dev.as_raw(), Some(*callback), inner.cast())
|
||||
}).inspect_err(|_| {
|
||||
let inner = Opaque::cast_into(inner);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user