drivers/media/dvb-frontends/dib3000mb_priv.h
Source file repositories/reference/linux-study-clean/drivers/media/dvb-frontends/dib3000mb_priv.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/media/dvb-frontends/dib3000mb_priv.h- Extension
.h- Size
- 15732 bytes
- Lines
- 552
- 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
- No C-style include directives detected by the generator.
Detected Declarations
struct dib3000_stateenum dib3000mb_impulse_noise_type
Annotated Snippet
struct dib3000_state {
struct i2c_adapter* i2c;
/* configuration settings */
struct dib3000_config config;
struct dvb_frontend frontend;
int timing_offset;
int timing_offset_comp_done;
u32 last_tuned_bw;
u32 last_tuned_freq;
};
/* register addresses and some of their default values */
/* restart subsystems */
#define DIB3000MB_REG_RESTART ( 0)
#define DIB3000MB_RESTART_OFF ( 0)
#define DIB3000MB_RESTART_AUTO_SEARCH (1 << 1)
#define DIB3000MB_RESTART_CTRL (1 << 2)
#define DIB3000MB_RESTART_AGC (1 << 3)
/* FFT size */
#define DIB3000MB_REG_FFT ( 1)
/* Guard time */
#define DIB3000MB_REG_GUARD_TIME ( 2)
/* QAM */
#define DIB3000MB_REG_QAM ( 3)
/* Alpha coefficient high priority Viterbi algorithm */
#define DIB3000MB_REG_VIT_ALPHA ( 4)
/* spectrum inversion */
#define DIB3000MB_REG_DDS_INV ( 5)
/* DDS frequency value (IF position) ad ? values don't match reg_3000mb.txt */
#define DIB3000MB_REG_DDS_FREQ_MSB ( 6)
#define DIB3000MB_REG_DDS_FREQ_LSB ( 7)
#define DIB3000MB_DDS_FREQ_MSB ( 178)
#define DIB3000MB_DDS_FREQ_LSB ( 8990)
/* timing frequency (carrier spacing) */
static u16 dib3000mb_reg_timing_freq[] = { 8,9 };
static u16 dib3000mb_timing_freq[][2] = {
{ 126 , 48873 }, /* 6 MHz */
{ 147 , 57019 }, /* 7 MHz */
{ 168 , 65164 }, /* 8 MHz */
};
/* impulse noise parameter */
/* 36 ??? */
static u16 dib3000mb_reg_impulse_noise[] = { 10,11,12,15,36 };
enum dib3000mb_impulse_noise_type {
DIB3000MB_IMPNOISE_OFF,
DIB3000MB_IMPNOISE_MOBILE,
DIB3000MB_IMPNOISE_FIXED,
DIB3000MB_IMPNOISE_DEFAULT
};
static u16 dib3000mb_impulse_noise_values[][5] = {
{ 0x0000, 0x0004, 0x0014, 0x01ff, 0x0399 }, /* off */
{ 0x0001, 0x0004, 0x0014, 0x01ff, 0x037b }, /* mobile */
{ 0x0001, 0x0004, 0x0020, 0x01bd, 0x0399 }, /* fixed */
{ 0x0000, 0x0002, 0x000a, 0x01ff, 0x0399 }, /* default */
};
/*
* Dual Automatic-Gain-Control
* - gains RF in tuner (AGC1)
* - gains IF after filtering (AGC2)
*/
/* also from 16 to 18 */
static u16 dib3000mb_reg_agc_gain[] = {
19,20,21,22,23,24,25,26,27,28,29,30,31,32
};
static u16 dib3000mb_default_agc_gain[] =
{ 0x0001, 52429, 623, 128, 166, 195, 61, /* RF ??? */
0x0001, 53766, 38011, 0, 90, 33, 23 }; /* IF ??? */
/* phase noise */
/* 36 is set when setting the impulse noise */
static u16 dib3000mb_reg_phase_noise[] = { 33,34,35,37,38 };
Annotation
- Detected declarations: `struct dib3000_state`, `enum dib3000mb_impulse_noise_type`.
- 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.