kms: Add allow/deny-listing of drm devices
This commit is contained in:
parent
b5d5479b86
commit
913ed90b04
2 changed files with 203 additions and 0 deletions
|
|
@ -149,6 +149,48 @@ impl State {
|
|||
return Ok(());
|
||||
}
|
||||
|
||||
if let Some(allowlist) = dev_list_var("COSMIC_DRM_ALLOW_DEVICES") {
|
||||
let mut matched = false;
|
||||
if let Ok(node) = DrmNode::from_dev_id(dev) {
|
||||
let node = node
|
||||
.node_with_type(NodeType::Render)
|
||||
.map(|res| res.ok())
|
||||
.flatten()
|
||||
.unwrap_or(node);
|
||||
for ident in allowlist {
|
||||
if ident.matches(&node) {
|
||||
matched = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if !matched {
|
||||
info!(
|
||||
"Skipping device {} due to COSMIC_DRM_ALLOW_DEVICE list.",
|
||||
path.display()
|
||||
);
|
||||
return Ok(());
|
||||
}
|
||||
}
|
||||
}
|
||||
if let Some(blocklist) = dev_list_var("COSMIC_DRM_BLOCK_DEVICES") {
|
||||
if let Ok(node) = DrmNode::from_dev_id(dev) {
|
||||
let node = node
|
||||
.node_with_type(NodeType::Render)
|
||||
.map(|res| res.ok())
|
||||
.flatten()
|
||||
.unwrap_or(node);
|
||||
for ident in blocklist {
|
||||
if ident.matches(&node) {
|
||||
info!(
|
||||
"Skipping device {} due to COSMIC_DRM_BLOCK_DEVICE list.",
|
||||
path.display()
|
||||
);
|
||||
return Ok(());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
let fd = DrmDeviceFd::new(DeviceFd::from(
|
||||
self.backend
|
||||
.kms()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue