sizeof(request), NULL, 0);
}
-static int gb_control_request_recv(u8 type, struct gb_operation *op)
-{
- struct gb_connection *connection = op->connection;
- struct gb_protocol_version_response *version;
-
- switch (type) {
- case GB_CONTROL_TYPE_PROBE_AP:
- // TODO
- // Send authenticated block of data, confirming this module is
- // an AP.
- break;
- case GB_REQUEST_TYPE_PROTOCOL_VERSION:
- if (!gb_operation_response_alloc(op, sizeof(*version),
- GFP_KERNEL)) {
- dev_err(&connection->bundle->dev,
- "%s: error allocating response\n", __func__);
- return -ENOMEM;
- }
-
- version = op->response->payload;
- version->major = GB_CONTROL_VERSION_MAJOR;
- version->minor = GB_CONTROL_VERSION_MINOR;
- break;
- case GB_CONTROL_TYPE_CONNECTED:
- case GB_CONTROL_TYPE_DISCONNECTED:
- break;
- default:
- WARN_ON(1);
- break;
- }
-
- return 0;
-}
-
static int gb_control_connection_init(struct gb_connection *connection)
{
struct gb_control *control;
.minor = 1,
.connection_init = gb_control_connection_init,
.connection_exit = gb_control_connection_exit,
- .request_recv = gb_control_request_recv,
.flags = GB_PROTOCOL_SKIP_CONTROL_CONNECTED |
GB_PROTOCOL_SKIP_CONTROL_DISCONNECTED,
};