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

Commit 8b81dd70 authored by Skylar Chang's avatar Skylar Chang
Browse files

msm: ipa3: fix benign prints on ipa3_usb_init



On device bootup, ipa3_usb_init tried to access
IPA3's ipc_logbuf which is not initialized yet.
Therefore seeing those benign prints as "IPA HW
is not supported on this target". The fix is to
not access IPA3's ipc_logbuf on bootup and also
add debug print on ipa_api.c to see which entity
calling IPA3's API before ipa3-driver is probed.

Change-Id: I7aa23eabdf963146ae628eb159eee13a3e2bb935
Signed-off-by: default avatarSkylar Chang <chiaweic@codeaurora.org>
parent 1fac7f53
Loading
Loading
Loading
Loading
+8 −4
Original line number Diff line number Diff line
@@ -26,7 +26,8 @@
#define IPA_API_DISPATCH_RETURN(api, p...) \
	do { \
		if (!ipa_api_ctrl) { \
			pr_err("IPA HW is not supported on this target\n"); \
			pr_err("%s:%d IPA HW is not supported\n", \
				__func__, __LINE__); \
			ret = -EPERM; \
		} \
		else { \
@@ -44,7 +45,8 @@
#define IPA_API_DISPATCH(api, p...) \
	do { \
		if (!ipa_api_ctrl) \
			pr_err("IPA HW is not supported on this target\n"); \
			pr_err("%s:%d IPA HW is not supported\n", \
				__func__, __LINE__); \
		else { \
			if (ipa_api_ctrl->api) { \
				ipa_api_ctrl->api(p); \
@@ -59,7 +61,8 @@
#define IPA_API_DISPATCH_RETURN_PTR(api, p...) \
	do { \
		if (!ipa_api_ctrl) { \
			pr_err("IPA HW is not supported on this target\n"); \
			pr_err("%s:%d IPA HW is not supported\n", \
				__func__, __LINE__); \
			ret = NULL; \
		} \
		else { \
@@ -77,7 +80,8 @@
#define IPA_API_DISPATCH_RETURN_BOOL(api, p...) \
	do { \
		if (!ipa_api_ctrl) { \
			pr_err("IPA HW is not supported on this target\n"); \
			pr_err("%s:%d IPA HW is not supported\n", \
				__func__, __LINE__); \
			ret = false; \
		} \
		else { \
+8 −8
Original line number Diff line number Diff line
@@ -2034,7 +2034,7 @@ static void ipa_usb_debugfs_init(void)

	ipa3_usb_ctx->dent = debugfs_create_dir("ipa_usb", 0);
	if (IS_ERR(ipa3_usb_ctx->dent)) {
		IPA_USB_ERR("fail to create folder in debug_fs.\n");
		pr_err("fail to create folder in debug_fs.\n");
		return;
	}

@@ -2043,7 +2043,7 @@ static void ipa_usb_debugfs_init(void)
			&ipa3_ipa_usb_ops);
	if (!ipa3_usb_ctx->dfile_state_info ||
		IS_ERR(ipa3_usb_ctx->dfile_state_info)) {
		IPA_USB_ERR("failed to create file for state_info\n");
		pr_err("failed to create file for state_info\n");
		goto fail;
	}

@@ -2644,11 +2644,11 @@ static int __init ipa3_usb_init(void)
	unsigned long flags;
	int res;

	IPA_USB_DBG("entry\n");
	pr_debug("entry\n");
	ipa3_usb_ctx = kzalloc(sizeof(struct ipa3_usb_context), GFP_KERNEL);
	if (ipa3_usb_ctx == NULL) {
		IPA_USB_ERR("failed to allocate memory\n");
		IPA_USB_ERR(":ipa_usb init failed\n");
		pr_err("failed to allocate memory\n");
		pr_err(":ipa_usb init failed\n");
		return -EFAULT;
	}
	memset(ipa3_usb_ctx, 0, sizeof(struct ipa3_usb_context));
@@ -2680,19 +2680,19 @@ static int __init ipa3_usb_init(void)

	ipa3_usb_ctx->wq = create_singlethread_workqueue("ipa_usb_wq");
	if (!ipa3_usb_ctx->wq) {
		IPA_USB_ERR("failed to create workqueue\n");
		pr_err("failed to create workqueue\n");
		res = -EFAULT;
		goto ipa_usb_workqueue_fail;
	}

	ipa_usb_debugfs_init();

	IPA_USB_INFO("exit: IPA_USB init success!\n");
	pr_info("exit: IPA_USB init success!\n");

	return 0;

ipa_usb_workqueue_fail:
	IPA_USB_ERR(":init failed (%d)\n", -res);
	pr_err(":init failed (%d)\n", -res);
	kfree(ipa3_usb_ctx);
	return res;
}