summaryrefslogtreecommitdiff
path: root/drivers/video
AgeCommit message (Collapse)Author
2025-12-30Merge patch series "video: Remove unused drivers, clean up dependencies"Tom Rini
Tom Rini <[email protected]> says: This is v2 of the series I originally posted back in August[1]. The changes here are that I've dropped the first patch as TI has recently posted their rework of the driver in question, and I added Svyatoslav's Reviewed-by tag. The end goal here is that "allyesconfig" will be able to build (on sandbox). [1]: https://patchwork.ozlabs.org/project/uboot/list/?series=468123&state=* Link: https://lore.kernel.org/r/[email protected]
2025-12-30drivers: video: tidss: Refactor tidss_drvSwamil Jain
- Refactor tidss_drv to improve modularity, enabling support for more display interfaces beyond OLDI in the future - Add detection and initialization of active OLDI panels using the DT - Port tidss_oldi.c from the upstream Linux kernel oldi series[0] and derive several APIs from it to determine the dual link pixel order - Add tidss_oldi_init() and helper routines to handle OLDI-specific setup and move related helper routines to tidss_oldi.c [0]: https://lore.kernel.org/all/[email protected]/ Signed-off-by: Swamil Jain <[email protected]> Tested-by: Anshul Dalal <[email protected]>
2025-12-30video: simplefb: Add stride handlingIgor Belwon
Some framebuffers (i.e MediaTek) do not have regular stride - its line length is more than the display width by 8 pixels (on MT6878). As such, introduce the optional stride property, which fixes these framebuffers. Signed-off-by: Igor Belwon <[email protected]>
2025-12-30Merge patch series "video: display: refactor display_read_timing to avoid ↵Tom Rini
code duplication" Julien Stephan <[email protected]> says: Commit 2dcf143398ad ("dm: video: Repurpose the 'displayport' uclass to 'display'") left the display_read_edid() function unused by mistake. This series addresses that oversight and introduces a new useful cmd. Patch 1: - Refactors display_read_timing() to use the existing display_read_edid() function, eliminating redundant code. - Marks display_read_edid() as static since it is not used outside of the file. Patch 2: - Adds a new read_edid command, which can be very useful for debugging or developing new display drivers. - As this command uses display_read_edid(), the function is made non-static again. Link: https://lore.kernel.org/r/[email protected]
2025-12-30cmd: add new command to read edidJulien Stephan
Add a new command to read EDID info from connected display. When applicable EDID can also be retrieved by commands such as: i2c dev x i2c edid 0x50 but the new read_edid function relies on the implementation of the read_edid callback from DISPLAY driver. Signed-off-by: Julien Stephan <[email protected]>
2025-12-30video: stm32: stm32_ltdc: Add missing <linux/sizes.h> to stm32_ltdc.cTom Rini
This driver references the SZ_ macros while relying on an indirection inclusion of <linux/sizes.h>. Add the missing include directly. Signed-off-by: Tom Rini <[email protected]>
2025-12-30video: sharp-lq101r1sx01: Do not make use of 'z' for printing non-size_tTom Rini
The debug macros in this driver make use of the z prefix when printing regular, non-size_t variables and this results in a warning. Drop 'z'. Signed-off-by: Tom Rini <[email protected]>
2025-12-30video: ihs_video_out: Add missing <asm/io.h> to ihs_video_out.cTom Rini
This driver references IO macros while relying on an indirection inclusion of <asm/io.h>. Add the missing include directly. Signed-off-by: Tom Rini <[email protected]>
2025-12-30video: anx9804: Only build when neededTom Rini
The logic for how to handle this video driver is slightly odd. Only in the case of when CONFIG_VIDEO_LCD_PANEL_EDP_4_LANE_1620M_VIA_ANX9804 is enabled do we need to have this file built, and otherwise we have a dummy function in use. Correct the logic by only building this file when needed. Signed-off-by: Tom Rini <[email protected]>
2025-12-30video: Tighten some video driver dependenciesTom Rini
A few video drivers cannot build without access to some platform specific header files. Express those requirements in Kconfig as well. Signed-off-by: Tom Rini <[email protected]>
2025-12-30video: tegra: Rework some of the driver dependenciesTom Rini
Looking these drivers over, all of them cannot build without access to some platform specific header files. Express those requirements in Kconfig as well. Furthermore, update the logic a bit more to reflect which parts are optional when other drivers are enabled and which parts cannot be enabled (meaningfully) by themselves. Reviewed-by: Svyatoslav Ryhel <[email protected]> Signed-off-by: Tom Rini <[email protected]>
2025-12-30video: mali_dp: Remove unused driverTom Rini
This driver is unused. Remove it. Signed-off-by: Tom Rini <[email protected]>
2025-12-30video: display: refactor display_read_timing to avoid code duplicationJulien Stephan
Commit 2dcf143398ad ("dm: video: Repurpose the 'displayport' uclass to 'display'") left the display_read_edid() function unused by mistake. Mark the function as static and reuse it within display_read_timing() to avoid code duplication. Signed-off-by: Julien Stephan <[email protected]>
2025-12-29video: imx: ipuv3: refactor to use dm-managed stateBrian Ruley
Get rid of most globals that are spread around between TU's and place them in their own structs managed by dm. Device state is now owned by each driver instance. This design mirrors the Linux IPUv3 driver architecture. This work is done in preparation to migrate the driver to the clock framework. While not the primary intent, this change also enables multiple IPU instances to exist contemporarily. Signed-off-by: Brian Ruley <[email protected]>
2025-12-29video: imx: ipuv3: use CONFIG_IS_ENABLEDBrian Ruley
Bring driver up-to-date with U-Boot conventions, but also takes into account SPL and TPL, let compiler optimize while keeping code more readable. Signed-off-by: Brian Ruley <[email protected]>
2025-12-29video: imx: ipuv3: add names to clk function identifiersBrian Ruley
The API should provide clear distinction in the order of parameters. Signed-off-by: Brian Ruley <[email protected]>
2025-12-29video: imx: ipuv3: fix camel casesBrian Ruley
U-Boot style specifies to use snake case and checkpatch nudge to check them every time. Signed-off-by: Brian Ruley <[email protected]>
2025-12-29video: imx: ipuv3: prefer kernel typesBrian Ruley
Conform with U-Boot guidelines and pass checkpatch checks for upcoming changes. Signed-off-by: Brian Ruley <[email protected]>
2025-12-29video: imx: ipuv3: apply clang-formatBrian Ruley
Bring the code into compliance with U-Boot's coding style guidelines for upcoming changes. Sort includes to tidy things up and apply { RemoveBracesLLVM: true } to remove unnecessary blocks. Signed-off-by: Brian Ruley <[email protected]>
2025-12-29video: imx: ipuv3: remove undefined function declarationsBrian Ruley
These functions don't seem to be defined nor called anywhere so remove them. Signed-off-by: Brian Ruley <[email protected]>
2025-12-29video: mxsfb: fix pixel clock polaritySam Meredith
DISPLAY_FLAGS_PIXDATA_NEGEDGE means the controller drives the data on pixel clocks falling edge. That is DOTCLK_POL=0 (default) not 1. The mxsfb-drm driver in the Linux kernel has made the same change and it remains to this day: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?h=v6.19-rc2&id=53990e416bb7adaa59d045f325a47f31a11b75ee I found this was required on an IMX8X SoM. Without the patch a splash screen displays with aliasing-like jagged edges. Signed-off-by: Sam Meredith <[email protected]> [fabio: Put more information into the commit log] Signed-off-by: Fabio Estevam <[email protected]>
2025-11-17video: stm32: ltdc: properly search the first available panelRaphael Gallais-Pou
Initially there was only one DSI bridge with one panel attached to this device. This explained the call to uclass_first_device_err(UCLASS_PANEL, ...) which worked fine at the time. Now that multiple bridges and panels, with different technologies, can be plugged onto the board this way to get the panel device is outdated. The lookup is done is two steps. First we circle through the UCLASS_VIDEO_BRIDGE, and once we get one, we search through its endpoints until we get a UCLASS_PANEL device available. Acked-by: Yannick Fertre <[email protected]> Signed-off-by: Raphael Gallais-Pou <[email protected]> Reviewed-by: Patrice Chotard <[email protected]>
2025-11-17video: stm32: ltdc: support new hardware version for STM32MP25 SoCRaphael Gallais-Pou
STM32MP2 SoCs feature a new version of the LTDC IP. This new version features a bus clock, as well as a 150MHz pad frequency. Add its compatible to the list of device to probe and handle quirks. The new hardware version features a bus clock. Reviewed-by: Patrice Chotard <[email protected]> Acked-by: Yannick Fertre <[email protected]> Signed-off-by: Raphael Gallais-Pou <[email protected]>
2025-11-17video: stm32: STM32 driver support for LVDSRaphael Gallais-Pou
The LVDS Display Interface Transmitter handles the LVDS protocol: it maps the pixels received from the upstream Pixel-DMA (LTDC) onto the LVDS PHY. The LVDS controller driver supports the following high-level features: • FDP-Link-I and OpenLDI (v0.95) protocols • Single-Link or Dual-Link operation • Single-Display or Double-Display (with the same content duplicated on both) • Flexible Bit-Mapping, including JEIDA and VESA • RGB888 or RGB666 output • Synchronous design, with one input pixel per clock cycle • No resolution limitation. Acked-by: Yannick Fertre <[email protected]> Signed-off-by: Raphael Gallais-Pou <[email protected]>
2025-11-17video: simple_panel: add support for "panel-lvds" displayRaphael Gallais-Pou
Add the compatible "panel-lvds" for simple-panel driver in U-Boot. In Linux this compatible is managed by the driver drivers/gpu/drm/panel/panel-lvds.c but in U-Boot the specific LVDS features (bus_format/bus_flags) are not supported. Reviewed-by: Patrice Chotard <[email protected]> Reviewed-by: Yannick Fertre <[email protected]> Signed-off-by: Raphael Gallais-Pou <[email protected]>
2025-11-06efi: video: fix mode info in payload modeBen Wolsieffer
Currently, the EFI framebuffer is non-functional in payload mode. It always reports: "No video mode configured in EFI!" This is caused by a copy-paste error that replaced "struct efi_entry_gopmode" with "struct efi_gop_mode". Fixes: 88753816cf54 ("efi: video: Move payload code into a function") Signed-off-by: Ben Wolsieffer <[email protected]> Reviewed-by: Heinrich Schuchardt <[email protected]>
2025-10-28video: tegra: Incorrect operator usedAndrew Goodbody
Combining two bits into a mask requires the use of the binary 'or' operator not the logical one. Correct it. This issue was found by Smatch. Signed-off-by: Andrew Goodbody <[email protected]> Reviewed-by: Thierry Reding <[email protected]> Acked-by: Svyatoslav Ryhel <[email protected]>
2025-10-28video: tegra: Remove unreachable codeAndrew Goodbody
The goto immediately after a return is unreachable. Remove it and its target label as redundant. This issue was found by Smatch. Signed-off-by: Andrew Goodbody <[email protected]> Reviewed-by: Thierry Reding <[email protected]> Acked-by: Svyatoslav Ryhel <[email protected]>
2025-10-09video: zynqmp: Prevent use of uninitialised variablesAndrew Goodbody
The variables 'offset_matrix' and 'csc_matrix' will be used uninitialised if video->is_rgb is false. Correct the logic so the attempt to use uninitialised variables is not made. Also remove the use of these variables as they seem to serve no useful purpose just being aliases for arrays. This issue was found by Smatch. Signed-off-by: Andrew Goodbody <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Michal Simek <[email protected]>
2025-08-01video: backlight: add Samsung CMC623 backlight PWM driverIon Agorria
Add support for PWM backlight found in Samsung CMC623 image converter. Signed-off-by: Ion Agorria <[email protected]> Reviewed-by: Svyatoslav Ryhel <[email protected]> Signed-off-by: Svyatoslav Ryhel <[email protected]>
2025-08-01video: bridge: add Samsung CMC623 image converter driverIon Agorria
Add support for a Samsung CMC623 image converter chip found in several Samsung devices such as Samsung Galaxy R (I9103) and Samsung Galaxy Tab 10.1 (GT-P75xx). Signed-off-by: Ion Agorria <[email protected]> Reviewed-by: Svyatoslav Ryhel <[email protected]> Signed-off-by: Svyatoslav Ryhel <[email protected]>
2025-08-01video: panel: add Samsung S6E63M0 panel driverIon Agorria
Samsung S6E63M0 controller is found in some OLED panels like one used in the Samsung Captivate Glide. Currently only DBI C panel is implemented. Signed-off-by: Ion Agorria <[email protected]> Reviewed-by: Svyatoslav Ryhel <[email protected]> Signed-off-by: Svyatoslav Ryhel <[email protected]>
2025-08-01video: panel: add Sony L4F00430T01 panel driverIon Agorria
Sony L4F00430T01 LCD module is found in Samsung Galaxy R. The panel has a WVGA resolution (480x800) and is setup over SPI, video data comes from RGB. Signed-off-by: Ion Agorria <[email protected]> Reviewed-by: Svyatoslav Ryhel <[email protected]> Signed-off-by: Svyatoslav Ryhel <[email protected]>
2025-08-01video: tegra: parametrize PCLK and DE polaritySvyatoslav Ryhel
Configure pixel clock and data enable polarity according to panel flags. Signed-off-by: Svyatoslav Ryhel <[email protected]>
2025-06-14Merge patch series "Hex value prefix case cleanup"Tom Rini
E Shattow <[email protected]> says: Make consistent use of lowercase hexadecimal prefix '0x' throughout U-Boot. There are a few remaining uses of uppercase 'X' to denote hexadecimal prefix or placeholder in documentation and error messages. External devicetree-rebasing dts/upstream and the generated code of xilinx/zynq are ignored for the series. Link: https://lore.kernel.org/r/[email protected]
2025-06-14drivers: use lowercase hex prefix styleE Shattow
Use consistent lowercase hex prefix style in drivers/* Does not change hex prefix case in allcaps uppercase style error messages Signed-off-by: E Shattow <[email protected]>
2025-05-29Merge patch series "Start removing <env.h> from headers when not required"Tom Rini
Tom Rini <[email protected]> says: Given Simon's series at [1] I started looking in to what brings in <env.h> when not strictly required and in turn has some unintended implicit includes. This series takes care of the places where, commonly, <linux/string.h> or <env.h> itself were required along with a few other less common cases. This sets aside for the moment what to do about net-common.h and env_get_ip() as I'm not entirely sure what's best there. [1]: https://patchwork.ozlabs.org/project/uboot/list/?series=454939&state=* Link: https://lore.kernel.org/r/[email protected]
2025-05-29global: Avoid indirect inclusion of <env.h> from <command.h>Tom Rini
The include file <command.h> does not need anything from <env.h>. Furthermore, include/env.h itself includes other headers which can lead to longer indirect inclusion paths. To prepare to remove <env.h> from <command.h> fix all of the places which had relied on this indirect inclusion to instead include <env.h> directly. Reviewed-by: Mattijs Korpershoek <[email protected]> # android, bcb Reviewed-by: Jerome Forissier <[email protected]> # spawn Signed-off-by: Tom Rini <[email protected]>
2025-05-08video: backlight: add Skyworks/Analogictech AAT2870 led controller driverSvyatoslav Ryhel
Add support for Skyworks AAT2870 LED Backlight Driver and Multiple LDO Lighting Management Unit. Only backlight is supported as for now. Supported backlight level range is from 2 to 255 with step of 1. Tested-by: Ion Agorria <[email protected]> Signed-off-by: Svyatoslav Ryhel <[email protected]>
2025-05-08video: panel: add LG LH400WV3-SD04 MIPI DSI panel driverSvyatoslav Ryhel
LG LH400WV3-SD04 is a color active matrix TFT (Thin Film Transistor) liquid crystal display (LCD). The resolution of a 4" contains 480 x 800 pixels. Signed-off-by: Svyatoslav Ryhel <[email protected]>
2025-05-08video: panel: add Hitachi TX10D07VM0BAA MIPI DSI panel driverSvyatoslav Ryhel
Hitachi TX10D07VM0BAA is a color active matrix TFT (Thin Film Transistor) liquid crystal display (LCD). The resolution of a 4" contains 480 x 800 pixels. Tested-by: Ion Agorria <[email protected]> Signed-off-by: Svyatoslav Ryhel <[email protected]>
2025-05-08video: tegra: add 8-bit CPU driven protocolSvyatoslav Ryhel
Add support for 8-bit CPU driven (primary and secondary) display signal interface found in Tegra 2 and Tegra 3 SoC. Tested-by: Ion Agorria <[email protected]> Signed-off-by: Svyatoslav Ryhel <[email protected]>
2025-05-05video: support FRIDA FRD400B25025-A-CTKDario Binacchi
[backport from Linux commits 9b26d5c044d6a29ebfb1845408e0f2a7c5f89818 and 219a1f49094f50bf9c382830d06149e677f76bed] The patch adds the FRIDA FRD400B25025-A-CTK panel, which belongs to the Novatek NT35510-based panel family. Signed-off-by: Dario Binacchi <[email protected]> Reviewed-by: Patrice Chotard <[email protected]>
2025-05-02vidconsole: Avoid kerning against an unrelated characterSimon Glass
When the cursor position changes, kerning should not be used for the next character, since it can make the first displayed character shuffle left or right a bit. Clear the kern character when setting the position. Signed-off-by: Simon Glass <[email protected]>
2025-05-02video: Add a function to draw a rectangleSimon Glass
Provide a way to draw an unfilled box of a certain width. This is useful for grouping menu items together. Add a comment showing how to see the copy-framebuffer, for testing. Signed-off-by: Simon Glass <[email protected]>
2025-05-02video: Allow console output to be silencedSimon Glass
When using expo we want to be able to control the information on the display and avoid other messages (such as USB scanning) appearing. Add a 'quiet' flag for the console, to help with this. The test is a little messy since stdio is still using the original vidconsole create on start-up. So take care to use the same. Signed-off-by: Simon Glass <[email protected]>
2025-05-02video: Add a way to write a partial string to the consoleSimon Glass
When writing multiple lines of text we need to be able to control which text goes on each line. Add a new vidconsole_put_stringn() function to help with this. Signed-off-by: Simon Glass <[email protected]>
2025-05-02video: truetype: Support a limit on the width of a lineSimon Glass
Expo needs to be able to word-wrap lines so that they are displayed as the user expects. Add a limit on the width of each line and support this in the measurement algorithm. Add a log category to truetype while we are here. Signed-off-by: Simon Glass <[email protected]>
2025-05-02video: truetype: Support newlines in the measured stringSimon Glass
It is useful to be able to embed newline characters in the string and have the text measured into multiple lines. Add support for this. Signed-off-by: Simon Glass <[email protected]>
2025-05-02video: truetype: Fill in the measured lineSimon Glass
Create a measured line for the (single) line of text. Signed-off-by: Simon Glass <[email protected]>