drivers/media/dvb-frontends/cxd2880/cxd2880_tnrdmd.h
Source file repositories/reference/linux-study-clean/drivers/media/dvb-frontends/cxd2880/cxd2880_tnrdmd.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/media/dvb-frontends/cxd2880/cxd2880_tnrdmd.h- Extension
.h- Size
- 10389 bytes
- Lines
- 366
- 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.
- Uses kernel synchronization; read lock ordering, sleepability, and interrupt context assumptions before translating.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/atomic.hcxd2880_common.hcxd2880_io.hcxd2880_dtv.hcxd2880_dvbt.hcxd2880_dvbt2.h
Detected Declarations
struct cxd2880_tnrdmd_cfg_memstruct cxd2880_tnrdmd_pid_cfgstruct cxd2880_tnrdmd_pid_ftr_cfgstruct cxd2880_tnrdmd_lna_thrsstruct cxd2880_tnrdmd_lna_thrs_tbl_airstruct cxd2880_tnrdmd_lna_thrs_tbl_cablestruct cxd2880_tnrdmd_create_paramstruct cxd2880_tnrdmd_diver_create_paramstruct cxd2880_tnrdmdenum cxd2880_tnrdmd_chip_idenum cxd2880_tnrdmd_stateenum cxd2880_tnrdmd_divermodeenum cxd2880_tnrdmd_clockmodeenum cxd2880_tnrdmd_tsout_ifenum cxd2880_tnrdmd_xtal_shareenum cxd2880_tnrdmd_spectrum_senseenum cxd2880_tnrdmd_cfg_idenum cxd2880_tnrdmd_lock_resultenum cxd2880_tnrdmd_gpio_modeenum cxd2880_tnrdmd_serial_ts_clk
Annotated Snippet
struct cxd2880_tnrdmd_cfg_mem {
enum cxd2880_io_tgt tgt;
u8 bank;
u8 address;
u8 value;
u8 bit_mask;
};
struct cxd2880_tnrdmd_pid_cfg {
u8 is_en;
u16 pid;
};
struct cxd2880_tnrdmd_pid_ftr_cfg {
u8 is_negative;
struct cxd2880_tnrdmd_pid_cfg pid_cfg[32];
};
struct cxd2880_tnrdmd_lna_thrs {
u8 off_on;
u8 on_off;
};
struct cxd2880_tnrdmd_lna_thrs_tbl_air {
struct cxd2880_tnrdmd_lna_thrs thrs[24];
};
struct cxd2880_tnrdmd_lna_thrs_tbl_cable {
struct cxd2880_tnrdmd_lna_thrs thrs[32];
};
struct cxd2880_tnrdmd_create_param {
enum cxd2880_tnrdmd_tsout_if ts_output_if;
u8 en_internal_ldo;
enum cxd2880_tnrdmd_xtal_share xtal_share_type;
u8 xosc_cap;
u8 xosc_i;
u8 is_cxd2881gg;
u8 stationary_use;
};
struct cxd2880_tnrdmd_diver_create_param {
enum cxd2880_tnrdmd_tsout_if ts_output_if;
u8 en_internal_ldo;
u8 xosc_cap_main;
u8 xosc_i_main;
u8 xosc_i_sub;
u8 is_cxd2881gg;
u8 stationary_use;
};
struct cxd2880_tnrdmd {
struct cxd2880_tnrdmd *diver_sub;
struct cxd2880_io *io;
struct cxd2880_tnrdmd_create_param create_param;
enum cxd2880_tnrdmd_divermode diver_mode;
enum cxd2880_tnrdmd_clockmode fixed_clk_mode;
u8 is_cable_input;
u8 en_fef_intmtnt_base;
u8 en_fef_intmtnt_lite;
u8 blind_tune_dvbt2_first;
int (*rf_lvl_cmpstn)(struct cxd2880_tnrdmd *tnr_dmd,
int *rf_lvl_db);
struct cxd2880_tnrdmd_lna_thrs_tbl_air *lna_thrs_tbl_air;
struct cxd2880_tnrdmd_lna_thrs_tbl_cable *lna_thrs_tbl_cable;
u8 srl_ts_clk_mod_cnts;
enum cxd2880_tnrdmd_serial_ts_clk srl_ts_clk_frq;
u8 ts_byte_clk_manual_setting;
u8 is_ts_backwards_compatible_mode;
struct cxd2880_tnrdmd_cfg_mem cfg_mem[CXD2880_TNRDMD_MAX_CFG_MEM_COUNT];
u8 cfg_mem_last_entry;
struct cxd2880_tnrdmd_pid_ftr_cfg pid_ftr_cfg;
u8 pid_ftr_cfg_en;
void *user;
enum cxd2880_tnrdmd_chip_id chip_id;
enum cxd2880_tnrdmd_state state;
enum cxd2880_tnrdmd_clockmode clk_mode;
u32 frequency_khz;
enum cxd2880_dtv_sys sys;
enum cxd2880_dtv_bandwidth bandwidth;
u8 scan_mode;
atomic_t cancel;
};
int cxd2880_tnrdmd_create(struct cxd2880_tnrdmd *tnr_dmd,
struct cxd2880_io *io,
struct cxd2880_tnrdmd_create_param
*create_param);
int cxd2880_tnrdmd_diver_create(struct cxd2880_tnrdmd
Annotation
- Immediate include surface: `linux/atomic.h`, `cxd2880_common.h`, `cxd2880_io.h`, `cxd2880_dtv.h`, `cxd2880_dvbt.h`, `cxd2880_dvbt2.h`.
- Detected declarations: `struct cxd2880_tnrdmd_cfg_mem`, `struct cxd2880_tnrdmd_pid_cfg`, `struct cxd2880_tnrdmd_pid_ftr_cfg`, `struct cxd2880_tnrdmd_lna_thrs`, `struct cxd2880_tnrdmd_lna_thrs_tbl_air`, `struct cxd2880_tnrdmd_lna_thrs_tbl_cable`, `struct cxd2880_tnrdmd_create_param`, `struct cxd2880_tnrdmd_diver_create_param`, `struct cxd2880_tnrdmd`, `enum cxd2880_tnrdmd_chip_id`.
- Atlas domain: Driver Families / drivers/media.
- Implementation status: source implementation candidate.
- Synchronization appears in or near this file; preserve lock ordering, sleepability, and interrupt-context constraints.
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.