drivers/gpu/drm/bridge/adv7511/adv7511.h
Source file repositories/reference/linux-study-clean/drivers/gpu/drm/bridge/adv7511/adv7511.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/gpu/drm/bridge/adv7511/adv7511.h- Extension
.h- Size
- 15001 bytes
- Lines
- 443
- Domain
- Driver Families
- Bucket
- drivers/gpu
- 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/hdmi.hlinux/i2c.hlinux/regmap.hlinux/regulator/consumer.hdrm/drm_bridge.hdrm/drm_connector.hdrm/drm_mipi_dsi.hdrm/drm_modes.h
Detected Declarations
struct adv7511_link_configstruct adv7511_video_configstruct adv7511_chip_infostruct adv7511enum adv7511_input_clockenum adv7511_input_justificationenum adv7511_input_sync_pulseenum adv7511_sync_polarityenum adv7511_csc_scalingenum adv7511_type
Annotated Snippet
struct adv7511_link_config {
unsigned int input_color_depth;
enum hdmi_colorspace input_colorspace;
enum adv7511_input_clock input_clock;
unsigned int input_style;
enum adv7511_input_justification input_justification;
int clock_delay;
bool embedded_sync;
enum adv7511_input_sync_pulse sync_pulse;
enum adv7511_sync_polarity vsync_polarity;
enum adv7511_sync_polarity hsync_polarity;
};
/**
* enum adv7511_csc_scaling - Scaling factor for the ADV7511 CSC
* @ADV7511_CSC_SCALING_1: CSC results are not scaled
* @ADV7511_CSC_SCALING_2: CSC results are scaled by a factor of two
* @ADV7511_CSC_SCALING_4: CSC results are scalled by a factor of four
*/
enum adv7511_csc_scaling {
ADV7511_CSC_SCALING_1 = 0,
ADV7511_CSC_SCALING_2 = 1,
ADV7511_CSC_SCALING_4 = 2,
};
/**
* struct adv7511_video_config - Describes adv7511 hardware configuration
* @csc_enable: Whether to enable color space conversion
* @csc_scaling_factor: Color space conversion scaling factor
* @csc_coefficents: Color space conversion coefficents
*/
struct adv7511_video_config {
bool csc_enable;
enum adv7511_csc_scaling csc_scaling_factor;
const uint16_t *csc_coefficents;
};
enum adv7511_type {
ADV7511,
ADV7533,
ADV7535,
};
#define ADV7511_MAX_ADDRS 3
struct adv7511_chip_info {
enum adv7511_type type;
unsigned int max_mode_clock_khz;
unsigned int max_lane_freq_khz;
const char *name;
const char * const *supply_names;
unsigned int num_supplies;
unsigned int reg_cec_offset;
bool has_dsi;
bool link_config;
bool hpd_override_enable;
};
struct adv7511 {
struct i2c_client *i2c_main;
struct i2c_client *i2c_edid;
struct i2c_client *i2c_packet;
struct i2c_client *i2c_cec;
struct regmap *regmap;
struct regmap *regmap_packet;
struct regmap *regmap_cec;
enum drm_connector_status status;
bool powered;
struct drm_display_mode curr_mode;
unsigned int f_tmds;
unsigned int f_audio;
unsigned int audio_source;
unsigned int current_edid_segment;
uint8_t edid_buf[256];
bool edid_read;
wait_queue_head_t wq;
struct work_struct hpd_work;
struct drm_bridge bridge;
struct drm_connector *cec_connector;
bool embedded_sync;
enum adv7511_sync_polarity vsync_polarity;
Annotation
- Immediate include surface: `linux/hdmi.h`, `linux/i2c.h`, `linux/regmap.h`, `linux/regulator/consumer.h`, `drm/drm_bridge.h`, `drm/drm_connector.h`, `drm/drm_mipi_dsi.h`, `drm/drm_modes.h`.
- Detected declarations: `struct adv7511_link_config`, `struct adv7511_video_config`, `struct adv7511_chip_info`, `struct adv7511`, `enum adv7511_input_clock`, `enum adv7511_input_justification`, `enum adv7511_input_sync_pulse`, `enum adv7511_sync_polarity`, `enum adv7511_csc_scaling`, `enum adv7511_type`.
- Atlas domain: Driver Families / drivers/gpu.
- 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.