drivers/media/tuners/tda18271-maps.c
Source file repositories/reference/linux-study-clean/drivers/media/tuners/tda18271-maps.c
File Facts
- System
- Linux kernel
- Corpus path
drivers/media/tuners/tda18271-maps.c- Extension
.c- Size
- 44811 bytes
- Lines
- 1292
- Domain
- Driver Families
- Bucket
- drivers/media
- 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
tda18271-priv.h
Detected Declarations
struct tda18271_pll_mapstruct tda18271_mapstruct tda18271_thermo_mapstruct tda18271_cid_target_mapstruct tda18271_map_layoutfunction tda18271_lookup_thermometerfunction tda18271_lookup_cid_targetfunction tda18271_lookup_rf_bandfunction tda18271_lookup_pll_mapfunction tda18271_lookup_mapfunction tda18271_assign_map_layout
Annotated Snippet
struct tda18271_pll_map {
u32 lomax;
u8 pd; /* post div */
u8 d; /* div */
};
struct tda18271_map {
u32 rfmax;
u8 val;
};
/*---------------------------------------------------------------------*/
static struct tda18271_pll_map tda18271c1_main_pll[] = {
{ .lomax = 32000, .pd = 0x5f, .d = 0xf0 },
{ .lomax = 35000, .pd = 0x5e, .d = 0xe0 },
{ .lomax = 37000, .pd = 0x5d, .d = 0xd0 },
{ .lomax = 41000, .pd = 0x5c, .d = 0xc0 },
{ .lomax = 44000, .pd = 0x5b, .d = 0xb0 },
{ .lomax = 49000, .pd = 0x5a, .d = 0xa0 },
{ .lomax = 54000, .pd = 0x59, .d = 0x90 },
{ .lomax = 61000, .pd = 0x58, .d = 0x80 },
{ .lomax = 65000, .pd = 0x4f, .d = 0x78 },
{ .lomax = 70000, .pd = 0x4e, .d = 0x70 },
{ .lomax = 75000, .pd = 0x4d, .d = 0x68 },
{ .lomax = 82000, .pd = 0x4c, .d = 0x60 },
{ .lomax = 89000, .pd = 0x4b, .d = 0x58 },
{ .lomax = 98000, .pd = 0x4a, .d = 0x50 },
{ .lomax = 109000, .pd = 0x49, .d = 0x48 },
{ .lomax = 123000, .pd = 0x48, .d = 0x40 },
{ .lomax = 131000, .pd = 0x3f, .d = 0x3c },
{ .lomax = 141000, .pd = 0x3e, .d = 0x38 },
{ .lomax = 151000, .pd = 0x3d, .d = 0x34 },
{ .lomax = 164000, .pd = 0x3c, .d = 0x30 },
{ .lomax = 179000, .pd = 0x3b, .d = 0x2c },
{ .lomax = 197000, .pd = 0x3a, .d = 0x28 },
{ .lomax = 219000, .pd = 0x39, .d = 0x24 },
{ .lomax = 246000, .pd = 0x38, .d = 0x20 },
{ .lomax = 263000, .pd = 0x2f, .d = 0x1e },
{ .lomax = 282000, .pd = 0x2e, .d = 0x1c },
{ .lomax = 303000, .pd = 0x2d, .d = 0x1a },
{ .lomax = 329000, .pd = 0x2c, .d = 0x18 },
{ .lomax = 359000, .pd = 0x2b, .d = 0x16 },
{ .lomax = 395000, .pd = 0x2a, .d = 0x14 },
{ .lomax = 438000, .pd = 0x29, .d = 0x12 },
{ .lomax = 493000, .pd = 0x28, .d = 0x10 },
{ .lomax = 526000, .pd = 0x1f, .d = 0x0f },
{ .lomax = 564000, .pd = 0x1e, .d = 0x0e },
{ .lomax = 607000, .pd = 0x1d, .d = 0x0d },
{ .lomax = 658000, .pd = 0x1c, .d = 0x0c },
{ .lomax = 718000, .pd = 0x1b, .d = 0x0b },
{ .lomax = 790000, .pd = 0x1a, .d = 0x0a },
{ .lomax = 877000, .pd = 0x19, .d = 0x09 },
{ .lomax = 987000, .pd = 0x18, .d = 0x08 },
{ .lomax = 0, .pd = 0x00, .d = 0x00 }, /* end */
};
static struct tda18271_pll_map tda18271c2_main_pll[] = {
{ .lomax = 33125, .pd = 0x57, .d = 0xf0 },
{ .lomax = 35500, .pd = 0x56, .d = 0xe0 },
{ .lomax = 38188, .pd = 0x55, .d = 0xd0 },
{ .lomax = 41375, .pd = 0x54, .d = 0xc0 },
{ .lomax = 45125, .pd = 0x53, .d = 0xb0 },
{ .lomax = 49688, .pd = 0x52, .d = 0xa0 },
{ .lomax = 55188, .pd = 0x51, .d = 0x90 },
{ .lomax = 62125, .pd = 0x50, .d = 0x80 },
{ .lomax = 66250, .pd = 0x47, .d = 0x78 },
{ .lomax = 71000, .pd = 0x46, .d = 0x70 },
{ .lomax = 76375, .pd = 0x45, .d = 0x68 },
{ .lomax = 82750, .pd = 0x44, .d = 0x60 },
{ .lomax = 90250, .pd = 0x43, .d = 0x58 },
{ .lomax = 99375, .pd = 0x42, .d = 0x50 },
{ .lomax = 110375, .pd = 0x41, .d = 0x48 },
{ .lomax = 124250, .pd = 0x40, .d = 0x40 },
{ .lomax = 132500, .pd = 0x37, .d = 0x3c },
{ .lomax = 142000, .pd = 0x36, .d = 0x38 },
{ .lomax = 152750, .pd = 0x35, .d = 0x34 },
{ .lomax = 165500, .pd = 0x34, .d = 0x30 },
{ .lomax = 180500, .pd = 0x33, .d = 0x2c },
{ .lomax = 198750, .pd = 0x32, .d = 0x28 },
{ .lomax = 220750, .pd = 0x31, .d = 0x24 },
{ .lomax = 248500, .pd = 0x30, .d = 0x20 },
{ .lomax = 265000, .pd = 0x27, .d = 0x1e },
{ .lomax = 284000, .pd = 0x26, .d = 0x1c },
{ .lomax = 305500, .pd = 0x25, .d = 0x1a },
{ .lomax = 331000, .pd = 0x24, .d = 0x18 },
{ .lomax = 361000, .pd = 0x23, .d = 0x16 },
{ .lomax = 397500, .pd = 0x22, .d = 0x14 },
{ .lomax = 441500, .pd = 0x21, .d = 0x12 },
{ .lomax = 497000, .pd = 0x20, .d = 0x10 },
Annotation
- Immediate include surface: `tda18271-priv.h`.
- Detected declarations: `struct tda18271_pll_map`, `struct tda18271_map`, `struct tda18271_thermo_map`, `struct tda18271_cid_target_map`, `struct tda18271_map_layout`, `function tda18271_lookup_thermometer`, `function tda18271_lookup_cid_target`, `function tda18271_lookup_rf_band`, `function tda18271_lookup_pll_map`, `function tda18271_lookup_map`.
- Atlas domain: Driver Families / drivers/media.
- 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.