summaryrefslogtreecommitdiff
path: root/drivers/video
AgeCommit message (Collapse)Author
2026-06-26video: imx: ipuv3: enable ipu clk before writing registers in CCFBrian Ruley
Obviously, the clock has to be enabled if writing to it's registers. This was missed because the board I tested on had enabled the clocks in early init. Also, remove the completely useless "ipu_clk_enabled" struct member and use the accurate usecount / enabled_count instead. Signed-off-by: Brian Ruley <[email protected]>
2026-06-25Kconfig: video: restyleJohan Jonker
Restyle all Kconfigs for "video": Menu entries : no space left Menu attributes: 1 TAB Help text : 1 TAB + 2 spaces Replace '---help---' by 'help' Signed-off-by: Johan Jonker <[email protected]> [trini: Add missing indentation on a multi-paragraph help text] Signed-off-by: Tom Rini <[email protected]>
2026-06-24treewide: move bi_dram[] from bd to gdIlias Apalodimas
Currently, the bi_dram[] information is stored in the board info structure (bd). Because bd is only valid after reserve_board(), dram_init_banksize() must be called late in the initialization process. This limitation is problematic, as it forces us to rely on a variety of bespoke functions to determine board RAM, bank memory sizes, and other early setup requirements. By moving bi_dram[] into the global data (gd), we can run it earlier. This is particularly convenient since boards define their own dram_init_banksize() routines, which do not always rely on parsing Device Tree (DT) memory nodes. Additionally, U-Boot defaults to relocating to the top of the first memory bank. While boards currently use custom functions to override this behavior, having the DRAM bank information available earlier in gd makes relocating to a different bank trivial and standardizes the process. Reviewed-by: Anshul Dalal <[email protected]> Tested-by: Michal Simek <[email protected]> # Versal Gen 2 Vek385 Tested-by: Anshul Dalal <[email protected]> Reviewed-by: Simon Glass <[email protected]> Signed-off-by: Ilias Apalodimas <[email protected]> Tested-by: Christophe Leroy (CS GROUP) <[email protected]>
2026-06-08Merge tag 'v2026.07-rc4' into nextTom Rini
Prepare v2026.07-rc4
2026-05-30Merge patch series "video: bridge: anx6345: Staticize and constify driver ops"Tom Rini
This series from Marek Vasut <[email protected]> adds "static" and "const" keywords to structs where they are missing and would be useful to have. Link: https://lore.kernel.org/r/[email protected]
2026-05-30video console: add 6x8 console font from linuxAlexey Charkov
Small screens on the order of 256x144 pixels can't fit much text at 8x16, and 4x6 is virtually illegible, so add an in-between 6x8 font from Linux. Font data obtained from lib/fonts/font_6x8.c in the Linux kernel at commit db65872b38dc ("lib/fonts: Remove internal symbols and macros from public header file") Link: https://github.com/torvalds/linux/blob/db65872b38dc9f18a62669d6ae1e4ec7868a85a9/lib/fonts/font_6x8.c Signed-off-by: Alexey Charkov <[email protected]>
2026-05-30video: kconfig: replace tristate with bool for LCD panel driversDario Binacchi
U-Boot does not support loadable modules, therefore using 'tristate' in Kconfig is incorrect since the 'm' option cannot be selected. Replace tristate with bool for the affected LCD panel drivers to reflect the U-Boot build model and avoid misleading configuration options. No functional change intended. Signed-off-by: Dario Binacchi <[email protected]> Reviewed-by: Tom Rini <[email protected]> Reviewed-by: Svyatoslav Ryhel <[email protected]>
2026-05-30video: Kconfig: fix indentation of help textDario Binacchi
Fix the indentation of the help text for VIDEO_LCD_NOVATEK_NT35510 and VIDEO_LCD_ORISETECH_OTM8009A to align with the standard Kconfig format. Signed-off-by: Dario Binacchi <[email protected]> Reviewed-by: Quentin Schulz <[email protected]> Reviewed-by: Heinrich Schuchardt <[email protected]>
2026-05-30video: simplefb: Parse memory region from memory-region propertyAelin Reidel
Linux' simplefb driver allows setting the memory-region property to a phandle to a node that describes the memory to be used for the framebuffer. If it is present, it will override the "reg" property. This adds support for parsing the property and prefers it if present. Signed-off-by: Aelin Reidel <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2026-05-30video: simplefb: Map framebuffer region on probe on ARM64Luca Weiss
The framebuffer buffer might not be mapped on some devices. This is #ifdef'ed for ARM64 since mmu_map_region() is not defined for any other architecture. Signed-off-by: Luca Weiss <[email protected]> Acked-by: Sumit Garg <[email protected]>
2026-05-30video: Correct dependencies for VIDEO_TIDSSTom Rini
The VIDEO_TIDSS functionality can only work with PANEL enabled, so express this dependency in Kconfig for all phases. Signed-off-by: Tom Rini <[email protected]>
2026-05-30video: Correct dependencies for VIDEO_LCD_RAYDIUM_RM68200Tom Rini
The VIDEO_LCD_RAYDIUM_RM68200 functionality can only work with BACKLIGHT enabled, so express this dependency in Kconfig. Signed-off-by: Tom Rini <[email protected]>
2026-05-30video: Correct dependencies of LOGICORE_DP_TXTom Rini
In order to build LOGICORE_DP_TX we must also have enabled AXI, so add that as a dependency as well. Signed-off-by: Tom Rini <[email protected]>
2026-05-29video: tegra: Staticize and constify driver opsMarek Vasut
Set the ops structure as static const. The structure is not accessible from outside of this driver and is not going to be modified at runtime. Signed-off-by: Marek Vasut <[email protected]> Acked-by: Svyatoslav Ryhel <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2026-05-29video: tda19988: Staticize and constify driver opsMarek Vasut
Set the ops structure as static const. The structure is not accessible from outside of this driver and is not going to be modified at runtime. Signed-off-by: Marek Vasut <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2026-05-29video: stm32: Staticize and constify driver opsMarek Vasut
Set the ops structure as static const. The structure is not accessible from outside of this driver and is not going to be modified at runtime. Signed-off-by: Marek Vasut <[email protected]> Reviewed-by: Patrice Chotard <[email protected]> Reviewed-by: Simon Glass <[email protected]> Reviewed-by: RaphaĆ«l Gallais-Pou <[email protected]>
2026-05-29video: imx: ldb: Staticize and constify driver opsMarek Vasut
Set the ops structure as static const. The structure is not accessible from outside of this driver and is not going to be modified at runtime. Signed-off-by: Marek Vasut <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2026-05-29video: dw_mipi_dsi: Staticize and constify driver opsMarek Vasut
Set the ops structure as static const. The structure is not accessible from outside of this driver and is not going to be modified at runtime. Signed-off-by: Marek Vasut <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2026-05-29video: console: truetype: Staticize and constify driver opsMarek Vasut
Set the ops structure as static const. The structure is not accessible from outside of this driver and is not going to be modified at runtime. Signed-off-by: Marek Vasut <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2026-05-29video: console: rotate: Staticize and constify driver opsMarek Vasut
Set the ops structure as static const. The structure is not accessible from outside of this driver and is not going to be modified at runtime. Signed-off-by: Marek Vasut <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2026-05-29video: console: normal: Staticize and constify driver opsMarek Vasut
Set the ops structure as static const. The structure is not accessible from outside of this driver and is not going to be modified at runtime. Signed-off-by: Marek Vasut <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2026-05-29video: bridge: ptn3460: Staticize and constify driver opsMarek Vasut
Set the ops structure as static const. The structure is not accessible from outside of this driver and is not going to be modified at runtime. Signed-off-by: Marek Vasut <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2026-05-29video: bridge: ps862x: Staticize and constify driver opsMarek Vasut
Set the ops structure as static const. The structure is not accessible from outside of this driver and is not going to be modified at runtime. Signed-off-by: Marek Vasut <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2026-05-29video: bridge: anx6345: Staticize and constify driver opsMarek Vasut
Set the ops structure as static const. The structure is not accessible from outside of this driver and is not going to be modified at runtime. Signed-off-by: Marek Vasut <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2026-05-26video: arm: rpi: Add brcm,bcm2712-hdmi0 compatiblePeter Robinson
The 'brcm,bcm2712-hdmi0' compatible string is used on RPi5. There appears to be no change that impacts early boot output on the display controller so add the RPi5 compatible string. Signed-off-by: Peter Robinson <[email protected]> Reviewed-by: Matthias Brugger <[email protected]>
2026-04-30video: support Rocktech RK050HR345-CT106A panelDario Binacchi
Add support for the Rocktech RK050HR345-CT106A RGB panel. This model uses an Ilitek ILI9806E controller over the SPI bus for initialization and register configuration only. The driver is designed to be easily extensible to support other panels with different sequences and timings by providing a specific descriptor structure for each model. Signed-off-by: Dario Binacchi <[email protected]> Reviewed-by: Patrice Chotard <[email protected]>
2026-04-30video: stm32: dsi: fix unchecked return valuesRaphael Gallais-Pou
Fix the following errors yielded by Coverity Scan: CID 644836: Error handling issues (CHECKED_RETURN) Calling device_chld_unbind without checking return value (as is done elsewhere 6 out of 7 times) CID 644834: Error handling issues (CHECKED_RETURN) Calling device_chld_remove without checking return value (as is done elsewhere 4 out of 5 times). Link: https://lore.kernel.org/r/20260309212331.GF1388590@bill-the-cat/ Fixes: a6d047c0a86b ("video: stm32: remove all child of DSI bridge when its probe failed") Signed-off-by: Raphael Gallais-Pou <[email protected]> Reviewed-by: Patrice Chotard <[email protected]>
2026-04-21kbuild: Use if_changed for font and splash .incbin rulesSimon Glass
The generated .S files for fonts and splash screens use .incbin with the full prerequisite path. When building with O= this bakes an absolute path into the .S file. If the build directory is later used on a different machine (e.g. in a container), the assembler cannot find the source file. Follow the existing DTB convention: rename the object targets to use compound suffixes (.ttf.o, .bmp.o), switch the pattern rules from direct $(call cmd,...) to FORCE + $(call if_changed,...), and register the new suffixes with intermediate_targets so that kbuild loads their .cmd files. This lets if_changed detect when the recorded command (including source paths) has changed and regenerate the .S file automatically. The EFI rule is left unchanged since its prerequisite is a generated file in the build directory, like the DTB and DTBO rules. The intermediate_targets entries stay in scripts/Makefile.build rather than moving to scripts/Makefile.lib-u-boot, because that file is included before intermediate_targets is defined and 'targets' is ':=', so a '$(call intermediate_targets, ...)' inside it would expand to empty and silently drop the entries. To keep the upstream block untouched, the U-Boot additions go in a separate 'targets +=' block immediately below. Suggested-by: Rasmus Villemoes <[email protected]> Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Rasmus Villemoes <[email protected]>
2026-04-07global: Correct duplicate U_BOOT_DRIVER entry namesTom Rini
The U_BOOT_DRIVER macro creates a list of drivers used at link time, and all entries here must be unique. This in turn means that all entries in the code should also be unique in order to not lead to build failures later with unexpected build combinations. Typically, the problem we have here is when a driver is obviously based on another driver and didn't update this particular field and so while the name field reflects something unique the linker entry itself is not. In a few places this provides a more suitable string name as well, however. Reviewed-by: Marek Vasut <[email protected]> Reviewed-by: Svyatoslav Ryhel <[email protected]> # Tegra Reviewed-by: Peter Robinson <[email protected]> Reviewed-by: Heiko Schocher <[email protected]> Reviewed-by: Simon Glass <[email protected]> Signed-off-by: Tom Rini <[email protected]>
2026-03-22video: ltl106hl02: adjust power supply nameSvyatoslav Ryhel
Rename vdd-supply to power-supply according to the latest schema. Signed-off-by: Svyatoslav Ryhel <[email protected]>
2026-03-22video: r61307: adjust property nameSvyatoslav Ryhel
Rename renesas,inversion to renesas,column-inversion according to latest schema. Signed-off-by: Svyatoslav Ryhel <[email protected]>
2026-03-09Merge tag 'v2026.04-rc4' into nextTom Rini
Prepare v2026.04-rc4
2026-03-09video: stm32: dsi: add .of_to_plat callbackRaphael Gallais-Pou
Drivers should extract device-tree data before probing via the .of_to_plat hook. Implement it for stm32_dsi driver. By doing so, it also solve a variable shadowing in stm32_dsi_probe() where &clk was used as peripheral clock and ref clock. For readability some struct have been renamed such as: * struct stm32_dsi_priv *dsi -> struct stm32_dsi_priv *priv * struct clk clk -> struct clk pclk Signed-off-by: Raphael Gallais-Pou <[email protected]> Reviewed-by: Patrick Delaunay <[email protected]>
2026-02-28video: imx: ipuv3: use clock frameworkBrian Ruley
Clocks are now configurable via the common clock framework, however, users have the option use the legacy clocks if desired. The intent is to keep the changes minimal for this old SoC. Signed-off-by: Brian Ruley <[email protected]>
2026-02-28video: imx: ipuv3: move clock code to legacyBrian Ruley
In preparation for CCF migration for IPUv3 separate existing clock code to legacy files. These will be used by i.MX5 that currently does not support the CCF. No functional change. Signed-off-by: Brian Ruley <[email protected]>
2026-02-25Merge branch 'master' of https://source.denx.de/u-boot/custodians/u-boot-samsungTom Rini
- Assorted platform and video driver updates
2026-02-17treewide: Clean up DECLARE_GLOBAL_DATA_PTR usagePeng Fan
Remove DECLARE_GLOBAL_DATA_PTR from files where gd is not used, and drop the unnecessary inclusion of asm/global_data.h. Headers should be included directly by the files that need them, rather than indirectly via global_data.h. Reviewed-by: Patrice Chotard <[email protected]> #STMicroelectronics boards and STM32MP1 ram test driver Tested-by: Anshul Dalal <[email protected]> #TI boards Acked-by: Yao Zi <[email protected]> #TH1520 Signed-off-by: Peng Fan <[email protected]>
2026-02-04video: menu "TrueType Fonts" depends on TrueType enabledHeinrich Schuchardt
The Kconfig menu "TrueType Fonts" should only be shown if TrueType is enabled. Put all TrueType dependent customization within one if statement. Remove `depends TRUETYPE` clauses. Signed-off-by: Heinrich Schuchardt <[email protected]> Reviewed-by: Tom Rini <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2026-02-03video: nexell: unsigned parameter cannot be negativeAndrew Goodbody
The parameter 'alpha' is declared as an unsigned type so cannot be negative. The code to test it as being less than zero will always fail and so is redundant and should be removed. This issue was found by Smatch. Signed-off-by: Andrew Goodbody <[email protected]> Reviewed-by: Stefan Bosch <[email protected]> Signed-off-by: Minkyu Kang <[email protected]>
2026-02-02video: exynos: node variable should not be unsignedAndrew Goodbody
THe variable 'node' is assigned a value of an int, tested for being less than or equal to zero then passed as an argument to a function that takes an int so 'node' should not be unsigned. Fix it. This issue was found by Smatch. Signed-off-by: Andrew Goodbody <[email protected]>
2026-01-29video: correct label for cyclic video_idleHeinrich Schuchardt
When the cyclic function video_idle() takes too long, a message like the following is displayed: cyclic function video_init took too long: 87707us vs 5000us max The text "video_init" is misleading. Replace it by "video_idle". Reviewed-by: Tom Rini <[email protected]> Signed-off-by: Heinrich Schuchardt <[email protected]> Reviewed-by: Quentin Schulz <[email protected]>
2026-01-29video: simple_panel: add support for "rocktech,rk043fn48h" displayRaphael Gallais-Pou
Add the compatible "rocktech,rk043fn48h" for simple-panel driver. Signed-off-by: Raphael Gallais-Pou <[email protected]> Reviewed-by: Patrice Chotard <[email protected]>
2026-01-29video: stm32: ltdc: add .of_to_plat callbackRaphael Gallais-Pou
Drivers should extract device-tree data before probing via the .of_to_plat hook. Implement it for stm32_ltdc driver. No functional change. Signed-off-by: Raphael Gallais-Pou <[email protected]> Reviewed-by: Patrice Chotard <[email protected]>
2026-01-24video: add DejaVu Mono fontHeinrich Schuchardt
A TrueType font for U-Boot should fulfill the following requirements: * mono spaced * support full code page 437 * easily readable Unfortunately none of the fonts provided with U-Boot fulfills all of these requirements. Let's add the DejaVu Mono font. To reduce the code size the characters are limited to code page 437. Signed-off-by: Heinrich Schuchardt <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2026-01-16Merge patch series "video: simple_panel support for am335x evm panel"Tom Rini
Markus Schneider-Pargmann (TI.com) <[email protected]> says: This series adds the capability to define hardcoded panel settings to the simple_panel driver similar to the Linux Kernel and adds the panel used on am335x evm. panel-uclass.c is extended to support get_modes() for panels and drm_display_mode conversion. In a second step the tilcdc is extended to support OF graph to be able to connect to the simple panel devicetree node. Link: https://lore.kernel.org/r/20260105-topic-am33-evm-lcd-v2026-01-v4-0-7617591b8159@baylibre.com
2026-01-16video: ti: am335x: Support OF graphMarkus Schneider-Pargmann (TI.com)
Add support for OF graph parsing. When using OF graph the default tilcdc_panel_info is used which is the same as defined in Linux. Signed-off-by: Markus Schneider-Pargmann (TI.com) <[email protected]>
2026-01-16video: simple_panel: Add tfc_s9700rtwv43tr_01bMarkus Schneider-Pargmann (TI.com)
Add timing data for tfc_s9700rtwv43tr_01b from Linux to the simple-panel driver. To support hardcoded timing data as Linux does, add a new struct simple_panel_drv_data which holds a struct display_timing pointer as well. The hardcoded timing data is preferred over DT parsing. Reviewed-by: Fabio Estevam <[email protected]> Signed-off-by: Markus Schneider-Pargmann (TI.com) <[email protected]>
2026-01-16panel: Lightweight support of get_modes()Markus Schneider-Pargmann (TI.com)
Linux uses get_modes() to fetch all available panel modes from the driver. This is also used to fetch the modes from Linux's simple panel implementation where a list of drm_display_mode structs is used to define the different possible panels. To make our work easier, create a compatible way of fetching and defining these modes in u-boot. get_modes() fetches the available modes from the panel driver. The get_display_timing() call maps the drm_display_mode properties to the display_timing struct. This call now uses whatever panel operation is available, get_display_timing() or get_modes(). Reviewed-by: Fabio Estevam <[email protected]> Signed-off-by: Markus Schneider-Pargmann (TI.com) <[email protected]>
2026-01-09Merge patch series "Enable / require DEVRES for devm_.alloc usage outside xPL"Tom Rini
Tom Rini <[email protected]> says: As seen by a number of patches fixing memory leaks, U-Boot has a problem with developer expectations around devm_kmalloc and friends. Namely, whereas in Linux these memory allocations will be freed automatically in most cases, in U-Boot this is only true if DEVRES is enabled. Now, intentionally, in xPL phases, we do not (and do not offer as an option) enabling DEVRES. However in full U-Boot this is left either to the user, or some drivers have select'd DEVRES on their own. This inconsistency is a problem. This series goes and deals with two small issues that were shown by having all drivers that use devm_.alloc to allocate memory also select DEVRES and then we make DEVRES no longer be a prompted option and instead select'd as needed. We do not make this unconditional as it would result in growing the resulting binary on the many platforms which have no users of the devm_.alloc family of functions. Link: https://lore.kernel.org/r/[email protected]
2026-01-09dm: core: Default to using DEVRES outside of xPLTom Rini
The devm alloc functions that we have may follow the Linux kernel model where allocations are (almost always) automatically free()'d. However, quite often we don't enable, in full U-Boot, the tracking and free()'ing functionality. This in turn leads to memory leaks because the driver author expects that since the functions have the same name as in the Linux Kernel they have the same behavior. In turn we then get functionally correct commits such as commit 00e1fed93c8c ("firmware: ti_sci: Fix memory leaks in devm_ti_sci_get_of_resource") that manually add these calls. Rather than manually tracking allocations and implementing free()s, rework things so that we follow expectations by enabling the DEVRES functionality (outside of xPL phases). This turns DEVRES from a prompted symbol to a symbol that must be select'd, and we now remove our non-managed alloc/free functions from outside of xPL builds. Reviewed-by: Michael Trimarchi <[email protected]> Signed-off-by: Tom Rini <[email protected]>