hc
2024-05-14 bedbef8ad3e75a304af6361af235302bcc61d06b
kernel/drivers/hsi/controllers/omap_ssi_core.c
....@@ -502,8 +502,10 @@
502502 platform_set_drvdata(pd, ssi);
503503
504504 err = ssi_add_controller(ssi, pd);
505
- if (err < 0)
505
+ if (err < 0) {
506
+ hsi_put_controller(ssi);
506507 goto out1;
508
+ }
507509
508510 pm_runtime_enable(&pd->dev);
509511
....@@ -536,9 +538,9 @@
536538 device_for_each_child(&pd->dev, NULL, ssi_remove_ports);
537539 out2:
538540 ssi_remove_controller(ssi);
541
+ pm_runtime_disable(&pd->dev);
539542 out1:
540543 platform_set_drvdata(pd, NULL);
541
- pm_runtime_disable(&pd->dev);
542544
543545 return err;
544546 }
....@@ -629,7 +631,13 @@
629631 if (ret)
630632 return ret;
631633
632
- return platform_driver_register(&ssi_port_pdriver);
634
+ ret = platform_driver_register(&ssi_port_pdriver);
635
+ if (ret) {
636
+ platform_driver_unregister(&ssi_pdriver);
637
+ return ret;
638
+ }
639
+
640
+ return 0;
633641 }
634642 module_init(ssi_init);
635643