Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 92fa876b authored by Jilai Wang's avatar Jilai Wang
Browse files

msm: npu: Register cooling device after host init



While registering npu as a cooling device, thermal framework will
call registed APIs which causes "mutex used before initializing"
issue since mutex will be initialized in npu_host_init funciton.
This change is to register npu as cooling device after npu_host_init.

Change-Id: I99b9110b6bb871732addf96418fd3465145bc6f4
Signed-off-by: default avatarJilai Wang <jilaiw@codeaurora.org>
parent 2df7c68f
Loading
Loading
Loading
Loading
+12 −12
Original line number Diff line number Diff line
@@ -2302,6 +2302,18 @@ static int npu_probe(struct platform_device *pdev)
		goto error_res_init;
	}

	rc = npu_debugfs_init(npu_dev);
	if (rc)
		goto error_driver_init;

	mutex_init(&npu_dev->dev_lock);

	rc = npu_host_init(npu_dev);
	if (rc) {
		NPU_ERR("unable to init host\n");
		goto error_driver_init;
	}

	if (IS_ENABLED(CONFIG_THERMAL)) {
		tcdev = thermal_of_cooling_device_register(pdev->dev.of_node,
							  "npu", npu_dev,
@@ -2316,18 +2328,6 @@ static int npu_probe(struct platform_device *pdev)
		thermal_cdev_update(tcdev);
	}

	rc = npu_debugfs_init(npu_dev);
	if (rc)
		goto error_driver_init;

	mutex_init(&npu_dev->dev_lock);

	rc = npu_host_init(npu_dev);
	if (rc) {
		NPU_ERR("unable to init host\n");
		goto error_driver_init;
	}

	g_npu_dev = npu_dev;

	return rc;