/** * struct iris_hfi_header * * @size: size of the total packet in bytes including hfi_header * @session_id: For session level hfi_header session_id is non-zero. * For system level hfi_header session_id is zero. * @header_id: unique header id for each hfi_header * @reserved: reserved for future use * @num_packets: number of hfi_packet that are included with the hfi_header
*/ struct iris_hfi_header {
u32 size;
u32 session_id;
u32 header_id;
u32 reserved[4];
u32 num_packets;
};
/** * struct iris_hfi_packet * * @size: size of the hfi_packet in bytes including payload * @type: one of the below hfi_packet types: * HFI_CMD_*, * HFI_PROP_*, * HFI_ERROR_*, * HFI_INFO_*, * HFI_SYS_ERROR_* * @flags: hfi_packet flags. It is represented as bit masks. * host packet flags are "enum hfi_packet_host_flags" * firmware packet flags are "enum hfi_packet_firmware_flags" * @payload_info: payload information indicated by "enum hfi_packet_payload_info" * @port: hfi_packet port type indicated by "enum hfi_packet_port_type" * This is bitmask and may be applicable to multiple ports. * @packet_id: host hfi_packet contains unique packet id. * firmware returns host packet id in response packet * wherever applicable. If not applicable firmware sets it to zero. * @reserved: reserved for future use. * @payload: flexible array of payload having additional packet information.
*/ struct iris_hfi_packet {
u32 size;
u32 type;
u32 flags;
u32 payload_info;
u32 port;
u32 packet_id;
u32 reserved[2];
u32 payload[];
};
/** * struct iris_hfi_buffer * * @type: buffer type indicated by "enum hfi_buffer_type" * FW needs to return proper type for any buffer command. * @index: index of the buffer * @base_address: base address of the buffer. * This buffer address is always 4KBytes aligned. * @addr_offset: accessible buffer offset from base address * Decoder bitstream buffer: 256 Bytes aligned * Firmware can uniquely identify a buffer based on * base_address & addr_offset. * HW can read memory only from base_address+addr_offset. * @buffer_size: accessible buffer size in bytes starting from addr_offset * @data_offset: data starts from "base_address + addr_offset + data_offset" * RAW buffer: data_offset is 0. Restriction: 4KBytes aligned * decoder bitstream buffer: no restriction (can be any value) * @data_size: data size in bytes * @flags: buffer flags. It is represented as bit masks. * host buffer flags are "enum hfi_buffer_host_flags" * firmware buffer flags are "enum hfi_buffer_firmware_flags" * @timestamp: timestamp of the buffer in nano seconds (ns) * It is Presentation timestamp (PTS) for encoder & decoder. * Decoder: it is pass through from bitstream to raw buffer. * firmware does not need to return as part of input buffer done. * For any internal buffers: there is no timestamp. Host sets as 0. * @reserved: reserved for future use
*/ struct iris_hfi_buffer {
u32 type;
u32 index;
u64 base_address;
u32 addr_offset;
u32 buffer_size;
u32 data_offset;
u32 data_size;
u64 timestamp;
u32 flags;
u32 reserved[5];
};
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.