diff --git a/drivers/staging/greybus/connection.c b/drivers/staging/greybus/connection.c index 743ea67d022f..3b731dab81f0 100644 --- a/drivers/staging/greybus/connection.c +++ b/drivers/staging/greybus/connection.c @@ -527,6 +527,38 @@ void gb_connection_destroy(struct gb_connection *connection) device_unregister(&connection->dev); } +void gb_connection_latency_tag_enable(struct gb_connection *connection) +{ + struct greybus_host_device *hd = connection->hd; + int ret; + + if (!hd->driver->latency_tag_enable) + return; + + ret = hd->driver->latency_tag_enable(hd, connection->hd_cport_id); + if (ret) { + dev_err(&connection->dev, + "failed to enable latency tag: %d\n", ret); + } +} +EXPORT_SYMBOL_GPL(gb_connection_latency_tag_enable); + +void gb_connection_latency_tag_disable(struct gb_connection *connection) +{ + struct greybus_host_device *hd = connection->hd; + int ret; + + if (!hd->driver->latency_tag_disable) + return; + + ret = hd->driver->latency_tag_disable(hd, connection->hd_cport_id); + if (ret) { + dev_err(&connection->dev, + "failed to disable latency tag: %d\n", ret); + } +} +EXPORT_SYMBOL_GPL(gb_connection_latency_tag_disable); + void gb_hd_connections_exit(struct greybus_host_device *hd) { struct gb_connection *connection; diff --git a/drivers/staging/greybus/connection.h b/drivers/staging/greybus/connection.h index 27ec5975bbe0..2eaf186ab60e 100644 --- a/drivers/staging/greybus/connection.h +++ b/drivers/staging/greybus/connection.h @@ -66,4 +66,7 @@ void greybus_data_rcvd(struct greybus_host_device *hd, u16 cport_id, int gb_connection_bind_protocol(struct gb_connection *connection); +void gb_connection_latency_tag_enable(struct gb_connection *connection); +void gb_connection_latency_tag_disable(struct gb_connection *connection); + #endif /* __CONNECTION_H */