drivers/media/dvb-frontends/stv0900_init.h
Source file repositories/reference/linux-study-clean/drivers/media/dvb-frontends/stv0900_init.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/media/dvb-frontends/stv0900_init.h- Extension
.h- Size
- 19289 bytes
- Lines
- 571
- 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
stv0900_priv.h
Detected Declarations
struct stv0900_car_loop_optimstruct stv0900_short_frames_car_loop_optimstruct stv0900_short_frames_car_loop_optim_vs_mod
Annotated Snippet
struct stv0900_car_loop_optim {
enum fe_stv0900_modcode modcode;
u8 car_loop_pilots_on_2;
u8 car_loop_pilots_off_2;
u8 car_loop_pilots_on_5;
u8 car_loop_pilots_off_5;
u8 car_loop_pilots_on_10;
u8 car_loop_pilots_off_10;
u8 car_loop_pilots_on_20;
u8 car_loop_pilots_off_20;
u8 car_loop_pilots_on_30;
u8 car_loop_pilots_off_30;
};
struct stv0900_short_frames_car_loop_optim {
enum fe_stv0900_modulation modulation;
u8 car_loop_cut12_2; /* Cut 1.2, SR<=3msps */
u8 car_loop_cut20_2; /* Cut 2.0, SR<3msps */
u8 car_loop_cut12_5; /* Cut 1.2, 3<SR<=7msps */
u8 car_loop_cut20_5; /* Cut 2.0, 3<SR<=7msps */
u8 car_loop_cut12_10; /* Cut 1.2, 7<SR<=15msps */
u8 car_loop_cut20_10; /* Cut 2.0, 7<SR<=15msps */
u8 car_loop_cut12_20; /* Cut 1.2, 10<SR<=25msps */
u8 car_loop_cut20_20; /* Cut 2.0, 10<SR<=25msps */
u8 car_loop_cut12_30; /* Cut 1.2, 25<SR<=45msps */
u8 car_loop_cut20_30; /* Cut 2.0, 10<SR<=45msps */
};
struct stv0900_short_frames_car_loop_optim_vs_mod {
enum fe_stv0900_modulation modulation;
u8 car_loop_2; /* SR<3msps */
u8 car_loop_5; /* 3<SR<=7msps */
u8 car_loop_10; /* 7<SR<=15msps */
u8 car_loop_20; /* 10<SR<=25msps */
u8 car_loop_30; /* 10<SR<=45msps */
};
/* Cut 1.x Tracking carrier loop carrier QPSK 1/2 to 8PSK 9/10 long Frame */
static const struct stv0900_car_loop_optim FE_STV0900_S2CarLoop[14] = {
/*Modcod 2MPon 2MPoff 5MPon 5MPoff 10MPon
10MPoff 20MPon 20MPoff 30MPon 30MPoff */
{ STV0900_QPSK_12, 0x1C, 0x0D, 0x1B, 0x2C, 0x3A,
0x1C, 0x2A, 0x3B, 0x2A, 0x1B },
{ STV0900_QPSK_35, 0x2C, 0x0D, 0x2B, 0x2C, 0x3A,
0x0C, 0x3A, 0x2B, 0x2A, 0x0B },
{ STV0900_QPSK_23, 0x2C, 0x0D, 0x2B, 0x2C, 0x0B,
0x0C, 0x3A, 0x1B, 0x2A, 0x3A },
{ STV0900_QPSK_34, 0x3C, 0x0D, 0x3B, 0x1C, 0x0B,
0x3B, 0x3A, 0x0B, 0x2A, 0x3A },
{ STV0900_QPSK_45, 0x3C, 0x0D, 0x3B, 0x1C, 0x0B,
0x3B, 0x3A, 0x0B, 0x2A, 0x3A },
{ STV0900_QPSK_56, 0x0D, 0x0D, 0x3B, 0x1C, 0x0B,
0x3B, 0x3A, 0x0B, 0x2A, 0x3A },
{ STV0900_QPSK_89, 0x0D, 0x0D, 0x3B, 0x1C, 0x1B,
0x3B, 0x3A, 0x0B, 0x2A, 0x3A },
{ STV0900_QPSK_910, 0x1D, 0x0D, 0x3B, 0x1C, 0x1B,
0x3B, 0x3A, 0x0B, 0x2A, 0x3A },
{ STV0900_8PSK_35, 0x29, 0x3B, 0x09, 0x2B, 0x38,
0x0B, 0x18, 0x1A, 0x08, 0x0A },
{ STV0900_8PSK_23, 0x0A, 0x3B, 0x29, 0x2B, 0x19,
0x0B, 0x38, 0x1A, 0x18, 0x0A },
{ STV0900_8PSK_34, 0x3A, 0x3B, 0x2A, 0x2B, 0x39,
0x0B, 0x19, 0x1A, 0x38, 0x0A },
{ STV0900_8PSK_56, 0x1B, 0x3B, 0x0B, 0x2B, 0x1A,
0x0B, 0x39, 0x1A, 0x19, 0x0A },
{ STV0900_8PSK_89, 0x3B, 0x3B, 0x0B, 0x2B, 0x2A,
0x0B, 0x39, 0x1A, 0x29, 0x39 },
{ STV0900_8PSK_910, 0x3B, 0x3B, 0x0B, 0x2B, 0x2A,
0x0B, 0x39, 0x1A, 0x29, 0x39 }
};
/* Cut 2.0 Tracking carrier loop carrier QPSK 1/2 to 8PSK 9/10 long Frame */
static const struct stv0900_car_loop_optim FE_STV0900_S2CarLoopCut20[14] = {
/* Modcod 2MPon 2MPoff 5MPon 5MPoff 10MPon
10MPoff 20MPon 20MPoff 30MPon 30MPoff */
{ STV0900_QPSK_12, 0x1F, 0x3F, 0x1E, 0x3F, 0x3D,
0x1F, 0x3D, 0x3E, 0x3D, 0x1E },
{ STV0900_QPSK_35, 0x2F, 0x3F, 0x2E, 0x2F, 0x3D,
0x0F, 0x0E, 0x2E, 0x3D, 0x0E },
{ STV0900_QPSK_23, 0x2F, 0x3F, 0x2E, 0x2F, 0x0E,
0x0F, 0x0E, 0x1E, 0x3D, 0x3D },
{ STV0900_QPSK_34, 0x3F, 0x3F, 0x3E, 0x1F, 0x0E,
0x3E, 0x0E, 0x1E, 0x3D, 0x3D },
{ STV0900_QPSK_45, 0x3F, 0x3F, 0x3E, 0x1F, 0x0E,
0x3E, 0x0E, 0x1E, 0x3D, 0x3D },
{ STV0900_QPSK_56, 0x3F, 0x3F, 0x3E, 0x1F, 0x0E,
0x3E, 0x0E, 0x1E, 0x3D, 0x3D },
Annotation
- Immediate include surface: `stv0900_priv.h`.
- Detected declarations: `struct stv0900_car_loop_optim`, `struct stv0900_short_frames_car_loop_optim`, `struct stv0900_short_frames_car_loop_optim_vs_mod`.
- 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.