drivers/media/platform/nxp/imx8-isi/imx8-isi-core.h
Source file repositories/reference/linux-study-clean/drivers/media/platform/nxp/imx8-isi/imx8-isi-core.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/media/platform/nxp/imx8-isi/imx8-isi-core.h- Extension
.h- Size
- 11937 bytes
- Lines
- 434
- 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/list.hlinux/math.hlinux/mutex.hlinux/spinlock.hlinux/types.hlinux/videodev2.hmedia/media-device.hmedia/media-entity.hmedia/v4l2-async.hmedia/v4l2-ctrls.hmedia/v4l2-dev.hmedia/v4l2-device.hmedia/v4l2-subdev.hmedia/videobuf2-core.hmedia/videobuf2-v4l2.h
Detected Declarations
struct clk_bulk_datastruct dentrystruct devicestruct media_intf_devnodestruct regmapstruct v4l2_m2m_devstruct mxc_isi_devstruct mxc_isi_m2m_ctxstruct mxc_isi_format_infostruct mxc_isi_bus_format_infostruct mxc_isi_bufferstruct mxc_isi_regstruct mxc_isi_ier_regstruct mxc_isi_panic_thdstruct mxc_isi_set_thdstruct mxc_gasket_opsstruct mxc_isi_plat_datastruct mxc_isi_dma_bufferstruct mxc_isi_inputstruct mxc_isi_crossbarstruct mxc_isi_videostruct mxc_isi_pipestruct mxc_isi_m2mstruct mxc_isi_devenum mxc_isi_buf_idenum mxc_isi_encodingenum mxc_isi_input_idenum mxc_isi_video_typeenum modelfunction mxc_isi_m2m_registerfunction mxc_isi_m2m_unregisterfunction mxc_isi_m2m_suspendfunction mxc_isi_debug_init
Annotated Snippet
struct mxc_isi_format_info {
u32 mbus_code;
u32 fourcc;
enum mxc_isi_video_type type;
u32 isi_in_format;
u32 isi_out_format;
u8 mem_planes;
u8 color_planes;
u8 depth[MXC_MAX_PLANES];
u8 hsub;
u8 vsub;
enum mxc_isi_encoding encoding;
};
struct mxc_isi_bus_format_info {
u32 mbus_code;
u32 output;
u32 pads;
enum mxc_isi_encoding encoding;
};
struct mxc_isi_buffer {
struct vb2_v4l2_buffer v4l2_buf;
struct list_head list;
dma_addr_t dma_addrs[3];
enum mxc_isi_buf_id id;
bool discard;
};
struct mxc_isi_reg {
u32 mask;
};
struct mxc_isi_ier_reg {
/* Overflow Y/U/V trigger enable*/
struct mxc_isi_reg oflw_y_buf_en;
struct mxc_isi_reg oflw_u_buf_en;
struct mxc_isi_reg oflw_v_buf_en;
/* Excess overflow Y/U/V trigger enable*/
struct mxc_isi_reg excs_oflw_y_buf_en;
struct mxc_isi_reg excs_oflw_u_buf_en;
struct mxc_isi_reg excs_oflw_v_buf_en;
/* Panic Y/U/V trigger enable*/
struct mxc_isi_reg panic_y_buf_en;
struct mxc_isi_reg panic_v_buf_en;
struct mxc_isi_reg panic_u_buf_en;
};
struct mxc_isi_panic_thd {
u32 mask;
u32 offset;
u32 threshold;
};
struct mxc_isi_set_thd {
struct mxc_isi_panic_thd panic_set_thd_y;
struct mxc_isi_panic_thd panic_set_thd_u;
struct mxc_isi_panic_thd panic_set_thd_v;
};
struct mxc_gasket_ops {
void (*enable)(struct mxc_isi_dev *isi,
const struct v4l2_mbus_frame_desc *fd,
const struct v4l2_mbus_framefmt *fmt,
const unsigned int port);
void (*disable)(struct mxc_isi_dev *isi, const unsigned int port);
};
enum model {
MXC_ISI_IMX8MN,
MXC_ISI_IMX8MP,
MXC_ISI_IMX8QM,
MXC_ISI_IMX8QXP,
MXC_ISI_IMX8ULP,
MXC_ISI_IMX91,
MXC_ISI_IMX93,
MXC_ISI_IMX95,
};
struct mxc_isi_plat_data {
enum model model;
unsigned int num_ports;
unsigned int num_channels;
unsigned int reg_offset;
const struct mxc_isi_ier_reg *ier_reg;
const struct mxc_isi_set_thd *set_thd;
const struct mxc_gasket_ops *gasket_ops;
bool buf_active_reverse;
Annotation
- Immediate include surface: `linux/list.h`, `linux/math.h`, `linux/mutex.h`, `linux/spinlock.h`, `linux/types.h`, `linux/videodev2.h`, `media/media-device.h`, `media/media-entity.h`.
- Detected declarations: `struct clk_bulk_data`, `struct dentry`, `struct device`, `struct media_intf_devnode`, `struct regmap`, `struct v4l2_m2m_dev`, `struct mxc_isi_dev`, `struct mxc_isi_m2m_ctx`, `struct mxc_isi_format_info`, `struct mxc_isi_bus_format_info`.
- 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.