summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2025-05-30expo: Move text-rendering into its own functionSimon Glass
The code to render text is quite long, so put it in its own function. Signed-off-by: Simon Glass <[email protected]>
2025-05-30expo: Create a struct for generic text attributesSimon Glass
In preparation for adding more text types, refactor the common fields into a new structure. This will allow common code to be used. Signed-off-by: Simon Glass <[email protected]>
2025-05-30expo: Line up all menu objectsSimon Glass
At present labels are lined up vertically. Do the same with keys and descriptions, since it looks nicer. Signed-off-by: Simon Glass <[email protected]>
2025-05-30expo: Support setting the size and bounds of an objectSimon Glass
Add a function to allow the size of an object to be set independently of its position. Also add a function to permit the object's bounding box to be set independently of its dimensions. Signed-off-by: Simon Glass <[email protected]>
2025-05-30expo: Make bounding-box calculation more flexibleSimon Glass
In some cases it is useful to obtain more than just two bounding boxes from a menu, e.g. to line up all descriptions vertically. Use an array to obtain bounding-box information and calculate it separately for each item. Signed-off-by: Simon Glass <[email protected]>
2025-05-30expo: Separate dimensions from the bounding boxSimon Glass
At present each object has a width and height and the bounding box is implicit in that. This is not flexible enough to handle objects which are larger than their contents might need. For example, when centring a text object we might want to have it stretch across the whole width of the display even if the text itself does not need that much space. Create a new 'dimensions' field and convert the existing width/height into x1/y1 coordinates. Signed-off-by: Simon Glass <[email protected]>
2025-05-30expo: Use an abuf to hold stringsSimon Glass
It is more convenient to put strings in an abuf so they can easily be resized. Adjust the struct accordingly. Signed-off-by: Simon Glass <[email protected]>
2025-05-30expo: Rename x and y in struct scene_obj_bboxSimon Glass
These coordinates are the top left values, so rename them to x0 and y0 in preparation for changing the width and height to x1 and y1 Signed-off-by: Simon Glass <[email protected]>
2025-05-30expo: Rename scene_dim to scene_obj_bboxSimon Glass
At present we assume that each object is a simple box and that it fills the whole box. This is quite limiting for text objects, which we may want to centre within the box. We need a position within the box where drawing starts. Rename the scene_dim struct to indicate that it is a bounding box. Signed-off-by: Simon Glass <[email protected]>
2025-05-30expo: Allow adding a single bootflow to a menuSimon Glass
Refactor bootflow_menu_add_all() to call a new bootflow_menu_add() to add each of its bootflows. Move the last_bootdev value into struct menu_priv to make this work. Signed-off-by: Simon Glass <[email protected]>
2025-05-30expo: Split bootflow_menu_new() into two piecesSimon Glass
Split the iteration piece of this function into bootflow_menu_add_all() so that it is possible for the caller to be in control of adding items to the menu. Move the expo_destroy() call into the caller. Signed-off-by: Simon Glass <[email protected]>
2025-05-30expo: Split bootflow_menu_run() into two piecesSimon Glass
Split the starting piece of this function into bootflow_menu_start() and the polling part into bootflow_menu_poll() so that it is possible for the caller to be in control of the event loop. Move the expo_destroy() call into the caller. Signed-off-by: Simon Glass <[email protected]>
2025-05-30expo: Test editing a lineeditSimon Glass
Open the lineedit and add a few characters, to check that things look right. At present when the user moves to a new menu item, the menu code handles this immediately. This means it is not possible to use an expo action to effect the same change. Update this so that EXPOACT_POINT_ITEM is handled in cedit_do_action(). Expand the test to cover this. Signed-off-by: Simon Glass <[email protected]>
2025-05-30expo: Adjust how menu items are highlightedSimon Glass
At present when the user moves to a new menu item, the menu code handles this immediately. This means it is not possible to use an expo action to effect the same change. Update this so that EXPOACT_POINT_ITEM is handled in cedit_do_action(). Expand the test to cover this. Signed-off-by: Simon Glass <[email protected]>
2025-05-30expo: Provide access to the current menu itemSimon Glass
Add functions to allow a caller to find out the current menu item and to select a different one. Update the event handling so that an attempt to change the current item (e.g. by pressing the up-arrow key) is reported to the caller, since this may be used to cancel an autoboot timeout. Signed-off-by: Simon Glass <[email protected]>
2025-05-30expo: Test rendering a lineeditSimon Glass
Check the rendering output when adding characters to a line-edit object. Add a separate test to check behaviour when starting with existing text in the lineedit. The cursor should start at the end. Signed-off-by: Simon Glass <[email protected]>
2025-05-30expo: Pass in the video device for cedit_prepare()Simon Glass
At present this function locates it own video device. Pass it in to provide more flexibility. Signed-off-by: Simon Glass <[email protected]>
2025-05-30expo: Test some cedit actionsSimon Glass
Refactor the action-processing code into a new cedit_do_action() function so we can call it from a test. Check moving to a new field and opening the menu, to ensure that rendering is correct. Signed-off-by: Simon Glass <[email protected]>
2025-05-30expo: Move cedit-state fields into expoSimon Glass
Move the boolean flags into struct expo so that the state can be maintained over function calls. Signed-off-by: Simon Glass <[email protected]>
2025-05-30expo: Create a rendering test for ceditSimon Glass
Add a test to check that the cedit renders as expected. Signed-off-by: Simon Glass <[email protected]>
2025-05-30expo: Destroy the cedit expo when doneSimon Glass
Once 'cedit run' is completed, destroy the expo so that a fresh one is used for any future editing. Signed-off-by: Simon Glass <[email protected]>
2025-05-30expo: Add a function to poll for inputSimon Glass
Both bootflow_menu and cedit use similar logic to poll an expo. Move this into the expo library so the code can be shared. Update bootflow_menu_run() to return -EPIPE when the user quits without choosing anything, since -EAGAIN is ambiguous and elsewhere means that there is no input yet. Signed-off-by: Simon Glass <[email protected]>
2025-05-30expo: Add CLI context to the expoSimon Glass
An expo generally needs to keep track of the keyboard state while it is running, so move the context into struct expo Signed-off-by: Simon Glass <[email protected]>
2025-05-30abuf: Add a way to printf() into a bufferSimon Glass
It is useful to format a string into a buffer, with the sizing handled automatically. Add a function for this. Signed-off-by: Simon Glass <[email protected]>
2025-05-30abuf: Add a function to copy a bufferSimon Glass
It is useful to be able to copy an abuf, to allow changes while preserving the original. Add a function for this. Signed-off-by: Simon Glass <[email protected]>
2025-05-30abuf: Add a helper for initing and allocating a bufferSimon Glass
This construct appears in various places. Reduce code size by adding a function for it. It inits the abuf, then allocates it to the requested size. Signed-off-by: Simon Glass <[email protected]>
2025-05-29Merge patch series "Update kbuild"Tom Rini
Ilias Apalodimas <[email protected]> says: Last time the kbuild scripts were synced with the Linux kernel was on the 4.20 release. Updating directly to 6.x makes the diff difficult to read, so let's do the changes incrementally and bump to 5.1 first. Since the number of commits is big, I am splitting this in multiple series. This one includes most of the commits for Makefile.build, Makefile.lib and some from Makefile. commit eeb5687a7139649e ("kbuild: add -Werror=strict-prototypes flag unconditionally") commit 3812b8c5c5d5 ("kbuild: make -r/-R effective in top Makefile for old Make versions") commit b421b8a6cb87 ("kbuild: remove unused archmrproper") commit 1a49b2fd8f58 ("kbuild: strip whitespace in cmd_record_mcount findstring") commit 88110713ca9dfb ("kbuild: hardcode genksyms path and remove GENKSYMS variable") commit 1d8001ef358 ("kbuild: generate modules.order only when CONFIG_MODULES=y") commit 45c4372d00 ("kbuild: refactor quiet_modtag") commit b39a691617e4 commit ("kbuild: remove redundant quiet_modtag for $(obj-m)") commit 5439f09f488f ("kbuild: remove redundant 'set -e' from cmd_* defines") commit e5d289100d3a ("kbuild: remove trailing semicolon from cmd_* passed to if_changed_rule") commit 3a2429e1faf4 ("kbuild: change if_changed_rule for multi-line recipe") commit ee3e46b7efd2 ("kbuild: refactor modversions build rules") commit 4317ee3b6a5e ("kbuild: remove redundant 'set -e' from sub_cmd_record_mcount") commit 392885ee82d3 ("kbuild: let fixdep directly write to .*.cmd files") commit 898f5a009f22 ("kbuild: move archive command to scripts/Makefile.lib") commit b79c6aa6a1f1 ("kbuild: remove unnecessary in-subshell execution") commit afa974b77128 ("kbuild: add real-prereqs shorthand for $(filter-out FORCE,$^)") commit ecbd10d90e94 ("kbuild: simplify rules of data compression with size appending") commit 58156ba4468f ("kbuild: skip 'addtree' and 'flags' magic for external module build") commit 172caf1993b7 ("kbuild: remove redundant target cleaning on failure") commit f3fd4a3f3a38 ("kbuild: remove redundant 'set -e' from filechk_offsets") commit a2237fec1e06 ("kbuild: Enable dtc graph_port warning by default") commit 70523a3ce5ff ("kbuild: disable dtc simple_bus_reg warnings by default") commit e4aca4595005 ("kbuild: de-duplicate fixdep usage") Link: https://lore.kernel.org/r/[email protected]
2025-05-29kbuild: add -Werror=strict-prototypes flag unconditionallyIlias Apalodimas
Backported from kernel commit eeb5687a7139649e ("kbuild: add -Werror=strict-prototypes flag unconditionally") Signed-off-by: Ilias Apalodimas <[email protected]>
2025-05-29kbuild: make -r/-R effective in top Makefile for old Make versionsIlias Apalodimas
Backported from kernel commit 3812b8c5c5d5 ("kbuild: make -r/-R effective in top Makefile for old Make versions") Signed-off-by: Ilias Apalodimas <[email protected]>
2025-05-29kbuild: remove unused archmrproperIlias Apalodimas
Backported from kernel commit b421b8a6cb87 ("kbuild: remove unused archmrproper") Signed-off-by: Ilias Apalodimas <[email protected]>
2025-05-29kbuild: strip whitespace in cmd_record_mcount findstringIlias Apalodimas
Backport from kernel commit 1a49b2fd8f58 ("kbuild: strip whitespace in cmd_record_mcount findstring") Signed-off-by: Ilias Apalodimas <[email protected]>
2025-05-29kbuild: hardcode genksyms path and remove GENKSYMS variableIlias Apalodimas
Back port from kernel although it's not used since it makes diffing easier. commit 88110713ca9dfb ("kbuild: hardcode genksyms path and remove GENKSYMS variable") Signed-off-by: Ilias Apalodimas <[email protected]>
2025-05-29kbuild: generate modules.order only when CONFIG_MODULES=yIlias Apalodimas
Backport from kernel although it is unused since it makes diffing easier. commit 1d8001ef358 ("kbuild: generate modules.order only when CONFIG_MODULES=y") Signed-off-by: Ilias Apalodimas <[email protected]>
2025-05-29kbuild: refactor quiet_modtagIlias Apalodimas
Backport from kernel commit 45c4372d00 ("kbuild: refactor quiet_modtag") Signed-off-by: Ilias Apalodimas <[email protected]>
2025-05-29kbuild: remove redundant quiet_modtag for $(obj-m)Ilias Apalodimas
Backported from kernel commit b39a691617e4 commit ("kbuild: remove redundant quiet_modtag for $(obj-m)") Signed-off-by: Ilias Apalodimas <[email protected]>
2025-05-29kbuild: remove redundant 'set -e' from cmd_* definesIlias Apalodimas
Backported from kernel commit 5439f09f488f ("kbuild: remove redundant 'set -e' from cmd_* defines") Signed-off-by: Ilias Apalodimas <[email protected]>
2025-05-29kbuild: remove trailing semicolon from cmd_* passed to if_changed_ruleIlias Apalodimas
Backport from kernel commit e5d289100d3a ("kbuild: remove trailing semicolon from cmd_* passed to if_changed_rule") Signed-off-by: Ilias Apalodimas <[email protected]>
2025-05-29kbuild: change if_changed_rule for multi-line recipeIlias Apalodimas
Backport from kernel commit 3a2429e1faf4 ("kbuild: change if_changed_rule for multi-line recipe") Signed-off-by: Ilias Apalodimas <[email protected]>
2025-05-29kbuild: refactor modversions build rulesIlias Apalodimas
Backport from kernel commit ee3e46b7efd2 ("kbuild: refactor modversions build rules") Signed-off-by: Ilias Apalodimas <[email protected]>
2025-05-29kbuild: remove redundant 'set -e' from sub_cmd_record_mcountIlias Apalodimas
Back from kernel commit 4317ee3b6a5e ("kbuild: remove redundant 'set -e' from sub_cmd_record_mcount") Signed-off-by: Ilias Apalodimas <[email protected]>
2025-05-29kbuild: let fixdep directly write to .*.cmd filesIlias Apalodimas
Backport from kernel commit 392885ee82d3 ("kbuild: let fixdep directly write to .*.cmd files") Signed-off-by: Ilias Apalodimas <[email protected]>
2025-05-29kbuild: move archive command to scripts/Makefile.libIlias Apalodimas
Backport from kernel commit 898f5a009f22 ("kbuild: move archive command to scripts/Makefile.lib") Signed-off-by: Ilias Apalodimas <[email protected]>
2025-05-29kbuild: remove unnecessary in-subshell executionIlias Apalodimas
Backport kernel changes commit b79c6aa6a1f1 ("kbuild: remove unnecessary in-subshell execution") Signed-off-by: Ilias Apalodimas <[email protected]>
2025-05-29kbuild: add real-prereqs shorthand for $(filter-out FORCE, $^)Ilias Apalodimas
Backport from kernel commit afa974b77128 ("kbuild: add real-prereqs shorthand for $(filter-out FORCE,$^)") Signed-off-by: Ilias Apalodimas <[email protected]>
2025-05-29kbuild: simplify rules of data compression with size appendingIlias Apalodimas
Backport kernel changes commit ecbd10d90e94 ("kbuild: simplify rules of data compression with size appending") Signed-off-by: Ilias Apalodimas <[email protected]>
2025-05-29kbuild: skip 'addtree' and 'flags' magic for external module buildIlias Apalodimas
Backport from kernel commit 58156ba4468f ("kbuild: skip 'addtree' and 'flags' magic for external module build") Signed-off-by: Ilias Apalodimas <[email protected]>
2025-05-29kbuild: remove redundant target cleaning on failureIlias Apalodimas
Bacport from the kernel commit 172caf1993b7 ("kbuild: remove redundant target cleaning on failure") Signed-off-by: Ilias Apalodimas <[email protected]>
2025-05-29kbuild: remove redundant 'set -e' from filechk_offsetsIlias Apalodimas
Backport changes from the kernel commit f3fd4a3f3a38 ("kbuild: remove redundant 'set -e' from filechk_offsets") Signed-off-by: Ilias Apalodimas <[email protected]>
2025-05-29kbuild: Enable dtc graph_port warning by defaultIlias Apalodimas
Backport changes from the kernel commit a2237fec1e06 ("kbuild: Enable dtc graph_port warning by default") Signed-off-by: Ilias Apalodimas <[email protected]>
2025-05-29kbuild: disable dtc simple_bus_reg warnings by defaultIlias Apalodimas
Backport changes from the kernel commit 70523a3ce5ff ("kbuild: disable dtc simple_bus_reg warnings by default") Signed-off-by: Ilias Apalodimas <[email protected]>