“720be99006c5830970d5b62633c92b29e4cef137”上不存在“drivers/sh/intc.c”
提交 7ff6e012 编写于 作者: V Viresh Kumar 提交者: Greg Kroah-Hartman

greybus: control: Mode-switch is a 'core' operation

The operation layer allows only the 'core' operations on a connection,
which is in its 'disconnecting' state.

Mode switch is sent at the very end of interface-disable sequence, and
the control connection is already in its 'disconnecting' state at that
time. And so gb_operation_get_active() always fail with error -ENOTCONN.

The operation core already has support for such 'core' operations, just
that we were missing the needed flag while creating the mode switch
operation.

Fix that.

Tested on EVT 1.5 with gpbridge-test module.
Signed-off-by: NViresh Kumar <viresh.kumar@linaro.org>
Tested-by: NKarthik Ravi Shankar <karthikrs@google.com>
Signed-off-by: NGreg Kroah-Hartman <gregkh@google.com>
上级 c92c1d02
......@@ -163,18 +163,24 @@ int gb_control_disconnecting_operation(struct gb_control *control,
int gb_control_mode_switch_operation(struct gb_control *control)
{
struct gb_operation *operation;
int ret;
ret = gb_operation_unidirectional(control->connection,
operation = gb_operation_create_core(control->connection,
GB_CONTROL_TYPE_MODE_SWITCH,
NULL, 0);
0, 0, GB_OPERATION_FLAG_UNIDIRECTIONAL,
GFP_KERNEL);
if (!operation)
return -ENOMEM;
ret = gb_operation_request_send_sync(operation);
if (ret) {
dev_err(&control->dev, "failed to send mode switch: %d\n",
ret);
return ret;
dev_err(&control->dev, "failed to send mode switch: %d\n", ret);
}
return 0;
gb_operation_put(operation);
return ret;
}
int gb_control_timesync_enable(struct gb_control *control, u8 count,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册