bridge->dev = encoder->dev;
bridge->encoder = encoder;
+ mutex_lock(&encoder->bridge_chain_mutex);
if (previous)
list_add(&bridge->chain_node, &previous->chain_node);
else
list_add(&bridge->chain_node, &encoder->bridge_chain);
+ mutex_unlock(&encoder->bridge_chain_mutex);
if (bridge->funcs->attach) {
ret = bridge->funcs->attach(bridge, encoder, flags);
err_reset_bridge:
bridge->dev = NULL;
bridge->encoder = NULL;
+ mutex_lock(&encoder->bridge_chain_mutex);
list_del(&bridge->chain_node);
+ mutex_unlock(&encoder->bridge_chain_mutex);
if (ret != -EPROBE_DEFER)
DRM_ERROR("failed to attach bridge %pOF to encoder %s: %d\n",