From 71f6c3231c1dce6980f97b7bc7ed7ac32faac550 Mon Sep 17 00:00:00 2001 From: Fabien Parent Date: Tue, 23 Feb 2016 18:46:11 +0100 Subject: [PATCH] greybus: connection: {en,dis}able fct flow in connection management The AP must enable the FCT flow of APBA once it has received the response from the AP that the connection between APBA and a module has been setted up. Disable the flow of FCT tokens when destroying connections. Signed-off-by: Fabien Parent Reviewed-by: Johan Hovold Signed-off-by: Greg Kroah-Hartman --- drivers/staging/greybus/connection.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/drivers/staging/greybus/connection.c b/drivers/staging/greybus/connection.c index 4ae7153..34e26dc 100644 --- a/drivers/staging/greybus/connection.c +++ b/drivers/staging/greybus/connection.c @@ -314,7 +314,7 @@ gb_connection_svc_connection_create(struct gb_connection *connection) int ret; if (gb_connection_is_static(connection)) - return 0; + return gb_connection_hd_fct_flow_enable(connection); intf = connection->intf; ret = gb_svc_connection_create(hd->svc, @@ -330,12 +330,23 @@ gb_connection_svc_connection_create(struct gb_connection *connection) return ret; } + ret = gb_connection_hd_fct_flow_enable(connection); + if (ret) { + gb_svc_connection_destroy(hd->svc, hd->svc->ap_intf_id, + connection->hd_cport_id, + intf->interface_id, + connection->intf_cport_id); + return ret; + } + return 0; } static void gb_connection_svc_connection_destroy(struct gb_connection *connection) { + gb_connection_hd_fct_flow_disable(connection); + if (gb_connection_is_static(connection)) return; -- 2.7.4