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

Commit 9e25df37 authored by qctecmdr's avatar qctecmdr Committed by Gerrit - the friendly Code Review server
Browse files

Merge "cnss2: Move power on and bus init to the end of platform probe call"

parents 94b82595 a7ed8649
Loading
Loading
Loading
Loading
+21 −19
Original line number Diff line number Diff line
@@ -3162,19 +3162,9 @@ static int cnss_probe(struct platform_device *plat_dev)
	if (ret)
		goto reset_ctx;

	if (!test_bit(SKIP_DEVICE_BOOT, &plat_priv->ctrl_params.quirks)) {
		ret = cnss_power_on_device(plat_priv);
		if (ret)
			goto free_res;

		ret = cnss_bus_init(plat_priv);
		if (ret)
			goto power_off;
	}

	ret = cnss_register_esoc(plat_priv);
	if (ret)
		goto deinit_bus;
		goto free_res;

	ret = cnss_register_bus_scale(plat_priv);
	if (ret)
@@ -3204,6 +3194,19 @@ static int cnss_probe(struct platform_device *plat_dev)
	if (ret)
		goto destroy_debugfs;

	/* Make sure all platform related init are done before
	 * device power on and bus init.
	 */
	if (!test_bit(SKIP_DEVICE_BOOT, &plat_priv->ctrl_params.quirks)) {
		ret = cnss_power_on_device(plat_priv);
		if (ret)
			goto deinit_misc;

		ret = cnss_bus_init(plat_priv);
		if (ret)
			goto power_off;
	}

	cnss_register_coex_service(plat_priv);
	cnss_register_ims_service(plat_priv);

@@ -3215,6 +3218,11 @@ static int cnss_probe(struct platform_device *plat_dev)

	return 0;

power_off:
	if (!test_bit(SKIP_DEVICE_BOOT, &plat_priv->ctrl_params.quirks))
		cnss_power_off_device(plat_priv);
deinit_misc:
	cnss_misc_deinit(plat_priv);
destroy_debugfs:
	cnss_debugfs_destroy(plat_priv);
deinit_dms:
@@ -3229,12 +3237,6 @@ static int cnss_probe(struct platform_device *plat_dev)
	cnss_unregister_bus_scale(plat_priv);
unreg_esoc:
	cnss_unregister_esoc(plat_priv);
deinit_bus:
	if (!test_bit(SKIP_DEVICE_BOOT, &plat_priv->ctrl_params.quirks))
		cnss_bus_deinit(plat_priv);
power_off:
	if (!test_bit(SKIP_DEVICE_BOOT, &plat_priv->ctrl_params.quirks))
		cnss_power_off_device(plat_priv);
free_res:
	cnss_put_resources(plat_priv);
reset_ctx:
@@ -3251,15 +3253,15 @@ static int cnss_remove(struct platform_device *plat_dev)
	cnss_genl_exit();
	cnss_unregister_ims_service(plat_priv);
	cnss_unregister_coex_service(plat_priv);
	cnss_bus_deinit(plat_priv);
	cnss_misc_deinit(plat_priv);
	cnss_debugfs_destroy(plat_priv);
	cnss_qmi_deinit(plat_priv);
	cnss_dms_deinit(plat_priv);
	cnss_qmi_deinit(plat_priv);
	cnss_event_work_deinit(plat_priv);
	cnss_remove_sysfs(plat_priv);
	cnss_unregister_bus_scale(plat_priv);
	cnss_unregister_esoc(plat_priv);
	cnss_bus_deinit(plat_priv);
	cnss_put_resources(plat_priv);
	platform_set_drvdata(plat_dev, NULL);
	plat_env = NULL;