Table of Contents
The purpose of this page is to describe the Linux DRM scaler driver for Xilinx Video Processing SubSystem(VPSS) soft IP.
The Linux DRM scaler driver (xlnx_scaler.c
) is part of Xilinx VPSS and implemented as DRM bridge driver. The scaler can be connected as an optional
component to any encoder of DRM framework.
Below is the example design where scaler is connected as a bridge to SDI-TX encoder.
In the diagram Blue colored arrow path indicates the HW physical connection and green colored arrow path indicates the Software flow.
|IP features||2019.1||2019.2 and above|
|One, two or four pixel-wide AXI4-Stream video interface||Yes*||Yes*|
|Video resolution support up to UHD at 60 fps||Yes||Yes|
|8, 10, 12, and 16 bits per component support||Yes**||Yes**|
|Bilinear, Bicubic and polyphase algorithms supported.||Yes***||Yes***|
Missing Features / Known Issues / Limitations in Driver
- Colorspace support options are limited to only RGB | YUV 4:4:4 | YUV 4:2:2 | YUV 4:2:0. All other colorspace options are not supported in this release.
- *The maximum samples per clock supported by the Linux Driver is 1 and 2 (also called pixels per clock). 4 pixels per clock is not supported.
- **12 and 16 bit color depth is not supported by this driver.
- **Maximum color depth supported by the VPSS Scaler soft IP driver is limited to 8-bit and 10-bit in this release.
- ***Asymmetrical scaler taps are not supported. Horizontal taps must be same as Vertical taps.
- Fixed coefficients are used in the driver. In future, this may be an input from application.
- For all bpc(8 and 10) color formats, driver uses fixed media bus format codes as mentioned in Table No.1
Video Processing Subsystem Release Notes and Known Issues
Kernel Configuration options for Driver
CONFIG_DRM_XLNX_BRIDGE_SCALER should be enabled. This depends on CONFIG_DRM_XLNX_BRIDGE
Device Tree Binding
The dts node should be defined with correct hardware configuration. How to define the node is documented here, xlnx,vpss-scaler.txt
This driver is a bridge instance to DRM encoder(eg: SDI-TX) and it can be verified only when its connected to an encoder driver.
To support bridge functionality encoder driver accepts few drm properties like height, width and color format of input and output.
Following is the table of color formats and its equivalent media bus format value to be passed as drm properties.
Refer the media bus formats here
|Format||Media Bus Value|
|YUV422 ||8207 |
Ex: Command to perform upscale 1080p@30(1920x1080) to 4K@30(3840x2160) on a 8-bit design:
Ex: Command to perform upscale 1080p@30(1920x1080) to 4K@30(3840x2160) on a 10-bit design:
Ex: Command to perform 1:1scale 1080p@60(1920x1080) to 1080p@60(1920x1080) on a 10-bit design:
Ex: Command to perform 1:1scale with interlaced 1080i@60(1920x1080) to 1080i@60(1920x1080) on a 10-bit design:
- AR65449 - LogiCORE IP Video Processing Subsystem(VPSS) - Release Notes and Known Issues for the Vivado 2015.3 tool and later versions
- 55d745 drm: xlnx: scaler: Improved quality by adding more coefficients
- Added support for ip version 2.2
- 8ca1ff drm: xlnx: scaler: Add max width and height properties
- Added support for clock framework
- Added max width and height properties
- ee1de9 drm: xlnx: scaler: Add max width and height properties
- d52ad5 drm: xlnx: scaler: Add support for clock framework
- Fixed array out of bound access
- fbb9f7 drm: xlnx: scaler: Fix array out of bound access
- Updated IP reset logic
- Added YUV420 support
- Added zero out H-phase array before changing resolution
- Initial version
- 724f25 drm: xlnx: scaler: Updating vpss-scaler reset logic
- 8ab111 drm: xlnx: scaler: Add YUV420 support
- a9ef6a drm: xlnx: scaler: Adding Zero out H-phase array before changing resolution
- 5f6e20 drm: xlnx: scaler: Adding vpss-scaler driver