Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4c0dedfa authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "drm/bridge: add connector_init interface in drm_bridge_funcs"

parents 4b19ee48 5b7c5311
Loading
Loading
Loading
Loading
+26 −0
Original line number Diff line number Diff line
@@ -148,6 +148,32 @@ void drm_bridge_detach(struct drm_bridge *bridge)
}
EXPORT_SYMBOL(drm_bridge_detach);

/**
 * drm_bridge_connector_init - call bridge's connector_init callback to allow
 *                     the bridge to update connector's behavior.
 * @bridge: bridge control structure
 * @connector: connector control structure
 *
 * Calls ->connector_init() &drm_bridge_funcs op for the bridge.
 *
 * RETURNS:
 * Zero on success, error code on failure
 */
int drm_bridge_connector_init(struct drm_bridge *bridge,
	struct drm_connector *connector)
{
	int ret = 0;

	if (!bridge || !connector)
		return -EINVAL;

	if (bridge->funcs->connector_init)
		ret = bridge->funcs->connector_init(bridge, connector);

	return ret;
}
EXPORT_SYMBOL(drm_bridge_connector_init);

/**
 * DOC: bridge callbacks
 *
+19 −0
Original line number Diff line number Diff line
@@ -58,6 +58,23 @@ struct drm_bridge_funcs {
	 */
	void (*detach)(struct drm_bridge *bridge);

	/**
	 * @connector_init:
	 *
	 * This callback is used to init the connector from bridge side. In some
	 * cases connector and bridge are created in different modules, and the
	 * connector ops might need extra info from bridge. This callback offers
	 * the opportunity to overwrite connector's behavior in external bridge.
	 *
	 * The connector_init callback is optional.
	 *
	 * RETURNS:
	 *
	 * Zero on success, error code on failure.
	 */
	int (*connector_init)(struct drm_bridge *bridge,
				struct drm_connector *connector);

	/**
	 * @mode_fixup:
	 *
@@ -214,5 +231,7 @@ void drm_bridge_mode_set(struct drm_bridge *bridge,
			struct drm_display_mode *adjusted_mode);
void drm_bridge_pre_enable(struct drm_bridge *bridge);
void drm_bridge_enable(struct drm_bridge *bridge);
int drm_bridge_connector_init(struct drm_bridge *bridge,
	struct drm_connector *connector);

#endif