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.
- 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/device.hlinux/kernel.hlinux/of.hlinux/regmap.hdrm/drm_atomic.hdrm/drm_bridge.hdrm/drm_device.hdrm/drm_encoder.hdrm/drm_modeset_helper_vtables.h
Detected Declarations
struct ldbstruct ldb_channelstruct ldbenum ldb_channel_link_type
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
- Immediate include surface: `linux/device.h`, `linux/kernel.h`, `linux/of.h`, `linux/regmap.h`, `drm/drm_atomic.h`, `drm/drm_bridge.h`, `drm/drm_device.h`, `drm/drm_encoder.h`.
- Detected declarations: `struct ldb`, `struct ldb_channel`, `struct ldb`, `enum ldb_channel_link_type`.
- Atlas domain: Driver Families / drivers/gpu.
- 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.