drivers/gpu/drm/amd/display/modules/inc/mod_hdcp.h
Source file repositories/reference/linux-study-clean/drivers/gpu/drm/amd/display/modules/inc/mod_hdcp.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/gpu/drm/amd/display/modules/inc/mod_hdcp.h- Extension
.h- Size
- 11784 bytes
- Lines
- 378
- 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.
- Uses kernel synchronization; read lock ordering, sleepability, and interrupt context assumptions before translating.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
os_types.hsignal_types.h
Detected Declarations
struct mod_hdcpstruct mod_hdcp_displayportstruct mod_hdcp_hdmistruct mod_hdcp_psp_capsstruct mod_hdcp_atomic_op_i2cstruct mod_hdcp_atomic_op_auxstruct mod_hdcp_ddcstruct mod_hdcp_ddc_funcsstruct mod_hdcp_pspstruct mod_hdcp_display_adjustmentstruct mod_hdcp_link_adjustment_hdcp1struct mod_hdcp_link_adjustment_hdcp2struct mod_hdcp_link_adjustmentstruct mod_hdcp_errorstruct mod_hdcp1_tracestruct mod_hdcp2_tracestruct mod_hdcp_tracestruct mod_hdcp_outputstruct mod_hdcp_displaystruct mod_hdcp_linkstruct mod_hdcp_display_querystruct mod_hdcp_configenum mod_hdcp_statusenum mod_hdcp_operation_modeenum mod_hdcp_display_stateenum mod_hdcp_display_disable_optionenum mod_hdcp_force_hdcp_typeenum mod_hdcp_encryption_statusenum mod_hdcp_event
Annotated Snippet
struct mod_hdcp_displayport {
uint8_t rev;
uint8_t assr_enabled;
uint8_t mst_enabled;
uint8_t dp2_enabled;
uint8_t usb4_enabled;
};
struct mod_hdcp_hdmi {
uint8_t frl_enabled;
uint8_t reserved;
};
enum mod_hdcp_operation_mode {
MOD_HDCP_MODE_OFF,
MOD_HDCP_MODE_DEFAULT,
MOD_HDCP_MODE_DP
};
enum mod_hdcp_display_state {
MOD_HDCP_DISPLAY_INACTIVE = 0,
MOD_HDCP_DISPLAY_ACTIVE,
MOD_HDCP_DISPLAY_ENCRYPTION_ENABLED
};
struct mod_hdcp_psp_caps {
uint8_t dtm_v3_supported;
};
enum mod_hdcp_display_disable_option {
MOD_HDCP_DISPLAY_NOT_DISABLE = 0,
MOD_HDCP_DISPLAY_DISABLE_AUTHENTICATION,
MOD_HDCP_DISPLAY_DISABLE_ENCRYPTION,
};
struct mod_hdcp_atomic_op_i2c {
uint8_t address;
uint8_t offset;
uint8_t *data;
uint32_t size;
};
struct mod_hdcp_atomic_op_aux {
uint32_t address;
uint8_t *data;
uint32_t size;
};
struct mod_hdcp_ddc {
void *handle;
struct mod_hdcp_ddc_funcs {
bool (*read_i2c)(void *handle,
uint32_t address,
uint8_t offset,
uint8_t *data,
uint32_t size);
bool (*write_i2c)(void *handle,
uint32_t address,
const uint8_t *data,
uint32_t size);
bool (*read_dpcd)(void *handle,
uint32_t address,
uint8_t *data,
uint32_t size);
bool (*write_dpcd)(void *handle,
uint32_t address,
const uint8_t *data,
uint32_t size);
bool (*atomic_write_poll_read_i2c)(
void *handle,
const struct mod_hdcp_atomic_op_i2c *write,
const struct mod_hdcp_atomic_op_i2c *poll,
struct mod_hdcp_atomic_op_i2c *read,
uint32_t poll_timeout_us,
uint8_t poll_mask_msb
);
bool (*atomic_write_poll_read_aux)(
void *handle,
const struct mod_hdcp_atomic_op_aux *write,
const struct mod_hdcp_atomic_op_aux *poll,
struct mod_hdcp_atomic_op_aux *read,
uint32_t poll_timeout_us,
uint8_t poll_mask_msb
);
} funcs;
};
struct mod_hdcp_psp {
void *handle;
void *funcs;
struct mod_hdcp_psp_caps caps;
Annotation
- Immediate include surface: `os_types.h`, `signal_types.h`.
- Detected declarations: `struct mod_hdcp`, `struct mod_hdcp_displayport`, `struct mod_hdcp_hdmi`, `struct mod_hdcp_psp_caps`, `struct mod_hdcp_atomic_op_i2c`, `struct mod_hdcp_atomic_op_aux`, `struct mod_hdcp_ddc`, `struct mod_hdcp_ddc_funcs`, `struct mod_hdcp_psp`, `struct mod_hdcp_display_adjustment`.
- Atlas domain: Driver Families / drivers/gpu.
- Implementation status: source implementation candidate.
- Synchronization appears in or near this file; preserve lock ordering, sleepability, and interrupt-context constraints.
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.