drivers/media/common/b2c2/flexcop-fe-tuner.c
Source file repositories/reference/linux-study-clean/drivers/media/common/b2c2/flexcop-fe-tuner.c
File Facts
- System
- Linux kernel
- Corpus path
drivers/media/common/b2c2/flexcop-fe-tuner.c- Extension
.c- Size
- 17317 bytes
- Lines
- 722
- 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
media/tuner.hflexcop.hmt312.hstv0299.hs5h1420.hitd1000.hcx24113.hcx24123.hisl6421.hcx24120.hmt352.hbcm3510.hnxt200x.hdvb-pll.hlgdt330x.htuner-simple.hstv0297.h
Detected Declarations
function FlexcopIIfunction flexcop_set_voltagefunction flexcop_sleepfunction flexcop_set_tonefunction flexcop_diseqc_send_bitfunction flexcop_diseqc_send_bytefunction flexcop_send_diseqc_msgfunction flexcop_diseqc_send_master_cmdfunction flexcop_diseqc_send_burstfunction skystar2_rev23_attachfunction samsung_tbmu24112_set_symbol_ratefunction skystar2_rev26_attachfunction skystar2_rev27_attachfunction skystar2_rev28_attachfunction samsung_tdtc9251dh0_demod_initfunction airstar_dvbt_attachfunction airstar_atsc1_attachfunction airstar_atsc2_attachfunction airstar_atsc3_attachfunction cablestar2_attachfunction skystarS2_rev33_attachfunction flexcop_frontend_initfunction flexcop_frontend_exit
Annotated Snippet
if (fc->fe) {
dvb_frontend_detach(fc->fe);
fc->fe = NULL;
}
}
fc->dev_type = FC_UNK;
err("no frontend driver found for this B2C2/FlexCop adapter");
return -ENODEV;
fe_found:
info("found '%s' .", fc->fe->ops.info.name);
if (dvb_register_frontend(&fc->dvb_adapter, fc->fe)) {
err("frontend registration failed!");
dvb_frontend_detach(fc->fe);
fc->fe = NULL;
return -EINVAL;
}
fc->init_state |= FC_STATE_FE_INIT;
return 0;
}
void flexcop_frontend_exit(struct flexcop_device *fc)
{
if (fc->init_state & FC_STATE_FE_INIT) {
dvb_unregister_frontend(fc->fe);
dvb_frontend_detach(fc->fe);
}
fc->init_state &= ~FC_STATE_FE_INIT;
}
Annotation
- Immediate include surface: `media/tuner.h`, `flexcop.h`, `mt312.h`, `stv0299.h`, `s5h1420.h`, `itd1000.h`, `cx24113.h`, `cx24123.h`.
- Detected declarations: `function FlexcopII`, `function flexcop_set_voltage`, `function flexcop_sleep`, `function flexcop_set_tone`, `function flexcop_diseqc_send_bit`, `function flexcop_diseqc_send_byte`, `function flexcop_send_diseqc_msg`, `function flexcop_diseqc_send_master_cmd`, `function flexcop_diseqc_send_burst`, `function skystar2_rev23_attach`.
- 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.