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.

Dependency Surface

Detected Declarations

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

Implementation Notes