tty: Prefer, but don't require, a eDP connector

This commit is contained in:
Ivan Molodetskikh
2023-08-10 14:37:58 +04:00
parent 100d7d4b47
commit 91729f7324
+12 -4
View File
@@ -302,6 +302,7 @@ impl Tty {
let resources = drm.resource_handles()?; let resources = drm.resource_handles()?;
let mut connector = None; let mut connector = None;
let mut edp_connector = None;
resources resources
.connectors() .connectors()
.iter() .iter()
@@ -322,10 +323,17 @@ impl Tty {
); );
}) })
.filter(|conn| conn.state() == ConnectorState::Connected) .filter(|conn| conn.state() == ConnectorState::Connected)
// FIXME: don't hardcode eDP. .for_each(|conn| {
.filter(|conn| conn.interface() == ConnectorInterface::EmbeddedDisplayPort) connector = Some(conn.clone());
.for_each(|conn| connector = Some(conn));
let connector = connector.ok_or_else(|| anyhow!("no compatible connector"))?; if conn.interface() == ConnectorInterface::EmbeddedDisplayPort {
edp_connector = Some(conn);
}
});
// Since we're only using one output at the moment, prefer eDP.
let connector = edp_connector
.or(connector)
.ok_or_else(|| anyhow!("no compatible connector"))?;
info!( info!(
"picking connector: {}-{}", "picking connector: {}-{}",
connector.interface().as_str(), connector.interface().as_str(),