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);