From 53230d39f4c2665d9b70a3935be95c0479f62ded Mon Sep 17 00:00:00 2001 From: Alexander Boettcher Date: Fri, 19 Apr 2024 13:02:17 +0200 Subject: [PATCH] intel/display: delay until graphic device is ready Issue #5180 --- repos/pc/src/drivers/framebuffer/intel/pc/main.cc | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/repos/pc/src/drivers/framebuffer/intel/pc/main.cc b/repos/pc/src/drivers/framebuffer/intel/pc/main.cc index fe5690ce43..3bd34d309e 100644 --- a/repos/pc/src/drivers/framebuffer/intel/pc/main.cc +++ b/repos/pc/src/drivers/framebuffer/intel/pc/main.cc @@ -120,6 +120,18 @@ struct Framebuffer::Driver { Lx_kit::initialize(env, scheduler_handler); + /* + * Delay startup of driver until graphic device is available. + * After resume it is possible, that no device is instantly available. + * This ported Linux driver hangs up otherwise, when the delayed + * Device announcement is handled later inside the lx_kit for unknown + * reasons. + */ + Lx_kit::env().devices.for_each([](auto & device) { + /* only enable graphic device and skip bridge, which has no irq atm */ + device.for_each_irq([&](auto &) { device.enable(); }); + }); + config.sigh(config_handler); }