platform_device_register_simple() is going away, switch to
using platfrom_device_alloc() + platform_device_add(). Also
make sure that wbsd_driver gets unregistered when wbsd_init
fails.
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
Acked-by: Pierre Ossman <drzeus@drzeus.cx>
                if (result < 0)
                        return result;
 
-               wbsd_device = platform_device_register_simple(DRIVER_NAME, -1,
-                       NULL, 0);
-               if (IS_ERR(wbsd_device))
-                       return PTR_ERR(wbsd_device);
+               wbsd_device = platform_device_alloc(DRIVER_NAME, -1);
+               if (!wbsd_device)
+               {
+                       platform_driver_unregister(&wbsd_driver);
+                       return -ENOMEM;
+               }
+
+               result = platform_device_add(wbsd_device);
+               if (result)
+               {
+                       platform_device_put(wbsd_device);
+                       platform_driver_unregister(&wbsd_driver);
+                       return result;
+               }
        }
 
        return 0;