gb_connection_svc_connection_create(struct gb_connection *connection)
{
struct gb_host_device *hd = connection->hd;
- struct gb_protocol *protocol = connection->protocol;
struct gb_interface *intf;
int ret;
- if (protocol->flags & GB_PROTOCOL_SKIP_SVC_CONNECTION)
+ if (gb_connection_is_static(connection))
return 0;
intf = connection->bundle->intf;
static void
gb_connection_svc_connection_destroy(struct gb_connection *connection)
{
- if (connection->protocol->flags & GB_PROTOCOL_SKIP_SVC_CONNECTION)
+ if (gb_connection_is_static(connection))
return;
gb_svc_connection_destroy(connection->hd->svc,
u8 protocol_id);
void gb_connection_destroy(struct gb_connection *connection);
+static inline bool gb_connection_is_static(struct gb_connection *connection)
+{
+ return !connection->intf;
+}
+
void greybus_data_rcvd(struct gb_host_device *hd, u16 cport_id,
u8 *data, size_t length);
#define GB_PROTOCOL_SKIP_CONTROL_DISCONNECTED BIT(1) /* Don't sent disconnected requests */
#define GB_PROTOCOL_NO_BUNDLE BIT(2) /* Protocol May have a bundle-less connection */
#define GB_PROTOCOL_SKIP_VERSION BIT(3) /* Don't send get_version() requests */
-#define GB_PROTOCOL_SKIP_SVC_CONNECTION BIT(4) /* Don't send SVC connection requests */
typedef int (*gb_connection_init_t)(struct gb_connection *);
typedef void (*gb_connection_exit_t)(struct gb_connection *);
.flags = GB_PROTOCOL_SKIP_CONTROL_CONNECTED |
GB_PROTOCOL_SKIP_CONTROL_DISCONNECTED |
GB_PROTOCOL_NO_BUNDLE |
- GB_PROTOCOL_SKIP_VERSION |
- GB_PROTOCOL_SKIP_SVC_CONNECTION,
+ GB_PROTOCOL_SKIP_VERSION,
};
gb_builtin_protocol_driver(svc_protocol);