@ -135,21 +135,27 @@ int device_bind(struct udevice *parent, const struct driver *drv,
return 0 ;
fail_child_post_bind :
if ( drv - > unbind & & drv - > unbind ( dev ) ) {
dm_warn ( " unbind() method failed on dev '%s' on error path \n " ,
dev - > name ) ;
if ( IS_ENABLED ( DM_DEVICE_REMOVE ) ) {
if ( drv - > unbind & & drv - > unbind ( dev ) ) {
dm_warn ( " unbind() method failed on dev '%s' on error path \n " ,
dev - > name ) ;
}
}
fail_bind :
if ( uclass_unbind_device ( dev ) ) {
dm_warn ( " Failed to unbind dev '%s' on error path \n " ,
dev - > name ) ;
if ( IS_ENABLED ( DM_DEVICE_REMOVE ) ) {
if ( uclass_unbind_device ( dev ) ) {
dm_warn ( " Failed to unbind dev '%s' on error path \n " ,
dev - > name ) ;
}
}
fail_uclass_bind :
list_del ( & dev - > sibling_node ) ;
if ( dev - > flags & DM_FLAG_ALLOC_PARENT_PDATA ) {
free ( dev - > parent_platdata ) ;
dev - > parent_platdata = NULL ;
if ( IS_ENABLED ( DM_DEVICE_REMOVE ) ) {
list_del ( & dev - > sibling_node ) ;
if ( dev - > flags & DM_FLAG_ALLOC_PARENT_PDATA ) {
free ( dev - > parent_platdata ) ;
dev - > parent_platdata = NULL ;
}
}
fail_alloc3 :
if ( dev - > flags & DM_FLAG_ALLOC_UCLASS_PDATA ) {