forked from ~ljy/RK356X_SDK_RELEASE

hc
2024-01-31 f70575805708cabdedea7498aaa3f710fde4d920
kernel/drivers/gpu/arm/bifrost/arbiter/mali_kbase_arbif.c
....@@ -1,7 +1,7 @@
11 // SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note
22 /*
33 *
4
- * (C) COPYRIGHT 2019-2021 ARM Limited. All rights reserved.
4
+ * (C) COPYRIGHT 2019-2022 ARM Limited. All rights reserved.
55 *
66 * This program is free software and is provided to you under the terms of the
77 * GNU General Public License version 2 as published by the Free Software
....@@ -28,12 +28,12 @@
2828 #include <tl/mali_kbase_tracepoints.h>
2929 #include <linux/of.h>
3030 #include <linux/of_platform.h>
31
-#include "mali_kbase_arbiter_interface.h"
31
+#include "linux/mali_arbiter_interface.h"
3232
3333 /* Arbiter interface version against which was implemented this module */
3434 #define MALI_REQUIRED_KBASE_ARBITER_INTERFACE_VERSION 5
3535 #if MALI_REQUIRED_KBASE_ARBITER_INTERFACE_VERSION != \
36
- MALI_KBASE_ARBITER_INTERFACE_VERSION
36
+ MALI_ARBITER_INTERFACE_VERSION
3737 #error "Unsupported Mali Arbiter interface version."
3838 #endif
3939
....@@ -205,6 +205,7 @@
205205
206206 if (!pdev->dev.driver || !try_module_get(pdev->dev.driver->owner)) {
207207 dev_err(kbdev->dev, "arbiter_if driver not available\n");
208
+ put_device(&pdev->dev);
208209 return -EPROBE_DEFER;
209210 }
210211 kbdev->arb.arb_dev = &pdev->dev;
....@@ -212,6 +213,7 @@
212213 if (!arb_if) {
213214 dev_err(kbdev->dev, "arbiter_if driver not ready\n");
214215 module_put(pdev->dev.driver->owner);
216
+ put_device(&pdev->dev);
215217 return -EPROBE_DEFER;
216218 }
217219
....@@ -233,6 +235,7 @@
233235 if (err) {
234236 dev_err(&pdev->dev, "Failed to register with arbiter\n");
235237 module_put(pdev->dev.driver->owner);
238
+ put_device(&pdev->dev);
236239 if (err != -EPROBE_DEFER)
237240 err = -EFAULT;
238241 return err;
....@@ -262,8 +265,10 @@
262265 arb_if->vm_ops.vm_arb_unregister_dev(kbdev->arb.arb_if);
263266 }
264267 kbdev->arb.arb_if = NULL;
265
- if (kbdev->arb.arb_dev)
268
+ if (kbdev->arb.arb_dev) {
266269 module_put(kbdev->arb.arb_dev->driver->owner);
270
+ put_device(kbdev->arb.arb_dev);
271
+ }
267272 kbdev->arb.arb_dev = NULL;
268273 }
269274