drivers/gpu/drm/amd/display/dc/dce/dce_scl_filters.c

Source file repositories/reference/linux-study-clean/drivers/gpu/drm/amd/display/dc/dce/dce_scl_filters.c

File Facts

System
Linux kernel
Corpus path
drivers/gpu/drm/amd/display/dc/dce/dce_scl_filters.c
Extension
.c
Size
54775 bytes
Lines
1446
Domain
Driver Families
Bucket
drivers/gpu
Inferred role
Driver Families: implementation source
Status
source implementation candidate

Why This File Exists

Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.

Dependency Surface

Detected Declarations

Annotated Snippet

#include "transform.h"

//=========================================
// <num_taps>    = 2
// <num_phases>  = 16
// <scale_ratio> = 0.833333 (input/output)
// <sharpness>   = 0
// <CoefType>    = ModifiedLanczos
// <CoefQuant>   = s1.10
// <CoefOut>     = s1.12
//=========================================
static const uint16_t filter_2tap_16p[18] = {
		0x1000, 0x0000,
		0x0FF0, 0x0010,
		0x0FB0, 0x0050,
		0x0F34, 0x00CC,
		0x0E68, 0x0198,
		0x0D44, 0x02BC,
		0x0BC4, 0x043C,
		0x09FC, 0x0604,
		0x0800, 0x0800
};

//=========================================
// <num_taps>    = 3
// <num_phases>  = 16
// <scale_ratio> = 0.83333 (input/output)
// <sharpness>   = 0
// <CoefType>    = ModifiedLanczos
// <CoefQuant>   = 1.10
// <CoefOut>     = 1.12
//=========================================
static const uint16_t filter_3tap_16p_upscale[27] = {
		0x0804, 0x07FC, 0x0000,
		0x06AC, 0x0978, 0x3FDC,
		0x055C, 0x0AF0, 0x3FB4,
		0x0420, 0x0C50, 0x3F90,
		0x0300, 0x0D88, 0x3F78,
		0x0200, 0x0E90, 0x3F70,
		0x0128, 0x0F5C, 0x3F7C,
		0x007C, 0x0FD8, 0x3FAC,
		0x0000, 0x1000, 0x0000
};

//=========================================
// <num_taps>    = 3
// <num_phases>  = 16
// <scale_ratio> = 1.16666 (input/output)
// <sharpness>   = 0
// <CoefType>    = ModifiedLanczos
// <CoefQuant>   = 1.10
// <CoefOut>     = 1.12
//=========================================
static const uint16_t filter_3tap_16p_116[27] = {
		0x0804, 0x07FC, 0x0000,
		0x0700, 0x0914, 0x3FEC,
		0x0604, 0x0A1C, 0x3FE0,
		0x050C, 0x0B14, 0x3FE0,
		0x041C, 0x0BF4, 0x3FF0,
		0x0340, 0x0CB0, 0x0010,
		0x0274, 0x0D3C, 0x0050,
		0x01C0, 0x0D94, 0x00AC,
		0x0128, 0x0DB4, 0x0124
};

//=========================================
// <num_taps>    = 3
// <num_phases>  = 16
// <scale_ratio> = 1.49999 (input/output)
// <sharpness>   = 0
// <CoefType>    = ModifiedLanczos
// <CoefQuant>   = 1.10
// <CoefOut>     = 1.12
//=========================================
static const uint16_t filter_3tap_16p_149[27] = {
		0x0804, 0x07FC, 0x0000,
		0x0730, 0x08CC, 0x0004,
		0x0660, 0x098C, 0x0014,
		0x0590, 0x0A3C, 0x0034,
		0x04C4, 0x0AD4, 0x0068,
		0x0400, 0x0B54, 0x00AC,
		0x0348, 0x0BB0, 0x0108,
		0x029C, 0x0BEC, 0x0178,
		0x0200, 0x0C00, 0x0200
};

//=========================================
// <num_taps>    = 3
// <num_phases>  = 16
// <scale_ratio> = 1.83332 (input/output)

Annotation

Implementation Notes