drivers/media/usb/dvb-usb/af9005.h
Source file repositories/reference/linux-study-clean/drivers/media/usb/dvb-usb/af9005.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/media/usb/dvb-usb/af9005.h- Extension
.h- Size
- 119954 bytes
- Lines
- 3484
- 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
dvb-usb.h
Detected Declarations
- No top-level syscall, struct, function, initcall, or export declaration detected by the generator.
Annotated Snippet
#ifndef _DVB_USB_AF9005_H_
#define _DVB_USB_AF9005_H_
#define DVB_USB_LOG_PREFIX "af9005"
#include "dvb-usb.h"
extern int dvb_usb_af9005_debug;
#define deb_info(args...) dprintk(dvb_usb_af9005_debug,0x01,args)
#define deb_xfer(args...) dprintk(dvb_usb_af9005_debug,0x02,args)
#define deb_rc(args...) dprintk(dvb_usb_af9005_debug,0x04,args)
#define deb_reg(args...) dprintk(dvb_usb_af9005_debug,0x08,args)
#define deb_i2c(args...) dprintk(dvb_usb_af9005_debug,0x10,args)
#define deb_fw(args...) dprintk(dvb_usb_af9005_debug,0x20,args)
extern bool dvb_usb_af9005_led;
/* firmware */
#define FW_BULKOUT_SIZE 250
enum {
FW_CONFIG,
FW_CONFIRM,
FW_BOOT
};
/* af9005 commands */
#define AF9005_OFDM_REG 0
#define AF9005_TUNER_REG 1
#define AF9005_REGISTER_RW 0x20
#define AF9005_REGISTER_RW_ACK 0x21
#define AF9005_CMD_OFDM_REG 0x00
#define AF9005_CMD_TUNER 0x80
#define AF9005_CMD_BURST 0x02
#define AF9005_CMD_AUTOINC 0x04
#define AF9005_CMD_READ 0x00
#define AF9005_CMD_WRITE 0x01
/* af9005 registers */
#define APO_REG_RESET 0xAEFF
#define APO_REG_I2C_RW_CAN_TUNER 0xF000
#define APO_REG_I2C_RW_SILICON_TUNER 0xF001
#define APO_REG_GPIO_RW_SILICON_TUNER 0xFFFE /* also for OFSM */
#define APO_REG_TRIGGER_OFSM 0xFFFF /* also for OFSM */
/***********************************************************************
* Apollo Registers from VLSI *
***********************************************************************/
#define xd_p_reg_aagc_inverted_agc 0xA000
#define reg_aagc_inverted_agc_pos 0
#define reg_aagc_inverted_agc_len 1
#define reg_aagc_inverted_agc_lsb 0
#define xd_p_reg_aagc_sign_only 0xA000
#define reg_aagc_sign_only_pos 1
#define reg_aagc_sign_only_len 1
#define reg_aagc_sign_only_lsb 0
#define xd_p_reg_aagc_slow_adc_en 0xA000
#define reg_aagc_slow_adc_en_pos 2
#define reg_aagc_slow_adc_en_len 1
#define reg_aagc_slow_adc_en_lsb 0
#define xd_p_reg_aagc_slow_adc_scale 0xA000
#define reg_aagc_slow_adc_scale_pos 3
#define reg_aagc_slow_adc_scale_len 5
#define reg_aagc_slow_adc_scale_lsb 0
#define xd_p_reg_aagc_check_slow_adc_lock 0xA001
#define reg_aagc_check_slow_adc_lock_pos 0
#define reg_aagc_check_slow_adc_lock_len 1
#define reg_aagc_check_slow_adc_lock_lsb 0
#define xd_p_reg_aagc_init_control 0xA001
#define reg_aagc_init_control_pos 1
#define reg_aagc_init_control_len 1
#define reg_aagc_init_control_lsb 0
#define xd_p_reg_aagc_total_gain_sel 0xA001
#define reg_aagc_total_gain_sel_pos 2
#define reg_aagc_total_gain_sel_len 2
#define reg_aagc_total_gain_sel_lsb 0
#define xd_p_reg_aagc_out_inv 0xA001
#define reg_aagc_out_inv_pos 5
#define reg_aagc_out_inv_len 1
#define reg_aagc_out_inv_lsb 0
#define xd_p_reg_aagc_int_en 0xA001
#define reg_aagc_int_en_pos 6
#define reg_aagc_int_en_len 1
#define reg_aagc_int_en_lsb 0
#define xd_p_reg_aagc_lock_change_flag 0xA001
#define reg_aagc_lock_change_flag_pos 7
#define reg_aagc_lock_change_flag_len 1
#define reg_aagc_lock_change_flag_lsb 0
#define xd_p_reg_aagc_rf_loop_bw_scale_acquire 0xA002
Annotation
- Immediate include surface: `dvb-usb.h`.
- 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.