Loading drivers/gpu/drm/drm_bridge.c +26 −0 Original line number Diff line number Diff line Loading @@ -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 * Loading include/drm/drm_bridge.h +19 −0 Original line number Diff line number Diff line Loading @@ -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: * Loading Loading @@ -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 Loading
drivers/gpu/drm/drm_bridge.c +26 −0 Original line number Diff line number Diff line Loading @@ -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 * Loading
include/drm/drm_bridge.h +19 −0 Original line number Diff line number Diff line Loading @@ -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: * Loading Loading @@ -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