drm: wire poll_hotplug into IRQ event thread
When handle_irq() returns Ok(None) (no IRQ event received), also call poll_hotplug() to detect connector changes via HPD register polling fallback. Events are fed through the same event channel to the scheme handler.
This commit is contained in:
@@ -83,7 +83,20 @@ fn run(daemon: daemon::Daemon) -> Result<()> {
|
||||
break;
|
||||
}
|
||||
}
|
||||
Ok(None) => {}
|
||||
Ok(None) => {
|
||||
match irq_driver.poll_hotplug() {
|
||||
Ok(Some(event)) => {
|
||||
if event_tx.send(event).is_err() {
|
||||
error!("redox-drm: event consumer dropped, stopping IRQ event thread");
|
||||
break;
|
||||
}
|
||||
}
|
||||
Ok(None) => {}
|
||||
Err(e) => {
|
||||
error!("redox-drm: hotplug poll error: {}", e);
|
||||
}
|
||||
}
|
||||
}
|
||||
Err(e) => {
|
||||
error!("redox-drm: IRQ handler error: {}", e);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user