drivers/gpu/drm/amd/display/dc/sspl/dc_spl_scl_easf_filters.c

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

File Facts

System
Linux kernel
Corpus path
drivers/gpu/drm/amd/display/dc/sspl/dc_spl_scl_easf_filters.c
Extension
.c
Size
87296 bytes
Lines
2590
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

// SPDX-License-Identifier: MIT
//
// Copyright 2024 Advanced Micro Devices, Inc.

#include "spl_debug.h"
#include "dc_spl_filters.h"
#include "dc_spl_scl_filters.h"
#include "dc_spl_scl_easf_filters.h"

//========================================================
// <using>			gen_scaler_coeffs_cnf_file.m
// <using>			make_test_script.m
// <date>			03-Apr-2024
// <coeffDescrip>	3t_64p_LanczosEd_p_0.3_p_10qb_
// <num_taps>		3
// <num_phases>		64
// <scale_ratio>	 input/output = 0.300000000000
// <CoefType>		LanczosEd
// <CoefQuant>		S1.10
//========================================================
static const uint16_t easf_filter_3tap_64p_ratio_0_30[99] = {
	0x0200, 0x0200, 0x0000,
	0x01F6, 0x0206, 0x0004,
	0x01EC, 0x020B, 0x0009,
	0x01E2, 0x0211, 0x000D,
	0x01D8, 0x0216, 0x0012,
	0x01CE, 0x021C, 0x0016,
	0x01C4, 0x0221, 0x001B,
	0x01BA, 0x0226, 0x0020,
	0x01B0, 0x022A, 0x0026,
	0x01A6, 0x022F, 0x002B,
	0x019C, 0x0233, 0x0031,
	0x0192, 0x0238, 0x0036,
	0x0188, 0x023C, 0x003C,
	0x017E, 0x0240, 0x0042,
	0x0174, 0x0244, 0x0048,
	0x016A, 0x0248, 0x004E,
	0x0161, 0x024A, 0x0055,
	0x0157, 0x024E, 0x005B,
	0x014D, 0x0251, 0x0062,
	0x0144, 0x0253, 0x0069,
	0x013A, 0x0256, 0x0070,
	0x0131, 0x0258, 0x0077,
	0x0127, 0x025B, 0x007E,
	0x011E, 0x025C, 0x0086,
	0x0115, 0x025E, 0x008D,
	0x010B, 0x0260, 0x0095,
	0x0102, 0x0262, 0x009C,
	0x00F9, 0x0263, 0x00A4,
	0x00F0, 0x0264, 0x00AC,
	0x00E7, 0x0265, 0x00B4,
	0x00DF, 0x0264, 0x00BD,
	0x00D6, 0x0265, 0x00C5,
	0x00CD, 0x0266, 0x00CD,
};

//========================================================
// <using>			gen_scaler_coeffs_cnf_file.m
// <using>			make_test_script.m
// <date>			03-Apr-2024
// <coeffDescrip>	3t_64p_LanczosEd_p_0.4_p_10qb_
// <num_taps>		3
// <num_phases>		64
// <scale_ratio>	 input/output = 0.400000000000
// <CoefType>		LanczosEd
// <CoefQuant>		S1.10
//========================================================
static const uint16_t easf_filter_3tap_64p_ratio_0_40[99] = {
	0x0200, 0x0200, 0x0000,
	0x01F6, 0x0206, 0x0004,
	0x01EB, 0x020E, 0x0007,
	0x01E1, 0x0214, 0x000B,
	0x01D7, 0x021A, 0x000F,
	0x01CD, 0x0220, 0x0013,
	0x01C2, 0x0226, 0x0018,
	0x01B8, 0x022C, 0x001C,
	0x01AE, 0x0231, 0x0021,
	0x01A3, 0x0237, 0x0026,
	0x0199, 0x023C, 0x002B,
	0x018F, 0x0240, 0x0031,
	0x0185, 0x0245, 0x0036,
	0x017A, 0x024A, 0x003C,
	0x0170, 0x024F, 0x0041,
	0x0166, 0x0253, 0x0047,
	0x015C, 0x0257, 0x004D,
	0x0152, 0x025A, 0x0054,
	0x0148, 0x025E, 0x005A,
	0x013E, 0x0261, 0x0061,
	0x0134, 0x0264, 0x0068,
	0x012B, 0x0266, 0x006F,

Annotation

Implementation Notes