drivers/gpu/drm/display/drm_bridge_connector.c

Source file repositories/reference/linux-study-clean/drivers/gpu/drm/display/drm_bridge_connector.c

File Facts

System
Linux kernel
Corpus path
drivers/gpu/drm/display/drm_bridge_connector.c
Extension
.c
Size
32390 bytes
Lines
1068
Domain
Driver Families
Bucket
drivers/gpu
Inferred role
Driver Families: exported/initcall integration point
Status
integration 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 drm_bridge_connector {
	/**
	 * @base: The base DRM connector
	 */
	struct drm_connector base;
	/**
	 * @encoder:
	 *
	 * The encoder at the start of the bridges chain.
	 */
	struct drm_encoder *encoder;
	/**
	 * @bridge_edid:
	 *
	 * The last bridge in the chain (closest to the connector) that provides
	 * EDID read support, if any (see &DRM_BRIDGE_OP_EDID).
	 */
	struct drm_bridge *bridge_edid;
	/**
	 * @bridge_hpd:
	 *
	 * The last bridge in the chain (closest to the connector) that provides
	 * hot-plug detection notification, if any (see &DRM_BRIDGE_OP_HPD).
	 */
	struct drm_bridge *bridge_hpd;
	/**
	 * @bridge_detect:
	 *
	 * The last bridge in the chain (closest to the connector) that provides
	 * connector detection, if any (see &DRM_BRIDGE_OP_DETECT).
	 */
	struct drm_bridge *bridge_detect;
	/**
	 * @bridge_modes:
	 *
	 * The last bridge in the chain (closest to the connector) that provides
	 * connector modes detection, if any (see &DRM_BRIDGE_OP_MODES).
	 */
	struct drm_bridge *bridge_modes;
	/**
	 * @bridge_hdmi:
	 *
	 * The bridge in the chain that implements necessary support for the
	 * HDMI connector infrastructure, if any (see &DRM_BRIDGE_OP_HDMI).
	 */
	struct drm_bridge *bridge_hdmi;
	/**
	 * @bridge_hdmi_audio:
	 *
	 * The bridge in the chain that implements necessary support for the
	 * HDMI Audio infrastructure, if any (see &DRM_BRIDGE_OP_HDMI_AUDIO).
	 */
	struct drm_bridge *bridge_hdmi_audio;
	/**
	 * @bridge_dp_audio:
	 *
	 * The bridge in the chain that implements necessary support for the
	 * DisplayPort Audio infrastructure, if any (see
	 * &DRM_BRIDGE_OP_DP_AUDIO).
	 */
	struct drm_bridge *bridge_dp_audio;
	/**
	 * @bridge_hdmi_cec:
	 *
	 * The bridge in the chain that implements CEC support, if any (see
	 * DRM_BRIDGE_OP_HDMI_CEC_NOTIFIER).
	 */
	struct drm_bridge *bridge_hdmi_cec;

	/**
	 * @hdmi_funcs:
	 *
	 * The particular &drm_connector_hdmi_funcs implementation for this
	 * bridge connector.
	 */
	struct drm_connector_hdmi_funcs hdmi_funcs;
};

#define to_drm_bridge_connector(x) \
	container_of(x, struct drm_bridge_connector, base)

/* -----------------------------------------------------------------------------
 * Bridge Connector Hot-Plug Handling
 */

static void drm_bridge_connector_hpd_notify(struct drm_connector *connector,
					    enum drm_connector_status status)
{
	struct drm_bridge_connector *bridge_connector =
		to_drm_bridge_connector(connector);

Annotation

Implementation Notes