include/video/imx-ipu-v3.h
Source file repositories/reference/linux-study-clean/include/video/imx-ipu-v3.h
File Facts
- System
- Linux kernel
- Corpus path
include/video/imx-ipu-v3.h- Extension
.h- Size
- 16077 bytes
- Lines
- 490
- Domain
- Repository Root And Misc
- Bucket
- include
- Inferred role
- Repository Root And Misc: implementation source
- Status
- source implementation candidate
Why This File Exists
Top-level or miscellaneous repository surface. Use this as map coverage unless a later manual pass promotes the file into a deeper subsystem dossier.
- Top-level or miscellaneous repository surface. Use this as map coverage unless a later manual pass promotes the file into a deeper subsystem dossier.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/types.hlinux/videodev2.hlinux/bitmap.hlinux/fb.hlinux/of.hdrm/drm_color_mgmt.hmedia/v4l2-mediabus.hvideo/videomode.h
Detected Declarations
struct ipu_socstruct ipu_di_signal_cfgstruct ipuv3_channelstruct ipu_rgbstruct ipu_imagestruct ipu_dcstruct ipu_distruct dmfc_channelstruct ipu_csistruct ipu_ic_colorspacestruct ipu_ic_csc_paramsstruct ipu_ic_cscstruct ipu_icstruct ipu_vdistruct ipu_client_platformdataenum ipuv3_typeenum ipu_csi_destenum ipu_rotate_modeenum ipu_color_spaceenum ipu_motion_selenum ipu_channel_irqenum ipu_ic_taskfunction ipu_channel_alpha_channelfunction ipu_ic_fill_colorspace
Annotated Snippet
struct ipu_di_signal_cfg {
unsigned data_pol:1; /* true = inverted */
unsigned clk_pol:1; /* true = rising edge */
unsigned enable_pol:1;
struct videomode mode;
u32 bus_format;
u32 v_to_h_sync;
#define IPU_DI_CLKMODE_SYNC (1 << 0)
#define IPU_DI_CLKMODE_EXT (1 << 1)
unsigned long clkflags;
u8 hsync_pin;
u8 vsync_pin;
};
/*
* Enumeration of CSI destinations
*/
enum ipu_csi_dest {
IPU_CSI_DEST_IDMAC, /* to memory via SMFC */
IPU_CSI_DEST_IC, /* to Image Converter */
IPU_CSI_DEST_VDIC, /* to VDIC */
};
/*
* Enumeration of IPU rotation modes
*/
#define IPU_ROT_BIT_VFLIP (1 << 0)
#define IPU_ROT_BIT_HFLIP (1 << 1)
#define IPU_ROT_BIT_90 (1 << 2)
enum ipu_rotate_mode {
IPU_ROTATE_NONE = 0,
IPU_ROTATE_VERT_FLIP = IPU_ROT_BIT_VFLIP,
IPU_ROTATE_HORIZ_FLIP = IPU_ROT_BIT_HFLIP,
IPU_ROTATE_180 = (IPU_ROT_BIT_VFLIP | IPU_ROT_BIT_HFLIP),
IPU_ROTATE_90_RIGHT = IPU_ROT_BIT_90,
IPU_ROTATE_90_RIGHT_VFLIP = (IPU_ROT_BIT_90 | IPU_ROT_BIT_VFLIP),
IPU_ROTATE_90_RIGHT_HFLIP = (IPU_ROT_BIT_90 | IPU_ROT_BIT_HFLIP),
IPU_ROTATE_90_LEFT = (IPU_ROT_BIT_90 |
IPU_ROT_BIT_VFLIP | IPU_ROT_BIT_HFLIP),
};
/* 90-degree rotations require the IRT unit */
#define ipu_rot_mode_is_irt(m) (((m) & IPU_ROT_BIT_90) != 0)
enum ipu_color_space {
IPUV3_COLORSPACE_RGB,
IPUV3_COLORSPACE_YUV,
IPUV3_COLORSPACE_UNKNOWN,
};
/*
* Enumeration of VDI MOTION select
*/
enum ipu_motion_sel {
MOTION_NONE = 0,
LOW_MOTION,
MED_MOTION,
HIGH_MOTION,
};
struct ipuv3_channel;
enum ipu_channel_irq {
IPU_IRQ_EOF = 0,
IPU_IRQ_NFACK = 64,
IPU_IRQ_NFB4EOF = 128,
IPU_IRQ_EOS = 192,
};
/*
* Enumeration of IDMAC channels
*/
#define IPUV3_CHANNEL_CSI0 0
#define IPUV3_CHANNEL_CSI1 1
#define IPUV3_CHANNEL_CSI2 2
#define IPUV3_CHANNEL_CSI3 3
#define IPUV3_CHANNEL_VDI_MEM_IC_VF 5
/*
* NOTE: channels 6,7 are unused in the IPU and are not IDMAC channels,
* but the direct CSI->VDI linking is handled the same way as IDMAC
* channel linking in the FSU via the IPU_FS_PROC_FLOW registers, so
* these channel names are used to support the direct CSI->VDI link.
*/
#define IPUV3_CHANNEL_CSI_DIRECT 6
#define IPUV3_CHANNEL_CSI_VDI_PREV 7
Annotation
- Immediate include surface: `linux/types.h`, `linux/videodev2.h`, `linux/bitmap.h`, `linux/fb.h`, `linux/of.h`, `drm/drm_color_mgmt.h`, `media/v4l2-mediabus.h`, `video/videomode.h`.
- Detected declarations: `struct ipu_soc`, `struct ipu_di_signal_cfg`, `struct ipuv3_channel`, `struct ipu_rgb`, `struct ipu_image`, `struct ipu_dc`, `struct ipu_di`, `struct dmfc_channel`, `struct ipu_csi`, `struct ipu_ic_colorspace`.
- Atlas domain: Repository Root And Misc / include.
- 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.