drivers/media/rc/ite-cir.h
Source file repositories/reference/linux-study-clean/drivers/media/rc/ite-cir.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/media/rc/ite-cir.h- Extension
.h- Size
- 15925 bytes
- Lines
- 441
- 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 ite_devstruct ite_dev_paramsstruct ite_dev
Annotated Snippet
struct ite_dev_params {
/* model of the device */
const char *model;
/* size of the I/O region */
int io_region_size;
/* IR pnp I/O resource number */
int io_rsrc_no;
/* hw-specific operation function pointers; most of these must be
* called while holding the spin lock, except for the TX FIFO length
* one */
/* get pending interrupt causes */
int (*get_irq_causes) (struct ite_dev *dev);
/* enable rx */
void (*enable_rx) (struct ite_dev *dev);
/* make rx enter the idle state; keep listening for a pulse, but stop
* streaming space bytes */
void (*idle_rx) (struct ite_dev *dev);
/* disable rx completely */
void (*disable_rx) (struct ite_dev *dev);
/* read bytes from RX FIFO; return read count */
int (*get_rx_bytes) (struct ite_dev *dev, u8 *buf, int buf_size);
/* enable tx FIFO space available interrupt */
void (*enable_tx_interrupt) (struct ite_dev *dev);
/* disable tx FIFO space available interrupt */
void (*disable_tx_interrupt) (struct ite_dev *dev);
/* get number of full TX FIFO slots */
int (*get_tx_used_slots) (struct ite_dev *dev);
/* put a byte to the TX FIFO */
void (*put_tx_byte) (struct ite_dev *dev, u8 value);
/* disable hardware completely */
void (*disable) (struct ite_dev *dev);
/* initialize the hardware */
void (*init_hardware) (struct ite_dev *dev);
/* set the carrier parameters */
void (*set_carrier_params) (struct ite_dev *dev, bool high_freq,
bool use_demodulator, u8 carrier_freq_bits,
u8 allowance_bits, u8 pulse_width_bits);
};
/* ITE CIR device structure */
struct ite_dev {
struct pnp_dev *pdev;
struct rc_dev *rdev;
/* sync data */
spinlock_t lock;
bool transmitting;
/* transmit support */
wait_queue_head_t tx_queue, tx_ended;
/* rx low carrier frequency, in Hz, 0 means no demodulation */
unsigned int rx_low_carrier_freq;
/* tx high carrier frequency, in Hz, 0 means no demodulation */
unsigned int rx_high_carrier_freq;
/* tx carrier frequency, in Hz */
unsigned int tx_carrier_freq;
/* duty cycle, 0-100 */
int tx_duty_cycle;
/* hardware I/O settings */
unsigned long cir_addr;
int cir_irq;
/* overridable copy of model parameters */
const struct ite_dev_params *params;
};
/* common values for all kinds of hardware */
/* baud rate divisor default */
#define ITE_BAUDRATE_DIVISOR 1
Annotation
- Detected declarations: `struct ite_dev`, `struct ite_dev_params`, `struct ite_dev`.
- 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.