@@ -298,14 +298,6 @@ static int __devinit omap34xx_bridge_probe(struct platform_device *pdev)
bridge_device->cdev.owner = THIS_MODULE;
bridge_device->cdev.ops = &bridge_fops;
- status = cdev_add(&bridge_device->cdev, dev, 1);
-
- if (status) {
- GT_0trace(driverTrace, GT_7CLASS,
- "Failed to add the bridge device \n");
- return status;
- }
-
/* udev support */
bridge_class = class_create(THIS_MODULE, "ti_bridge");
@@ -328,14 +320,6 @@ static int __devinit omap34xx_bridge_probe(struct platform_device *pdev)
GT_0trace(driverTrace, GT_ENTER, "-> driver_init\n");
-#ifdef CONFIG_PM
- /* Initialize the wait queue */
- if (!status) {
- bridge_suspend_data.suspended = 0;
- init_waitqueue_head(&bridge_suspend_data.suspend_wq);
- }
-#endif
-
SERVICES_Init();
/* Autostart flag. This should be set to true if the DSP image should
@@ -429,6 +413,19 @@ static int __devinit omap34xx_bridge_probe(struct platform_device *pdev)
} else {
GT_0trace(driverTrace, GT_5CLASS,
"DSP/BIOS Bridge driver loaded\n");
+ /* Announce to kernel that we are ready */
+ status = cdev_add(&bridge_device->cdev, dev, 1);
+ if (status) {
+ GT_0trace(driverTrace, GT_7CLASS,
+ "Failed to add the bridge device \n");
+ }
+ else {
+ #ifdef CONFIG_PM
+ /* Initialize the wait queue */
+ bridge_suspend_data.suspended = 0;
+ init_waitqueue_head(&bridge_suspend_data.suspend_wq);
+ #endif
+ }
}
}