drivers/media/platform/amphion/vpu_malone.c
Source file repositories/reference/linux-study-clean/drivers/media/platform/amphion/vpu_malone.c
File Facts
- System
- Linux kernel
- Corpus path
drivers/media/platform/amphion/vpu_malone.c- Extension
.c- Size
- 48563 bytes
- Lines
- 1735
- 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.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/bitfield.hlinux/init.hlinux/interconnect.hlinux/ioctl.hlinux/list.hlinux/kernel.hlinux/module.hlinux/platform_device.hlinux/delay.hlinux/rational.hlinux/time64.hmedia/videobuf2-v4l2.hmedia/videobuf2-dma-contig.hlinux/videodev2.hvpu.hvpu_rpc.hvpu_defs.hvpu_helpers.hvpu_v4l2.hvpu_cmds.hvpu_imx8q.hvpu_malone.h
Detected Declarations
struct vpu_malone_buffer_descstruct vpu_malone_str_bufferstruct vpu_malone_picth_infostruct vpu_malone_table_descstruct vpu_malone_dbglog_descstruct vpu_malone_udatastruct vpu_malone_buffer_infostruct vpu_malone_encrypt_infostruct malone_ifacestruct malone_jpg_paramsstruct malone_codec_paramsstruct malone_padding_scodestruct malone_fmt_mappingstruct malone_scode_tstruct malone_scode_handlerstruct vpu_dec_ctrlenum vpu_malone_stream_input_modeenum vpu_malone_formatfunction vpu_malone_get_data_sizefunction vpu_malone_init_rpcfunction vpu_malone_set_log_buffunction get_str_buffer_offsetfunction vpu_malone_set_system_cfgfunction vpu_malone_get_versionfunction vpu_malone_get_stream_buffer_sizefunction vpu_malone_config_stream_bufferfunction vpu_malone_get_stream_buffer_descfunction vpu_malone_update_wptrfunction vpu_malone_update_rptrfunction vpu_malone_update_stream_bufferfunction vpu_malone_enable_formatfunction vpu_malone_format_remapfunction vpu_malone_check_fmtfunction vpu_malone_set_stream_cfgfunction vpu_malone_set_paramsfunction vpu_malone_is_non_frame_modefunction vpu_malone_update_paramsfunction vpu_malone_set_decode_paramsfunction vpu_malone_pack_fs_allocfunction vpu_malone_pack_fs_releasefunction vpu_malone_pack_timestampfunction vpu_malone_pack_cmdfunction vpu_malone_convert_msg_idfunction vpu_malone_fill_planesfunction vpu_malone_init_seq_hdrfunction vpu_malone_unpack_seq_hdrfunction vpu_malone_unpack_pic_infofunction vpu_malone_unpack_req_frame
Annotated Snippet
struct vpu_malone_buffer_desc {
struct vpu_rpc_buffer_desc buffer;
u32 low;
u32 high;
};
struct vpu_malone_str_buffer {
u32 wptr;
u32 rptr;
u32 start;
u32 end;
u32 lwm;
};
struct vpu_malone_picth_info {
u32 frame_pitch;
};
struct vpu_malone_table_desc {
u32 array_base;
u32 size;
};
struct vpu_malone_dbglog_desc {
u32 addr;
u32 size;
u32 level;
u32 reserved;
};
struct vpu_malone_udata {
u32 base;
u32 total_size;
u32 slot_size;
};
struct vpu_malone_buffer_info {
u32 stream_input_mode;
u32 stream_pic_input_count;
u32 stream_pic_parsed_count;
u32 stream_buffer_threshold;
u32 stream_pic_end_flag;
};
struct vpu_malone_encrypt_info {
u32 rec4key[8];
u32 obfusc;
};
struct malone_iface {
u32 exec_base_addr;
u32 exec_area_size;
struct vpu_malone_buffer_desc cmd_buffer_desc;
struct vpu_malone_buffer_desc msg_buffer_desc;
u32 cmd_int_enable[VID_API_NUM_STREAMS];
struct vpu_malone_picth_info stream_pitch_info[VID_API_NUM_STREAMS];
u32 stream_config[VID_API_NUM_STREAMS];
struct vpu_malone_table_desc codec_param_tab_desc;
struct vpu_malone_table_desc jpeg_param_tab_desc;
u32 stream_buffer_desc[VID_API_NUM_STREAMS][VID_API_MAX_BUF_PER_STR];
struct vpu_malone_table_desc seq_info_tab_desc;
struct vpu_malone_table_desc pic_info_tab_desc;
struct vpu_malone_table_desc gop_info_tab_desc;
struct vpu_malone_table_desc qmeter_info_tab_desc;
u32 stream_error[VID_API_NUM_STREAMS];
u32 fw_version;
u32 fw_offset;
u32 max_streams;
struct vpu_malone_dbglog_desc dbglog_desc;
struct vpu_rpc_buffer_desc api_cmd_buffer_desc[VID_API_NUM_STREAMS];
struct vpu_malone_udata udata_buffer[VID_API_NUM_STREAMS];
struct vpu_malone_buffer_desc debug_buffer_desc;
struct vpu_malone_buffer_desc eng_access_buff_desc[VID_API_NUM_STREAMS];
u32 encrypt_info[VID_API_NUM_STREAMS];
struct vpu_rpc_system_config system_cfg;
u32 api_version;
struct vpu_malone_buffer_info stream_buff_info[VID_API_NUM_STREAMS];
};
struct malone_jpg_params {
u32 rotation_angle;
u32 horiz_scale_factor;
u32 vert_scale_factor;
u32 rotation_mode;
u32 rgb_mode;
u32 chunk_mode; /* 0 ~ 1 */
u32 last_chunk; /* 0 ~ 1 */
u32 chunk_rows; /* 0 ~ 255 */
u32 num_bytes;
u32 jpg_crop_x;
Annotation
- Immediate include surface: `linux/bitfield.h`, `linux/init.h`, `linux/interconnect.h`, `linux/ioctl.h`, `linux/list.h`, `linux/kernel.h`, `linux/module.h`, `linux/platform_device.h`.
- Detected declarations: `struct vpu_malone_buffer_desc`, `struct vpu_malone_str_buffer`, `struct vpu_malone_picth_info`, `struct vpu_malone_table_desc`, `struct vpu_malone_dbglog_desc`, `struct vpu_malone_udata`, `struct vpu_malone_buffer_info`, `struct vpu_malone_encrypt_info`, `struct malone_iface`, `struct malone_jpg_params`.
- Atlas domain: Driver Families / drivers/media.
- 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.