Table of Contents


The purpose of this page is to describe the Linux DRM scaler driver for Xilinx Video Processing SubSystem(VPSS) soft IP.

Driver Overview

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/Driver Features

IP features2019.12019.2 and above
IP version2.02.2
One, two or four pixel-wide AXI4-Stream video interfaceYes*Yes*
Video resolution support up to UHD at 60 fpsYesYes
8, 10, 12, and 16 bits per component supportYes**Yes**
Bilinear, Bicubic and polyphase algorithms supported.Yes***Yes***

Missing Features / Known Issues / Limitations in Driver

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

Test Procedure

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 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

FormatMedia Bus Value
RGB4106
YUV4448228
YUV4208448
YUV422 8207 

Table No:1

Example commands:

Ex: Command to perform upscale 1080p@30(1920x1080) to 4K@30(3840x2160) on a 8-bit design:

./modetest -M xlnx -s 30:1920x1080-30@YUYV -w 30:sdi_mode:4 -w 30:sdi_data_stream:8 -w 30:is_frac:0 -w 30:height_out:2160 -w 30:width_out:3840  -w 30:in_fmt:8207 -w 30:out_fmt:8207

Ex: Command to perform upscale 1080p@30(1920x1080) to 4K@30(3840x2160) on a 10-bit design:

./modetest -M xlnx -s 30:1920x1080-30@XV20 -w 30:sdi_mode:4 -w 30:sdi_data_stream:8 -w 30:is_frac:0 -w 30:height_out:2160 -w 30:width_out:3840  -w 30:in_fmt:8207 -w 30:out_fmt:8207

Ex: Command to perform 1:1scale 1080p@60(1920x1080) to 1080p@60(1920x1080) on a 10-bit design:

./modetest -M xlnx -s 30:1920x1080-60@XV20 -w 30:sdi_mode:2 -w 30:sdi_data_stream:2 -w 30:is_frac:0 -w 30:height_out:1080 -w 30:width_out:1920  -w 30:in_fmt:8207 -w 30:out_fmt:8207

Ex: Command to perform 1:1scale with interlaced  1080i@60(1920x1080) to 1080i@60(1920x1080) on a 10-bit design:

./modetest -M xlnx -s 30:1920x1080i-60@XV20 -w 30:sdi_mode:0 -w 30:sdi_data_stream:2 -w 30:is_frac:0 -w 30:height_out:540 -w 30:width_out:1920  -w 30:in_fmt:8207 -w 30:out_fmt:8207 -v

Known Issues

Change log

2024.1

2023.2

2023.1

2022.2

2022.1

2021.2

2021.1

2020.2

2020.1

2019.2

2019.1


2018.3

2018.2

2018.1

Related Links