Commit 75499b32 authored by Luca Weiss's avatar Luca Weiss Committed by Bjorn Andersson
Browse files

rpmsg: qcom_smd: Improve error handling for qcom_smd_parse_edge



When the mailbox driver has not probed yet, the error message "failed to
parse smd edge" is just going to confuse users, so improve the error
prints a bit.

Cover the last remaining exits from qcom_smd_parse_edge with proper
error prints, especially the one for the mbox_chan deserved
dev_err_probe to handle EPROBE_DEFER nicely. And add one for ipc_regmap
also to be complete.

With this done, we can remove the outer print completely.

Reviewed-by: default avatarDmitry Baryshkov <dmitry.baryshkov@linaro.org>
Signed-off-by: default avatarLuca Weiss <luca@lucaweiss.eu>
Link: https://lore.kernel.org/r/20250326-apcs-mboxes-v3-1-e20f39e125f2@lucaweiss.eu


Signed-off-by: default avatarBjorn Andersson <andersson@kernel.org>
parent 3a70b945
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -1369,7 +1369,8 @@ static int qcom_smd_parse_edge(struct device *dev,
	edge->mbox_chan = mbox_request_channel(&edge->mbox_client, 0);
	if (IS_ERR(edge->mbox_chan)) {
		if (PTR_ERR(edge->mbox_chan) != -ENODEV) {
			ret = PTR_ERR(edge->mbox_chan);
			ret = dev_err_probe(dev, PTR_ERR(edge->mbox_chan),
					    "failed to acquire IPC mailbox\n");
			goto put_node;
		}

@@ -1386,6 +1387,7 @@ static int qcom_smd_parse_edge(struct device *dev,
		of_node_put(syscon_np);
		if (IS_ERR(edge->ipc_regmap)) {
			ret = PTR_ERR(edge->ipc_regmap);
			dev_err(dev, "failed to get regmap from syscon: %d\n", ret);
			goto put_node;
		}

@@ -1501,10 +1503,8 @@ struct qcom_smd_edge *qcom_smd_register_edge(struct device *parent,
	}

	ret = qcom_smd_parse_edge(&edge->dev, node, edge);
	if (ret) {
		dev_err(&edge->dev, "failed to parse smd edge\n");
	if (ret)
		goto unregister_dev;
	}

	ret = qcom_smd_create_chrdev(edge);
	if (ret) {