class PipeScalerControlSkylake

Defined at line 39 of file ../../src/graphics/display/drivers/intel-display/registers-pipe-scaler.h

PS_CTRL (Pipe Scaler Control) for Skylake / Kaby Lake

A Pipe Scaler can be used to scale the output of a display pipe or a display

plane. It can scale up / down the resolution and / or scale up the

downsampled chroma pixels or subplanes (for YUV images).

Pipe A and B has two scalers, and Pipe C has one scaler. Each scaler can

operate on the output of the entire pipe, or on the output of any of its

universal planes (but not the cursor plane).

This register is double buffered. See PipeScalerWindowSize for arming and

dis-arming double-buffer updates.

This register has bits that are reserved but not MBZ (must be zero). So, it

can only be safely updated via read-modify-write operations.

Kaby Lake: IHD-OS-KBL-Vol 2c-1.17 Part 2 Pages 647-650

Skylake: IHD-OS-SKL-Vol 2c-05.16 Part 2, Pages 640-643

Public Members

 field_is_enabled_48
 field_mode_65
 field_scaled_plane_index_81
 field_filter_selection_107
static const uint32_t kBaseAddr
static const uint32_t kMinSrcSizePx
static const uint32_t kMaxSrcWidthPx
static const uint32_t kPipeABScalersAvailable
static const uint32_t kPipeCScalersAvailable
static const float k7x5MaxRatio
static const float kDynamicMaxRatio
static const float kDynamicMaxVerticalRatio2049

Public Methods

template <, >
typename SelfType::ValueType is_enabled ()

Enables the scaler.

Before enabling the scaler, software should make sure that the scaler

configuration fulfills all constraints as specified in PS_CTRL register

documentation.

Defined at line 48 of file ../../src/graphics/display/drivers/intel-display/registers-pipe-scaler.h

template <, >
SelfType & set_is_enabled (typename SelfType::ValueType val)

Enables the scaler.

Before enabling the scaler, software should make sure that the scaler

configuration fulfills all constraints as specified in PS_CTRL register

documentation.

Defined at line 48 of file ../../src/graphics/display/drivers/intel-display/registers-pipe-scaler.h

template <, >
ScalerMode mode ()

Defined at line 65 of file ../../src/graphics/display/drivers/intel-display/registers-pipe-scaler.h

template <, >
SelfType & set_mode (ScalerMode val)

Defined at line 65 of file ../../src/graphics/display/drivers/intel-display/registers-pipe-scaler.h

template <, >
typename SelfType::ValueType scaled_plane_index ()

Selects the index of the plane where the output is scaled. An index of 0

indicates that the output of the whole pipe is scaled.

The value of `scaled_plane_index` must not exceed the number of

planes (excluding cursor plane) supported by the pipe. On Kaby Lake and

Skylake, each pipe has 3 non-cursor planes.

The caller must guarantee that the plane / pipe fulfills all the

constraints below:

- The input size of the pipe / plane must be at least 8 scanlines.

- IF (Interlaced fetch) mode must be disabled.

- Keying can only be enabled if the scaling factor is 1.

- The pixel format must not be 8-bit indexed or XR_BIAS.

- Floating point source pixel values must be within the [0.0, 1.0] range.

Defined at line 81 of file ../../src/graphics/display/drivers/intel-display/registers-pipe-scaler.h

template <, >
SelfType & set_scaled_plane_index (typename SelfType::ValueType val)

Selects the index of the plane where the output is scaled. An index of 0

indicates that the output of the whole pipe is scaled.

The value of `scaled_plane_index` must not exceed the number of

planes (excluding cursor plane) supported by the pipe. On Kaby Lake and

Skylake, each pipe has 3 non-cursor planes.

The caller must guarantee that the plane / pipe fulfills all the

constraints below:

- The input size of the pipe / plane must be at least 8 scanlines.

- IF (Interlaced fetch) mode must be disabled.

- Keying can only be enabled if the scaling factor is 1.

- The pixel format must not be 8-bit indexed or XR_BIAS.

- Floating point source pixel values must be within the [0.0, 1.0] range.

Defined at line 81 of file ../../src/graphics/display/drivers/intel-display/registers-pipe-scaler.h

template <, >
FilterSelection filter_selection ()

Defined at line 107 of file ../../src/graphics/display/drivers/intel-display/registers-pipe-scaler.h

template <, >
SelfType & set_filter_selection (FilterSelection val)

Defined at line 107 of file ../../src/graphics/display/drivers/intel-display/registers-pipe-scaler.h

Enumerations

enum ScalerMode
Name Value
kDynamic 0b00
k7x5 0b01
kNv12 0b10

Defined at line 50 of file ../../src/graphics/display/drivers/intel-display/registers-pipe-scaler.h

enum FilterSelection
Name Value
kMedium 0b00
kMedium2 0b01
kEdgeEnhance 0b10
kBilinear 0b11

Defined at line 83 of file ../../src/graphics/display/drivers/intel-display/registers-pipe-scaler.h

Records