drivers/media/platform/qcom/camss/camss-ispif.h

Source file repositories/reference/linux-study-clean/drivers/media/platform/qcom/camss/camss-ispif.h

File Facts

System
Linux kernel
Corpus path
drivers/media/platform/qcom/camss/camss-ispif.h
Extension
.h
Size
1718 bytes
Lines
80
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.

Dependency Surface

Detected Declarations

Annotated Snippet

struct ispif_intf_cmd_reg {
	u32 cmd_0;
	u32 cmd_1;
};

struct ispif_line {
	struct ispif_device *ispif;
	u8 id;
	u8 csid_id;
	u8 vfe_id;
	enum ispif_intf interface;
	struct v4l2_subdev subdev;
	struct media_pad pads[MSM_ISPIF_PADS_NUM];
	struct v4l2_mbus_framefmt fmt[MSM_ISPIF_PADS_NUM];
	const u32 *formats;
	unsigned int nformats;
};

struct ispif_device {
	void __iomem *base;
	void __iomem *base_clk_mux;
	u32 irq;
	char irq_name[30];
	struct camss_clock *clock;
	int nclocks;
	struct camss_clock  *clock_for_reset;
	int nclocks_for_reset;
	struct completion reset_complete[MSM_ISPIF_VFE_NUM];
	int power_count;
	struct mutex power_lock;
	struct ispif_intf_cmd_reg intf_cmd[MSM_ISPIF_VFE_NUM];
	struct mutex config_lock;
	unsigned int line_num;
	struct ispif_line *line;
	struct camss *camss;
};

struct camss_subdev_resources;

int msm_ispif_subdev_init(struct camss *camss,
			  const struct camss_subdev_resources *res);

int msm_ispif_register_entities(struct ispif_device *ispif,
				struct v4l2_device *v4l2_dev);

void msm_ispif_unregister_entities(struct ispif_device *ispif);

#endif /* QC_MSM_CAMSS_ISPIF_H */

Annotation

Implementation Notes