Merge branch 'gpu_drm38' into 'main'

drivers/graphics/driver-graphics: Match error codes of Linux

See merge request redox-os/base!263
This commit is contained in:
Jeremy Soller
2026-05-12 14:08:24 -06:00
3 changed files with 14 additions and 14 deletions
@@ -7,7 +7,7 @@ use drm_sys::{
drm_mode_modeinfo, DRM_MODE_OBJECT_BLOB, DRM_MODE_OBJECT_CONNECTOR, DRM_MODE_OBJECT_CRTC,
DRM_MODE_OBJECT_ENCODER, DRM_MODE_OBJECT_FB, DRM_MODE_OBJECT_PROPERTY,
};
use syscall::{Error, Result, EINVAL};
use syscall::{Error, Result, ENOENT};
use crate::kms::connector::{KmsConnector, KmsEncoder};
use crate::kms::properties::{
@@ -50,16 +50,16 @@ impl<T: GraphicsAdapter> KmsObjects<T> {
}
pub(super) fn get<U: KmsObjectKind<T>>(&self, id: KmsObjectId) -> Result<&U> {
let object = self.objects.get(&id).ok_or(Error::new(EINVAL))?;
let object = self.objects.get(&id).ok_or(Error::new(ENOENT))?;
if let Some(object) = U::try_from_object(object) {
Ok(object)
} else {
Err(Error::new(EINVAL))
Err(Error::new(ENOENT))
}
}
pub(crate) fn object_type(&self, id: KmsObjectId) -> Result<u32> {
let object = self.objects.get(&id).ok_or(Error::new(EINVAL))?;
let object = self.objects.get(&id).ok_or(Error::new(ENOENT))?;
Ok(object.object_type())
}
@@ -107,10 +107,10 @@ impl<T: GraphicsAdapter> KmsObjects<T> {
pub fn remove_framebuffer(&mut self, id: KmsObjectId) -> Result<()> {
let Some(object) = self.objects.get(&id) else {
return Err(Error::new(EINVAL));
return Err(Error::new(ENOENT));
};
let KmsObject::Framebuffer(_) = object else {
return Err(Error::new(EINVAL));
return Err(Error::new(ENOENT));
};
self.objects.remove(&id).unwrap();
@@ -7,7 +7,7 @@ use drm_sys::{
DRM_MODE_OBJECT_CRTC, DRM_MODE_OBJECT_FB, DRM_PLANE_TYPE_CURSOR, DRM_PLANE_TYPE_OVERLAY,
DRM_PLANE_TYPE_PRIMARY, DRM_PROP_NAME_LEN,
};
use syscall::{Error, Result, EINVAL};
use syscall::{Error, Result, ENOENT};
use crate::kms::objects::{KmsObject, KmsObjectId, KmsObjects};
use crate::GraphicsAdapter;
@@ -51,7 +51,7 @@ impl<T: GraphicsAdapter> KmsObjects<T> {
}
pub fn get_object_properties_data(&self, id: KmsObjectId) -> Result<(Vec<u32>, Vec<u64>)> {
let object = self.objects.get(&id).ok_or(Error::new(EINVAL))?;
let object = self.objects.get(&id).ok_or(Error::new(ENOENT))?;
match object {
KmsObject::Crtc(crtc) => {
let crtc = crtc.lock().unwrap();
+6 -6
View File
@@ -20,7 +20,7 @@ use redox_scheme::scheme::{register_scheme_inner, SchemeState, SchemeSync};
use redox_scheme::{CallerCtx, OpenResult, RequestKind, SignalBehavior, Socket};
use scheme_utils::{FpathWriter, HandleMap};
use syscall::schemev2::NewFdFlags;
use syscall::{Error, MapFlags, Result, EACCES, EAGAIN, EINVAL, ENOENT, EOPNOTSUPP};
use syscall::{Error, MapFlags, Result, EACCES, EAGAIN, EINVAL, ENOENT, ENXIO, EOPNOTSUPP};
use crate::kms::connector::{KmsConnectorDriver, KmsConnectorState};
use crate::kms::objects::{self, KmsCrtc, KmsCrtcDriver, KmsCrtcState, KmsObjectId, KmsObjects};
@@ -602,7 +602,7 @@ impl<T: GraphicsAdapter> SchemeSync for GraphicsSchemeInner<T> {
let vt_state = self.vts.get_mut(vt).unwrap();
let Some(cursor_plane) = &mut vt_state.cursor_plane else {
return Err(Error::new(EINVAL));
return Err(Error::new(ENXIO));
};
let update_buffer = data.flags() & DRM_MODE_CURSOR_BO != 0;
@@ -612,7 +612,7 @@ impl<T: GraphicsAdapter> SchemeSync for GraphicsSchemeInner<T> {
} else if let Some(buffer) = buffers.get(&data.handle()) {
Some(buffer.clone())
} else {
return Err(Error::new(EINVAL));
return Err(Error::new(ENOENT));
};
}
@@ -852,7 +852,7 @@ impl<T: GraphicsAdapter> SchemeSync for GraphicsSchemeInner<T> {
let buffer_id = data.handle();
if !buffers.contains_key(&buffer_id) {
return Err(Error::new(EINVAL));
return Err(Error::new(ENOENT));
}
// FIXME use a better scheme for creating map offsets
@@ -916,7 +916,7 @@ impl<T: GraphicsAdapter> SchemeSync for GraphicsSchemeInner<T> {
let vt_state = self.vts.get_mut(vt).unwrap();
let Some(cursor_plane) = &mut vt_state.cursor_plane else {
return Err(Error::new(EINVAL));
return Err(Error::new(ENXIO));
};
let update_buffer = data.flags() & DRM_MODE_CURSOR_BO != 0;
@@ -926,7 +926,7 @@ impl<T: GraphicsAdapter> SchemeSync for GraphicsSchemeInner<T> {
} else if let Some(buffer) = buffers.get(&data.handle()) {
Some(buffer.clone())
} else {
return Err(Error::new(EINVAL));
return Err(Error::new(ENOENT));
};
cursor_plane.hot_x = data.hot_x();
cursor_plane.hot_y = data.hot_y();