diff --git a/drivers/staging/greybus/connection.c b/drivers/staging/greybus/connection.c index 9e8828109b1e..95855d1cad9f 100644 --- a/drivers/staging/greybus/connection.c +++ b/drivers/staging/greybus/connection.c @@ -264,6 +264,19 @@ gb_connection_create_flags(struct gb_bundle *bundle, u16 cport_id, } EXPORT_SYMBOL_GPL(gb_connection_create_flags); +struct gb_connection * +gb_connection_create_offloaded(struct gb_bundle *bundle, u16 cport_id, + unsigned long flags) +{ + struct gb_interface *intf = bundle->intf; + + flags |= GB_CONNECTION_FLAG_OFFLOADED; + + return _gb_connection_create(intf->hd, -1, intf, bundle, cport_id, + NULL, flags); +} +EXPORT_SYMBOL_GPL(gb_connection_create_offloaded); + static int gb_connection_hd_cport_enable(struct gb_connection *connection) { struct gb_host_device *hd = connection->hd; diff --git a/drivers/staging/greybus/connection.h b/drivers/staging/greybus/connection.h index c740c3816f0d..a8da9ca214be 100644 --- a/drivers/staging/greybus/connection.h +++ b/drivers/staging/greybus/connection.h @@ -64,9 +64,11 @@ struct gb_connection *gb_connection_create_static(struct gb_host_device *hd, struct gb_connection *gb_connection_create_control(struct gb_interface *intf); struct gb_connection *gb_connection_create(struct gb_bundle *bundle, u16 cport_id, gb_request_handler_t handler); -struct gb_connection * gb_connection_create_flags(struct gb_bundle *bundle, +struct gb_connection *gb_connection_create_flags(struct gb_bundle *bundle, u16 cport_id, gb_request_handler_t handler, unsigned long flags); +struct gb_connection *gb_connection_create_offloaded(struct gb_bundle *bundle, + u16 cport_id, unsigned long flags); void gb_connection_destroy(struct gb_connection *connection); static inline bool gb_connection_is_static(struct gb_connection *connection)