diff --git a/drivers/staging/board/board.c b/drivers/staging/board/board.c
index 3eb5eb8f069c236da870eb4b13a677eb560a1a1f..965afc79aadd8001a0c8afa4ae12c43f49bf9d86 100644
--- a/drivers/staging/board/board.c
+++ b/drivers/staging/board/board.c
@@ -187,6 +187,9 @@ int __init board_staging_register_device(const struct board_staging_dev *dev)
 	for (i = 0; i < dev->nclocks; i++)
 		board_staging_register_clock(&dev->clocks[i]);
 
+	if (dev->domain)
+		board_staging_add_dev_domain(pdev, dev->domain);
+
 	error = platform_device_register(pdev);
 	if (error) {
 		pr_err("Failed to register device %s (%d)\n", pdev->name,
@@ -194,9 +197,6 @@ int __init board_staging_register_device(const struct board_staging_dev *dev)
 		return error;
 	}
 
-	if (dev->domain)
-		board_staging_add_dev_domain(pdev, dev->domain);
-
 	return error;
 }