drivers/gpu/drm/imx/dc/dc-pe.h

Source file repositories/reference/linux-study-clean/drivers/gpu/drm/imx/dc/dc-pe.h

File Facts

System
Linux kernel
Corpus path
drivers/gpu/drm/imx/dc/dc-pe.h
Extension
.h
Size
2444 bytes
Lines
102
Domain
Driver Families
Bucket
drivers/gpu
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 dc_cf {
	struct regmap *reg_cfg;
	enum dc_link_id link;
};

struct dc_ed {
	struct device *dev;
	struct regmap *reg_pec;
	struct regmap *reg_cfg;
	int irq_shdload;
};

struct dc_lb {
	struct device *dev;
	struct regmap *reg_pec;
	struct regmap *reg_cfg;
	int id;
	enum dc_link_id link;
};

struct dc_pe {
	struct device *dev;
	struct clk *clk_axi;
	struct dc_cf *cf_safe[DC_DISPLAYS];
	struct dc_cf *cf_cont[DC_DISPLAYS];
	struct dc_ed *ed_safe[DC_DISPLAYS];
	struct dc_ed *ed_cont[DC_DISPLAYS];
	struct dc_fu *fu_disp[DC_DISP_FU_CNT];
	struct dc_lb *lb[DC_LB_CNT];
};

/* Constant Frame Unit */
enum dc_link_id dc_cf_get_link_id(struct dc_cf *cf);
void dc_cf_framedimensions(struct dc_cf *cf, unsigned int w, unsigned int h);
void dc_cf_constantcolor_black(struct dc_cf *cf);
void dc_cf_constantcolor_blue(struct dc_cf *cf);
void dc_cf_init(struct dc_cf *cf);

/* External Destination Unit */
void dc_ed_pec_src_sel(struct dc_ed *ed, enum dc_link_id src);
void dc_ed_pec_sync_trigger(struct dc_ed *ed);
void dc_ed_init(struct dc_ed *ed);

/* Layer Blend Unit */
enum dc_link_id dc_lb_get_link_id(struct dc_lb *lb);
void dc_lb_pec_dynamic_prim_sel(struct dc_lb *lb, enum dc_link_id prim);
void dc_lb_pec_dynamic_sec_sel(struct dc_lb *lb, enum dc_link_id sec);
void dc_lb_pec_clken(struct dc_lb *lb, enum dc_pec_clken clken);
void dc_lb_mode(struct dc_lb *lb, enum dc_lb_mode mode);
void dc_lb_position(struct dc_lb *lb, int x, int y);
int dc_lb_get_id(struct dc_lb *lb);
void dc_lb_init(struct dc_lb *lb);

#endif /* __DC_PIXEL_ENGINE_H__ */

Annotation

Implementation Notes