sculpt_manager: start fb on second CPU on Pocket

With this commit the fb driver is started on the second CPU on the
MNT Pocket Reform to decouple it from the other components started
on the first CPU during the system's boot-up and mitigates bring-up
issues with this driver that result in an often non-working display.

Issue #5378.
This commit is contained in:
Josef Söntgen 2024-11-15 11:12:36 +01:00 committed by Christian Helmuth
parent fe008e0884
commit 59d951ed6a
2 changed files with 6 additions and 2 deletions

View File

@ -164,12 +164,16 @@ struct Sculpt::Fb_driver : private Noncopyable
registry, "vesa_fb", Priority::MULTIMEDIA, registry, "vesa_fb", Priority::MULTIMEDIA,
Ram_quota { 8*1024*1024 }, Cap_quota { 110 }); Ram_quota { 8*1024*1024 }, Cap_quota { 110 });
Affinity::Location const fb_affinity =
board_info.soc.fb_on_dedicated_cpu ? Affinity::Location { 1, 0, 1, 1 }
: Affinity::Location { };
_soc_fb.conditional(board_info.soc.fb && board_info.options.display, _soc_fb.conditional(board_info.soc.fb && board_info.options.display,
registry, Child_state::Attr { registry, Child_state::Attr {
.name = "fb", .name = "fb",
.priority = Priority::MULTIMEDIA, .priority = Priority::MULTIMEDIA,
.cpu_quota = 20, .cpu_quota = 20,
.location = { }, .location = fb_affinity,
.initial = { Ram_quota { 16*1024*1024 }, .initial = { Ram_quota { 16*1024*1024 },
Cap_quota { 250 } }, Cap_quota { 250 } },
.max = { } } ); .max = { } } );

View File

@ -302,7 +302,7 @@ struct Sculpt::Main : Input_event_handler,
.modem = false, .modem = false,
.nic = _mnt_reform || _mnt_pocket, .nic = _mnt_reform || _mnt_pocket,
.fb_on_dedicated_cpu = false .fb_on_dedicated_cpu = _mnt_pocket
}; };
Drivers _drivers { _env, _child_states, *this, *this }; Drivers _drivers { _env, _child_states, *this, *this };