drivers/video/fbdev/via/hw.h
Source file repositories/reference/linux-study-clean/drivers/video/fbdev/via/hw.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/video/fbdev/via/hw.h- Extension
.h- Size
- 21424 bytes
- Lines
- 663
- Domain
- Driver Families
- Bucket
- drivers/video
- 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
linux/seq_file.hviamode.hglobal.hvia_modesetting.h
Detected Declarations
struct io_registerstruct iga2_shadow_hor_totalstruct iga2_shadow_hor_blank_endstruct iga2_shadow_ver_totalstruct iga2_shadow_ver_addrstruct iga2_shadow_ver_blank_startstruct iga2_shadow_ver_blank_endstruct iga2_shadow_ver_sync_startstruct iga2_shadow_ver_sync_endstruct iga1_fetch_countstruct iga2_fetch_countstruct fetch_countstruct iga1_starting_addrstruct iga2_starting_addrstruct starting_addrstruct lcd_pwd_seq_td0struct lcd_pwd_seq_td1struct lcd_pwd_seq_td2struct lcd_pwd_seq_td3struct _lcd_pwd_seq_timerstruct _lcd_hor_scaling_factorstruct _lcd_ver_scaling_factorstruct _lcd_scaling_factorstruct pll_limitstruct rgbLUTstruct lcd_pwd_seq_timerstruct iga1_fifo_depth_selectstruct iga1_fifo_threshold_selectstruct iga1_fifo_high_threshold_selectstruct iga1_display_queue_expire_numstruct iga2_fifo_depth_selectstruct iga2_fifo_threshold_selectstruct iga2_fifo_high_threshold_selectstruct iga2_display_queue_expire_numstruct fifo_depth_selectstruct fifo_threshold_selectstruct fifo_high_threshold_selectstruct display_queue_expire_numstruct iga2_shadow_crtc_timingstruct IODATAstruct pci_device_id_infostruct via_device_mapping
Annotated Snippet
struct io_register {
u8 io_addr;
u8 start_bit;
u8 end_bit;
};
/*****************************************************
** Define IGA2 Shadow Display Timing ****
*****************************************************/
/* IGA2 Shadow Horizontal Total */
struct iga2_shadow_hor_total {
int reg_num;
struct io_register reg[IGA2_SHADOW_HOR_TOTAL_REG_NUM];
};
/* IGA2 Shadow Horizontal Blank End */
struct iga2_shadow_hor_blank_end {
int reg_num;
struct io_register reg[IGA2_SHADOW_HOR_BLANK_END_REG_NUM];
};
/* IGA2 Shadow Vertical Total */
struct iga2_shadow_ver_total {
int reg_num;
struct io_register reg[IGA2_SHADOW_VER_TOTAL_REG_NUM];
};
/* IGA2 Shadow Vertical Addressable Video */
struct iga2_shadow_ver_addr {
int reg_num;
struct io_register reg[IGA2_SHADOW_VER_ADDR_REG_NUM];
};
/* IGA2 Shadow Vertical Blank Start */
struct iga2_shadow_ver_blank_start {
int reg_num;
struct io_register reg[IGA2_SHADOW_VER_BLANK_START_REG_NUM];
};
/* IGA2 Shadow Vertical Blank End */
struct iga2_shadow_ver_blank_end {
int reg_num;
struct io_register reg[IGA2_SHADOW_VER_BLANK_END_REG_NUM];
};
/* IGA2 Shadow Vertical Sync Start */
struct iga2_shadow_ver_sync_start {
int reg_num;
struct io_register reg[IGA2_SHADOW_VER_SYNC_START_REG_NUM];
};
/* IGA2 Shadow Vertical Sync End */
struct iga2_shadow_ver_sync_end {
int reg_num;
struct io_register reg[IGA2_SHADOW_VER_SYNC_END_REG_NUM];
};
/* IGA1 Fetch Count Register */
struct iga1_fetch_count {
int reg_num;
struct io_register reg[IGA1_FETCH_COUNT_REG_NUM];
};
/* IGA2 Fetch Count Register */
struct iga2_fetch_count {
int reg_num;
struct io_register reg[IGA2_FETCH_COUNT_REG_NUM];
};
struct fetch_count {
struct iga1_fetch_count iga1_fetch_count_reg;
struct iga2_fetch_count iga2_fetch_count_reg;
};
/* Starting Address Register */
struct iga1_starting_addr {
int reg_num;
struct io_register reg[IGA1_STARTING_ADDR_REG_NUM];
};
struct iga2_starting_addr {
int reg_num;
struct io_register reg[IGA2_STARTING_ADDR_REG_NUM];
};
struct starting_addr {
struct iga1_starting_addr iga1_starting_addr_reg;
struct iga2_starting_addr iga2_starting_addr_reg;
};
Annotation
- Immediate include surface: `linux/seq_file.h`, `viamode.h`, `global.h`, `via_modesetting.h`.
- Detected declarations: `struct io_register`, `struct iga2_shadow_hor_total`, `struct iga2_shadow_hor_blank_end`, `struct iga2_shadow_ver_total`, `struct iga2_shadow_ver_addr`, `struct iga2_shadow_ver_blank_start`, `struct iga2_shadow_ver_blank_end`, `struct iga2_shadow_ver_sync_start`, `struct iga2_shadow_ver_sync_end`, `struct iga1_fetch_count`.
- Atlas domain: Driver Families / drivers/video.
- 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.