drivers/media/dvb-frontends/helene.c
Source file repositories/reference/linux-study-clean/drivers/media/dvb-frontends/helene.c
File Facts
- System
- Linux kernel
- Corpus path
drivers/media/dvb-frontends/helene.c- Extension
.c- Size
- 32134 bytes
- Lines
- 1121
- Domain
- Driver Families
- Bucket
- drivers/media
- Inferred role
- Driver Families: exported/initcall integration point
- Status
- integration 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.
- Exports symbols or registers init work; inspect boot/module ordering and who consumes the exported contract.
- Allocates kernel memory; connect allocation flags and lifetime to context constraints.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/slab.hlinux/module.hlinux/dvb/frontend.hlinux/types.hhelene.hmedia/dvb_frontend.h
Detected Declarations
struct helene_privstruct helene_terr_adjust_param_tenum helene_stateenum helene_tv_system_tfunction helene_i2c_debugfunction helene_write_regsfunction helene_write_regfunction helene_read_regsfunction helene_read_regfunction helene_set_reg_bitsfunction helene_enter_power_savefunction helene_leave_power_savefunction helene_initfunction helene_releasefunction helene_sleepfunction helene_get_tv_systemfunction helene_set_params_sfunction helene_set_params_tfunction helene_set_paramsfunction helene_get_frequencyfunction helene_x_ponfunction helene_probeexport helene_attach_sexport helene_attach
Annotated Snippet
struct helene_priv {
u32 frequency;
u8 i2c_address;
struct i2c_adapter *i2c;
enum helene_state state;
void *set_tuner_data;
int (*set_tuner)(void *, int);
enum helene_xtal xtal;
};
#define TERR_INTERNAL_LOOPFILTER_AVAILABLE(tv_system) \
(((tv_system) != SONY_HELENE_DTV_DVBC_6) && \
((tv_system) != SONY_HELENE_DTV_DVBC_8)\
&& ((tv_system) != SONY_HELENE_DTV_DVBC2_6) && \
((tv_system) != SONY_HELENE_DTV_DVBC2_8))
#define HELENE_AUTO 0xff
#define HELENE_OFFSET(ofs) ((u8)(ofs) & 0x1F)
#define HELENE_BW_6 0x00
#define HELENE_BW_7 0x01
#define HELENE_BW_8 0x02
#define HELENE_BW_1_7 0x03
enum helene_tv_system_t {
SONY_HELENE_TV_SYSTEM_UNKNOWN,
/* Terrestrial Analog */
SONY_HELENE_ATV_MN_EIAJ,
/**< System-M (Japan) (IF: Fp=5.75MHz in default) */
SONY_HELENE_ATV_MN_SAP,
/**< System-M (US) (IF: Fp=5.75MHz in default) */
SONY_HELENE_ATV_MN_A2,
/**< System-M (Korea) (IF: Fp=5.9MHz in default) */
SONY_HELENE_ATV_BG,
/**< System-B/G (IF: Fp=7.3MHz in default) */
SONY_HELENE_ATV_I,
/**< System-I (IF: Fp=7.85MHz in default) */
SONY_HELENE_ATV_DK,
/**< System-D/K (IF: Fp=7.85MHz in default) */
SONY_HELENE_ATV_L,
/**< System-L (IF: Fp=7.85MHz in default) */
SONY_HELENE_ATV_L_DASH,
/**< System-L DASH (IF: Fp=2.2MHz in default) */
/* Terrestrial/Cable Digital */
SONY_HELENE_DTV_8VSB,
/**< ATSC 8VSB (IF: Fc=3.7MHz in default) */
SONY_HELENE_DTV_QAM,
/**< US QAM (IF: Fc=3.7MHz in default) */
SONY_HELENE_DTV_ISDBT_6,
/**< ISDB-T 6MHzBW (IF: Fc=3.55MHz in default) */
SONY_HELENE_DTV_ISDBT_7,
/**< ISDB-T 7MHzBW (IF: Fc=4.15MHz in default) */
SONY_HELENE_DTV_ISDBT_8,
/**< ISDB-T 8MHzBW (IF: Fc=4.75MHz in default) */
SONY_HELENE_DTV_DVBT_5,
/**< DVB-T 5MHzBW (IF: Fc=3.6MHz in default) */
SONY_HELENE_DTV_DVBT_6,
/**< DVB-T 6MHzBW (IF: Fc=3.6MHz in default) */
SONY_HELENE_DTV_DVBT_7,
/**< DVB-T 7MHzBW (IF: Fc=4.2MHz in default) */
SONY_HELENE_DTV_DVBT_8,
/**< DVB-T 8MHzBW (IF: Fc=4.8MHz in default) */
SONY_HELENE_DTV_DVBT2_1_7,
/**< DVB-T2 1.7MHzBW (IF: Fc=3.5MHz in default) */
SONY_HELENE_DTV_DVBT2_5,
/**< DVB-T2 5MHzBW (IF: Fc=3.6MHz in default) */
SONY_HELENE_DTV_DVBT2_6,
/**< DVB-T2 6MHzBW (IF: Fc=3.6MHz in default) */
SONY_HELENE_DTV_DVBT2_7,
/**< DVB-T2 7MHzBW (IF: Fc=4.2MHz in default) */
SONY_HELENE_DTV_DVBT2_8,
/**< DVB-T2 8MHzBW (IF: Fc=4.8MHz in default) */
SONY_HELENE_DTV_DVBC_6,
/**< DVB-C 6MHzBW (IF: Fc=3.7MHz in default) */
SONY_HELENE_DTV_DVBC_8,
/**< DVB-C 8MHzBW (IF: Fc=4.9MHz in default) */
SONY_HELENE_DTV_DVBC2_6,
/**< DVB-C2 6MHzBW (IF: Fc=3.7MHz in default) */
SONY_HELENE_DTV_DVBC2_8,
/**< DVB-C2 8MHzBW (IF: Fc=4.9MHz in default) */
SONY_HELENE_DTV_DTMB,
/**< DTMB (IF: Fc=5.1MHz in default) */
/* Satellite */
SONY_HELENE_STV_ISDBS,
/**< ISDB-S */
SONY_HELENE_STV_DVBS,
/**< DVB-S */
SONY_HELENE_STV_DVBS2,
/**< DVB-S2 */
SONY_HELENE_ATV_MIN = SONY_HELENE_ATV_MN_EIAJ,
Annotation
- Immediate include surface: `linux/slab.h`, `linux/module.h`, `linux/dvb/frontend.h`, `linux/types.h`, `helene.h`, `media/dvb_frontend.h`.
- Detected declarations: `struct helene_priv`, `struct helene_terr_adjust_param_t`, `enum helene_state`, `enum helene_tv_system_t`, `function helene_i2c_debug`, `function helene_write_regs`, `function helene_write_reg`, `function helene_read_regs`, `function helene_read_reg`, `function helene_set_reg_bits`.
- Atlas domain: Driver Families / drivers/media.
- Implementation status: integration 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.