drivers/media/platform/arm/mali-c55/mali-c55-common.h
Source file repositories/reference/linux-study-clean/drivers/media/platform/arm/mali-c55/mali-c55-common.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/media/platform/arm/mali-c55/mali-c55-common.h- Extension
.h- Size
- 8451 bytes
- Lines
- 313
- 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/clk.hlinux/io.hlinux/list.hlinux/mutex.hlinux/reset.hlinux/spinlock.hlinux/videodev2.hmedia/media-device.hmedia/v4l2-async.hmedia/v4l2-ctrls.hmedia/v4l2-dev.hmedia/v4l2-device.hmedia/v4l2-isp.hmedia/v4l2-subdev.hmedia/videobuf2-core.hmedia/videobuf2-v4l2.h
Detected Declarations
struct devicestruct mali_c55struct mali_c55_cap_devstruct media_pipelinestruct mali_c55_params_bufferstruct platform_devicestruct resourcestruct mali_c55_tpgstruct mali_c55_tpg_ctrlsstruct mali_c55_ispstruct mali_c55_resizerstruct mali_c55_format_infostruct mali_c55_isp_format_infostruct mali_c55_bufferstruct mali_c55_cap_devstruct mali_c55_stats_bufstruct mali_c55_params_bufstruct mali_c55_statsstruct mali_c55_paramsstruct mali_c55_contextstruct mali_c55enum mali_c55_isp_padsenum mali_c55_resizer_idsenum mali_c55_rsz_padsenum mali_c55_cap_devsenum mali_c55_planesenum mali_c55_config_spaces
Annotated Snippet
struct mali_c55_tpg {
struct mali_c55 *mali_c55;
struct v4l2_subdev sd;
struct media_pad pad;
struct mali_c55_tpg_ctrls {
struct v4l2_ctrl_handler handler;
struct v4l2_ctrl *vblank;
} ctrls;
};
struct mali_c55_isp {
struct mali_c55 *mali_c55;
struct v4l2_subdev sd;
struct media_pad pads[MALI_C55_ISP_NUM_PADS];
struct v4l2_ctrl_handler handler;
struct media_pad *remote_src;
/* Mutex to guard vb2 start/stop streaming */
struct mutex capture_lock;
unsigned int frame_sequence;
};
enum mali_c55_resizer_ids {
MALI_C55_RSZ_FR,
MALI_C55_RSZ_DS,
MALI_C55_NUM_RSZS,
};
enum mali_c55_rsz_pads {
MALI_C55_RSZ_SINK_PAD,
MALI_C55_RSZ_SOURCE_PAD,
MALI_C55_RSZ_SINK_BYPASS_PAD,
MALI_C55_RSZ_NUM_PADS
};
struct mali_c55_resizer {
struct mali_c55 *mali_c55;
struct mali_c55_cap_dev *cap_dev;
enum mali_c55_resizer_ids id;
struct v4l2_subdev sd;
struct media_pad pads[MALI_C55_RSZ_NUM_PADS];
unsigned int num_routes;
};
enum mali_c55_cap_devs {
MALI_C55_CAP_DEV_FR,
MALI_C55_CAP_DEV_DS,
MALI_C55_NUM_CAP_DEVS
};
struct mali_c55_format_info {
u32 fourcc;
/*
* The output formats can be produced by a couple of different media bus
* formats, depending on how the ISP is configured.
*/
unsigned int mbus_codes[2];
bool is_raw;
struct {
u32 base_mode;
u32 uv_plane;
} registers;
};
struct mali_c55_isp_format_info {
u32 code;
u32 shifted_code;
bool bypass;
u32 order;
};
enum mali_c55_planes {
MALI_C55_PLANE_Y,
MALI_C55_PLANE_UV,
MALI_C55_NUM_PLANES
};
struct mali_c55_buffer {
struct vb2_v4l2_buffer vb;
unsigned int planes_pending;
struct list_head queue;
dma_addr_t addrs[MALI_C55_NUM_PLANES];
};
struct mali_c55_cap_dev {
struct mali_c55 *mali_c55;
struct mali_c55_resizer *rsz;
struct video_device vdev;
struct media_pad pad;
struct vb2_queue queue;
/* Mutex to provide to vb2 */
Annotation
- Immediate include surface: `linux/clk.h`, `linux/io.h`, `linux/list.h`, `linux/mutex.h`, `linux/reset.h`, `linux/spinlock.h`, `linux/videodev2.h`, `media/media-device.h`.
- Detected declarations: `struct device`, `struct mali_c55`, `struct mali_c55_cap_dev`, `struct media_pipeline`, `struct mali_c55_params_buffer`, `struct platform_device`, `struct resource`, `struct mali_c55_tpg`, `struct mali_c55_tpg_ctrls`, `struct mali_c55_isp`.
- 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.