drivers/media/platform/samsung/exynos4-is/fimc-is.h
Source file repositories/reference/linux-study-clean/drivers/media/platform/samsung/exynos4-is/fimc-is.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/media/platform/samsung/exynos4-is/fimc-is.h- Extension
.h- Size
- 8343 bytes
- Lines
- 357
- 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
asm/barrier.hlinux/clk.hlinux/device.hlinux/kernel.hlinux/platform_device.hlinux/sizes.hlinux/spinlock.hlinux/types.hmedia/videobuf2-v4l2.hmedia/v4l2-ctrls.hfimc-isp.hfimc-is-command.hfimc-is-sensor.hfimc-is-param.hfimc-is-regs.h
Detected Declarations
struct is_setfilestruct is_fd_result_headerstruct is_af_infostruct fimc_is_firmwarestruct fimc_is_memorystruct i2h_cmdstruct h2i_cmdstruct fimc_is_setfilestruct chain_configstruct fimc_isenum af_stateenum af_lock_stateenum ae_lock_stateenum awb_lock_statefunction fimc_is_mem_barrierfunction fimc_is_set_param_bitfunction fimc_is_set_param_ctrl_cmdfunction mcuctl_writefunction mcuctl_readfunction pmuisp_writefunction pmuisp_read
Annotated Snippet
struct is_setfile {
const struct firmware *info;
int state;
u32 sub_index;
u32 base;
size_t size;
};
struct is_fd_result_header {
u32 offset;
u32 count;
u32 index;
u32 curr_index;
u32 width;
u32 height;
};
struct is_af_info {
u16 mode;
u32 af_state;
u32 af_lock_state;
u32 ae_lock_state;
u32 awb_lock_state;
u16 pos_x;
u16 pos_y;
u16 prev_pos_x;
u16 prev_pos_y;
u16 use_af;
};
struct fimc_is_firmware {
const struct firmware *f_w;
dma_addr_t addr;
void *vaddr;
unsigned int size;
char info[FIMC_IS_FW_INFO_LEN + 1];
char version[FIMC_IS_FW_VER_LEN + 1];
char setfile_info[FIMC_IS_SETFILE_INFO_LEN + 1];
u8 state;
};
struct fimc_is_memory {
/* DMA base address */
dma_addr_t addr;
/* virtual base address */
void *vaddr;
/* total length */
unsigned int size;
};
#define FIMC_IS_I2H_MAX_ARGS 12
struct i2h_cmd {
u32 cmd;
u32 sensor_id;
u16 num_args;
u32 args[FIMC_IS_I2H_MAX_ARGS];
};
struct h2i_cmd {
u16 cmd_type;
u32 entry_id;
};
#define FIMC_IS_DEBUG_MSG 0x3f
#define FIMC_IS_DEBUG_LEVEL 3
struct fimc_is_setfile {
const struct firmware *info;
unsigned int state;
unsigned int size;
u32 sub_index;
u32 base;
};
struct chain_config {
struct global_param global;
struct sensor_param sensor;
struct isp_param isp;
struct drc_param drc;
struct fd_param fd;
unsigned long p_region_index[2];
};
/**
* struct fimc_is - fimc-is data structure
* @pdev: pointer to FIMC-IS platform device
Annotation
- Immediate include surface: `asm/barrier.h`, `linux/clk.h`, `linux/device.h`, `linux/kernel.h`, `linux/platform_device.h`, `linux/sizes.h`, `linux/spinlock.h`, `linux/types.h`.
- Detected declarations: `struct is_setfile`, `struct is_fd_result_header`, `struct is_af_info`, `struct fimc_is_firmware`, `struct fimc_is_memory`, `struct i2h_cmd`, `struct h2i_cmd`, `struct fimc_is_setfile`, `struct chain_config`, `struct fimc_is`.
- 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.