drivers/gpu/drm/bridge/imx/imx-ldb-helper.h

Source file repositories/reference/linux-study-clean/drivers/gpu/drm/bridge/imx/imx-ldb-helper.h

File Facts

System
Linux kernel
Corpus path
drivers/gpu/drm/bridge/imx/imx-ldb-helper.h
Extension
.h
Size
2498 bytes
Lines
96
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 ldb_channel {
	struct ldb *ldb;
	struct drm_bridge bridge;
	struct drm_bridge *next_bridge;
	struct device_node *np;
	u32 chno;
	bool is_available;
	u32 in_bus_format;
	u32 out_bus_format;
	enum ldb_channel_link_type link_type;
};

struct ldb {
	struct regmap *regmap;
	struct device *dev;
	struct ldb_channel *channel[MAX_LDB_CHAN_NUM];
	unsigned int ctrl_reg;
	u32 ldb_ctrl;
	unsigned int available_ch_cnt;
};

#define bridge_to_ldb_ch(b)	container_of(b, struct ldb_channel, bridge)

bool ldb_channel_is_single_link(struct ldb_channel *ldb_ch);
bool ldb_channel_is_split_link(struct ldb_channel *ldb_ch);

int ldb_bridge_atomic_check_helper(struct drm_bridge *bridge,
				   struct drm_bridge_state *bridge_state,
				   struct drm_crtc_state *crtc_state,
				   struct drm_connector_state *conn_state);

void ldb_bridge_mode_set_helper(struct drm_bridge *bridge,
				const struct drm_display_mode *mode,
				const struct drm_display_mode *adjusted_mode);

void ldb_bridge_enable_helper(struct drm_bridge *bridge);

void ldb_bridge_disable_helper(struct drm_bridge *bridge);

int ldb_bridge_attach_helper(struct drm_bridge *bridge, struct drm_encoder *encoder,
			     enum drm_bridge_attach_flags flags);

int ldb_init_helper(struct ldb *ldb);

int ldb_find_next_bridge_helper(struct ldb *ldb);

void ldb_add_bridge_helper(struct ldb *ldb);

void ldb_remove_bridge_helper(struct ldb *ldb);

#endif /* __IMX_LDB_HELPER__ */

Annotation

Implementation Notes