@@ -1224,22 +1224,28 @@ static int stratix10_svc_drv_probe(struct platform_device *pdev)
1224
1224
if (!svc -> intel_svc_fcs ) {
1225
1225
dev_err (dev , "failed to allocate %s device\n" , INTEL_FCS );
1226
1226
ret = - ENOMEM ;
1227
- goto err_unregister_dev ;
1227
+ goto err_unregister_rsu_dev ;
1228
1228
}
1229
1229
1230
1230
ret = platform_device_add (svc -> intel_svc_fcs );
1231
1231
if (ret ) {
1232
1232
platform_device_put (svc -> intel_svc_fcs );
1233
- goto err_unregister_dev ;
1233
+ goto err_unregister_rsu_dev ;
1234
1234
}
1235
1235
1236
+ ret = of_platform_default_populate (dev_of_node (dev ), NULL , dev );
1237
+ if (ret )
1238
+ goto err_unregister_fcs_dev ;
1239
+
1236
1240
dev_set_drvdata (dev , svc );
1237
1241
1238
1242
pr_info ("Intel Service Layer Driver Initialized\n" );
1239
1243
1240
1244
return 0 ;
1241
1245
1242
- err_unregister_dev :
1246
+ err_unregister_fcs_dev :
1247
+ platform_device_unregister (svc -> intel_svc_fcs );
1248
+ err_unregister_rsu_dev :
1243
1249
platform_device_unregister (svc -> stratix10_svc_rsu );
1244
1250
err_free_kfifo :
1245
1251
kfifo_free (& controller -> svc_fifo );
@@ -1253,6 +1259,8 @@ static void stratix10_svc_drv_remove(struct platform_device *pdev)
1253
1259
struct stratix10_svc * svc = dev_get_drvdata (& pdev -> dev );
1254
1260
struct stratix10_svc_controller * ctrl = platform_get_drvdata (pdev );
1255
1261
1262
+ of_platform_depopulate (ctrl -> dev );
1263
+
1256
1264
platform_device_unregister (svc -> intel_svc_fcs );
1257
1265
platform_device_unregister (svc -> stratix10_svc_rsu );
1258
1266
0 commit comments