drivers/media/platform/samsung/exynos4-is/fimc-core.h
Source file repositories/reference/linux-study-clean/drivers/media/platform/samsung/exynos4-is/fimc-core.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/media/platform/samsung/exynos4-is/fimc-core.h- Extension
.h- Size
- 21031 bytes
- Lines
- 728
- 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.
- Uses kernel synchronization; read lock ordering, sleepability, and interrupt context assumptions before translating.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/platform_device.hlinux/regmap.hlinux/sched.hlinux/spinlock.hlinux/mfd/syscon.hlinux/types.hlinux/videodev2.hlinux/io.hlinux/sizes.hmedia/media-entity.hmedia/videobuf2-v4l2.hmedia/v4l2-ctrls.hmedia/v4l2-device.hmedia/v4l2-mem2mem.hmedia/v4l2-mediabus.hmedia/drv-intf/exynos-fimc.h
Detected Declarations
struct fimc_dma_offsetstruct fimc_effectstruct fimc_scalerstruct fimc_addrstruct fimc_vid_bufferstruct fimc_framestruct fimc_m2m_devicestruct fimc_vid_capstruct fimc_pix_limitstruct fimc_variantstruct fimc_drvdatastruct fimc_ctxstruct fimc_devstruct fimc_ctrlsstruct fimc_ctxenum fimc_dev_flagsenum fimc_datapathenum fimc_color_fmtfunction set_frame_boundsfunction set_frame_cropfunction fimc_get_format_depthfunction fimc_capture_activefunction fimc_ctx_state_setfunction fimc_ctx_state_is_setfunction tiled_fmtfunction fimc_jpeg_fourccfunction fimc_user_defined_mbus_fmtfunction fimc_get_alpha_maskfunction fimc_get_sysreg_regmapfunction fimc_active_queue_addfunction fimc_pending_queue_add
Annotated Snippet
struct fimc_dma_offset {
int y_h;
int y_v;
int cb_h;
int cb_v;
int cr_h;
int cr_v;
};
/**
* struct fimc_effect - color effect information
* @type: effect type
* @pat_cb: cr value when type is "arbitrary"
* @pat_cr: cr value when type is "arbitrary"
*/
struct fimc_effect {
u32 type;
u8 pat_cb;
u8 pat_cr;
};
/**
* struct fimc_scaler - the configuration data for FIMC inetrnal scaler
* @scaleup_h: flag indicating scaling up horizontally
* @scaleup_v: flag indicating scaling up vertically
* @copy_mode: flag indicating transparent DMA transfer (no scaling
* and color format conversion)
* @enabled: flag indicating if the scaler is used
* @hfactor: horizontal shift factor
* @vfactor: vertical shift factor
* @pre_hratio: horizontal ratio of the prescaler
* @pre_vratio: vertical ratio of the prescaler
* @pre_dst_width: the prescaler's destination width
* @pre_dst_height: the prescaler's destination height
* @main_hratio: the main scaler's horizontal ratio
* @main_vratio: the main scaler's vertical ratio
* @real_width: source pixel (width - offset)
* @real_height: source pixel (height - offset)
*/
struct fimc_scaler {
unsigned int scaleup_h:1;
unsigned int scaleup_v:1;
unsigned int copy_mode:1;
unsigned int enabled:1;
u32 hfactor;
u32 vfactor;
u32 pre_hratio;
u32 pre_vratio;
u32 pre_dst_width;
u32 pre_dst_height;
u32 main_hratio;
u32 main_vratio;
u32 real_width;
u32 real_height;
};
/**
* struct fimc_addr - the FIMC address set for DMA
* @y: luminance plane address
* @cb: Cb plane address
* @cr: Cr plane address
*/
struct fimc_addr {
u32 y;
u32 cb;
u32 cr;
};
/**
* struct fimc_vid_buffer - the driver's video buffer
* @vb: v4l vb2 buffer
* @list: linked list structure for buffer queue
* @addr: precalculated DMA address set
* @index: buffer index for the output DMA engine
*/
struct fimc_vid_buffer {
struct vb2_v4l2_buffer vb;
struct list_head list;
struct fimc_addr addr;
int index;
};
/**
* struct fimc_frame - source/target frame properties
* @f_width: image full width (virtual screen size)
* @f_height: image full height (virtual screen size)
* @o_width: original image width as set by S_FMT
* @o_height: original image height as set by S_FMT
* @offs_h: image horizontal pixel offset
* @offs_v: image vertical pixel offset
Annotation
- Immediate include surface: `linux/platform_device.h`, `linux/regmap.h`, `linux/sched.h`, `linux/spinlock.h`, `linux/mfd/syscon.h`, `linux/types.h`, `linux/videodev2.h`, `linux/io.h`.
- Detected declarations: `struct fimc_dma_offset`, `struct fimc_effect`, `struct fimc_scaler`, `struct fimc_addr`, `struct fimc_vid_buffer`, `struct fimc_frame`, `struct fimc_m2m_device`, `struct fimc_vid_cap`, `struct fimc_pix_limit`, `struct fimc_variant`.
- Atlas domain: Driver Families / drivers/media.
- Implementation status: source implementation candidate.
- Synchronization appears in or near this file; preserve lock ordering, sleepability, and interrupt-context constraints.
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.