drm/msm/dp: free submodule memory on probe failure

Free submodule memory in the event of a probe failure in
order to prevent any potential memory leaks. Furthermore,
unregister svid handler with the USB driver before freeing
the usbpd submodule memory.

CRs-Fixed: 2103490
Change-Id: Ia9ec86d61bc045bca1d162585d0a3e54d47b4582
Signed-off-by: Tatenda Chipeperekwa <tatendac@codeaurora.org>
diff --git a/drivers/gpu/drm/msm/dp/dp_debug.c b/drivers/gpu/drm/msm/dp/dp_debug.c
index cc9e623..d0512e6 100644
--- a/drivers/gpu/drm/msm/dp/dp_debug.c
+++ b/drivers/gpu/drm/msm/dp/dp_debug.c
@@ -463,7 +463,11 @@
 	dp_debug->hdisplay = 0;
 	dp_debug->vrefresh = 0;
 
-	dp_debug_init(dp_debug);
+	rc = dp_debug_init(dp_debug);
+	if (rc) {
+		devm_kfree(dev, debug);
+		goto error;
+	}
 
 	return dp_debug;
 error:
@@ -495,5 +499,5 @@
 
 	dp_debug_deinit(dp_debug);
 
-	kzfree(debug);
+	devm_kfree(debug->dev, debug);
 }