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.
- 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.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
spl_debug.hdc_spl_filters.hdc_spl_scl_filters.hdc_spl_scl_easf_filters.h
Detected Declarations
function SPL_NAMESPACEfunction spl_easf_get_scale_ratio_to_reg_valuefunction SPL_NAMESPACEfunction SPL_NAMESPACEfunction SPL_NAMESPACEfunction SPL_NAMESPACEfunction SPL_NAMESPACEfunction SPL_NAMESPACEfunction SPL_NAMESPACEfunction SPL_NAMESPACEfunction SPL_NAMESPACEfunction SPL_NAMESPACEfunction SPL_NAMESPACEfunction SPL_NAMESPACE
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
- Immediate include surface: `spl_debug.h`, `dc_spl_filters.h`, `dc_spl_scl_filters.h`, `dc_spl_scl_easf_filters.h`.
- Detected declarations: `function SPL_NAMESPACE`, `function spl_easf_get_scale_ratio_to_reg_value`, `function SPL_NAMESPACE`, `function SPL_NAMESPACE`, `function SPL_NAMESPACE`, `function SPL_NAMESPACE`, `function SPL_NAMESPACE`, `function SPL_NAMESPACE`, `function SPL_NAMESPACE`, `function SPL_NAMESPACE`.
- Atlas domain: Driver Families / drivers/gpu.
- Implementation status: source implementation candidate.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.