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

Commit 43cc5f8b authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "mhi: core: Only allow registration if channel is supported by endpoint."

parents fb7e08f8 ab51e597
Loading
Loading
Loading
Loading
+10 −1
Original line number Diff line number Diff line
@@ -509,6 +509,7 @@ int mhi_register_channel(struct mhi_client_handle **client_handle,
	struct mhi_client_config *client_config;
	const char *node_name;
	enum MHI_CLIENT_CHANNEL chan;
	struct mhi_chan_info chan_info = {0};
	int ret;

	if (!client_info || client_info->dev->of_node == NULL)
@@ -538,6 +539,14 @@ int mhi_register_channel(struct mhi_client_handle **client_handle,
	mhi_log(mhi_dev_ctxt, MHI_MSG_INFO,
		"Registering channel 0x%x for client\n", chan);

	/* check if it's a supported channel by endpoint */
	ret = get_chan_props(mhi_dev_ctxt, chan, &chan_info);
	if (ret) {
		mhi_log(mhi_dev_ctxt, MHI_MSG_ERROR,
			"Client try to register unsupported chan:%d\n", chan);
		return -EINVAL;
	}

	*client_handle = kzalloc(sizeof(struct mhi_client_handle), GFP_KERNEL);
	if (NULL == *client_handle)
		return -ENOMEM;
@@ -568,7 +577,7 @@ int mhi_register_channel(struct mhi_client_handle **client_handle,
	if (MHI_CLIENT_IP_HW_0_IN  == chan)
		client_config->intmod_t = 10;

	get_chan_props(mhi_dev_ctxt, chan, &client_config->chan_info);
	client_config->chan_info = chan_info;
	ret = enable_bb_ctxt(mhi_dev_ctxt, &mhi_dev_ctxt->chan_bb_list[chan],
			     client_config->chan_info.max_desc, chan,
			     client_config->client_info.max_payload);