drivers/media/platform/qcom/iris/iris_hfi_common.h
Source file repositories/reference/linux-study-clean/drivers/media/platform/qcom/iris/iris_hfi_common.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/media/platform/qcom/iris/iris_hfi_common.h- Extension
.h- Size
- 4930 bytes
- Lines
- 163
- 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.
- Touches IRQ or DMA behavior; this matters for the representative real-device path.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/types.hmedia/v4l2-device.hiris_buffer.h
Detected Declarations
struct iris_inststruct iris_corestruct iris_hfi_prop_type_handlestruct iris_hfi_sys_opsstruct iris_hfi_session_opsstruct hfi_subscription_paramsenum hfi_packet_port_typeenum hfi_packet_payload_infoenum hfi_packet_host_flagsenum hfi_color_primariesenum hfi_transfer_characteristicsenum hfi_matrix_coefficients
Annotated Snippet
struct iris_hfi_prop_type_handle {
u32 type;
int (*handle)(struct iris_inst *inst, u32 plane);
};
struct iris_hfi_sys_ops {
int (*sys_init)(struct iris_core *core);
int (*sys_image_version)(struct iris_core *core);
int (*sys_interframe_powercollapse)(struct iris_core *core);
int (*sys_pc_prep)(struct iris_core *core);
void (*sys_hfi_response_handler)(struct iris_core *core);
struct iris_inst *(*sys_get_instance)(void);
};
struct iris_hfi_session_ops {
int (*session_set_config_params)(struct iris_inst *inst, u32 plane);
int (*session_set_property)(struct iris_inst *inst,
u32 packet_type, u32 flag, u32 plane, u32 payload_type,
void *payload, u32 payload_size);
int (*session_open)(struct iris_inst *inst);
int (*session_start)(struct iris_inst *inst, u32 plane);
int (*session_queue_buf)(struct iris_inst *inst, struct iris_buffer *buffer);
int (*session_release_buf)(struct iris_inst *inst, struct iris_buffer *buffer);
int (*session_pause)(struct iris_inst *inst, u32 plane);
int (*session_resume_drc)(struct iris_inst *inst, u32 plane);
int (*session_stop)(struct iris_inst *inst, u32 plane);
int (*session_drain)(struct iris_inst *inst, u32 plane);
int (*session_resume_drain)(struct iris_inst *inst, u32 plane);
int (*session_close)(struct iris_inst *inst);
};
struct hfi_subscription_params {
u32 bitstream_resolution;
u32 crop_offsets[2];
u32 bit_depth;
u32 coded_frames;
u32 fw_min_count;
u32 pic_order_cnt;
u32 color_info;
u32 profile;
u32 level;
u32 tier;
u32 drap;
u32 film_grain;
u32 super_block;
};
u32 iris_hfi_get_v4l2_color_primaries(u32 hfi_primaries);
u32 iris_hfi_get_v4l2_transfer_char(u32 hfi_characterstics);
u32 iris_hfi_get_v4l2_matrix_coefficients(u32 hfi_coefficients);
int iris_hfi_core_init(struct iris_core *core);
int iris_hfi_pm_suspend(struct iris_core *core);
int iris_hfi_pm_resume(struct iris_core *core);
irqreturn_t iris_hfi_isr(int irq, void *data);
irqreturn_t iris_hfi_isr_handler(int irq, void *data);
#endif
Annotation
- Immediate include surface: `linux/types.h`, `media/v4l2-device.h`, `iris_buffer.h`.
- Detected declarations: `struct iris_inst`, `struct iris_core`, `struct iris_hfi_prop_type_handle`, `struct iris_hfi_sys_ops`, `struct iris_hfi_session_ops`, `struct hfi_subscription_params`, `enum hfi_packet_port_type`, `enum hfi_packet_payload_info`, `enum hfi_packet_host_flags`, `enum hfi_color_primaries`.
- Atlas domain: Driver Families / drivers/media.
- Implementation status: source implementation candidate.
- IRQ or DMA behavior appears here, which is relevant to the selected PCIe/NVMe device path.
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.