/** * devm_drm_dp_hpd_bridge_alloc - allocate a HPD DisplayPort bridge * @parent: device instance providing this bridge * @np: device node pointer corresponding to this bridge instance * * Creates a simple DRM bridge with the type set to * DRM_MODE_CONNECTOR_DisplayPort, which terminates the bridge chain and is * able to send the HPD events. * * Return: bridge auxiliary device pointer or an error pointer
*/ struct auxiliary_device *devm_drm_dp_hpd_bridge_alloc(struct device *parent, struct device_node *np)
{ struct auxiliary_device *adev; int ret;
adev = kzalloc(sizeof(*adev), GFP_KERNEL); if (!adev) return ERR_PTR(-ENOMEM);
ret = ida_alloc(&drm_aux_hpd_bridge_ida, GFP_KERNEL); if (ret < 0) {
kfree(adev); return ERR_PTR(ret);
}
/** * devm_drm_dp_hpd_bridge_add - register a HDP DisplayPort bridge * @dev: struct device to tie registration lifetime to * @adev: bridge auxiliary device to be registered * * Returns: zero on success or a negative errno
*/ int devm_drm_dp_hpd_bridge_add(struct device *dev, struct auxiliary_device *adev)
{ int ret;
ret = auxiliary_device_add(adev); if (ret) return ret;
/** * drm_aux_hpd_bridge_notify - notify hot plug detection events * @dev: device created for the HPD bridge * @status: output connection status * * A wrapper around drm_bridge_hpd_notify() that is used to report hot plug * detection events for bridges created via drm_dp_hpd_bridge_register(). * * This function shall be called in a context that can sleep.
*/ void drm_aux_hpd_bridge_notify(struct device *dev, enum drm_connector_status status)
{ struct auxiliary_device *adev = to_auxiliary_dev(dev); struct drm_aux_hpd_bridge_data *data = auxiliary_get_drvdata(adev);
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.