drivers/graphics: Remove UPDATE_PLANE

This commit is contained in:
bjorn3
2026-03-17 20:06:21 +01:00
parent a40be7b446
commit c4908a5114
4 changed files with 0 additions and 81 deletions
Generated
-1
View File
@@ -938,7 +938,6 @@ dependencies = [
"log",
"plain",
"redox-ioctl",
"redox_syscall 0.7.3",
]
[[package]]
@@ -1,5 +1,4 @@
#![feature(macro_metavar_expr)]
#![feature(slice_as_array)]
use std::collections::{BTreeMap, HashMap};
use std::ffi::c_char;
@@ -7,7 +6,6 @@ use std::fmt::Debug;
use std::fs::File;
use std::io::{self, Write};
use std::mem;
use std::mem::transmute;
use std::os::fd::BorrowedFd;
use std::sync::{Arc, Mutex};
@@ -953,55 +951,6 @@ impl<T: GraphicsAdapter> SchemeSync for GraphicsSchemeInner<T> {
data.set_modifier([0; 4]);
Ok(0)
}),
ipc::UPDATE_PLANE => {
if payload.len() < size_of::<ipc::UpdatePlane>() {
return Err(Error::new(EINVAL));
}
let payload = unsafe {
transmute::<&mut [u8; size_of::<ipc::UpdatePlane>()], &mut ipc::UpdatePlane>(
payload.as_mut_array().unwrap(),
)
};
let display_id = payload.display_id;
let Some(crtc) = self.objects.crtcs().nth(display_id) else {
return Err(Error::new(EINVAL));
};
let fb = if payload.fb_id == 0 {
None
} else {
Some(self.objects.get_framebuffer(KmsObjectId(payload.fb_id))?)
};
self.vts.get_mut(vt).unwrap().display_fbs[display_id] = if payload.fb_id == 0 {
None
} else {
Some(KmsObjectId(payload.fb_id))
};
if *vt == self.active_vt {
crtc.lock().unwrap().fb_id = KmsObjectId(payload.fb_id);
let mode =
fb.map(|fb| KmsConnector::<()>::modeinfo_for_size(fb.width, fb.height));
self.adapter.set_crtc(
&self.objects,
crtc,
&[self.objects.connector_ids()[display_id]],
mode,
fb,
payload.damage,
);
crtc.lock().unwrap().fb_id = KmsObjectId(payload.fb_id);
crtc.lock().unwrap().target_connectors =
vec![self.objects.connector_ids()[display_id]];
}
Ok(size_of::<ipc::UpdatePlane>())
}
_ => return Err(Error::new(EINVAL)),
},
}
-1
View File
@@ -10,7 +10,6 @@ log.workspace = true
libredox.workspace = true
plain = "0.2"
redox-ioctl.workspace = true
redox_syscall.workspace = true
common = { path = "../../common" }
-28
View File
@@ -1,12 +1,10 @@
use std::fs::File;
use std::io;
use std::os::fd::{AsFd, BorrowedFd};
use std::os::unix::io::AsRawFd;
use drm::control::connector::{self, State};
use drm::control::Device as _;
use drm::{Device as _, DriverCapability};
use syscall::CallFlags;
pub use crate::common::Damage;
@@ -43,34 +41,8 @@ impl V2GraphicsHandle {
}
Err(io::Error::other("no connected display"))
}
pub fn update_plane(&self, display_id: usize, fb_id: u32, damage: Damage) -> io::Result<()> {
let cmd = ipc::UpdatePlane {
display_id,
fb_id,
damage,
};
libredox::call::call_wo(
self.file.as_raw_fd() as usize,
unsafe { plain::as_bytes(&cmd) },
CallFlags::empty(),
&[ipc::UPDATE_PLANE, 0, 0],
)?;
Ok(())
}
}
pub mod ipc {
use crate::common::Damage;
pub use redox_ioctl::drm::*;
// FIXME replace these with proper drm interfaces and update orbital
pub const UPDATE_PLANE: u64 = 0x12345670;
#[repr(C, packed)]
pub struct UpdatePlane {
pub display_id: usize,
pub fb_id: u32,
pub damage: Damage,
}
}