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 <fparent@baylibre.com>
Reviewed-by: Johan Hovold <johan@hovoldconsulting.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
This commit is contained in:
Fabien Parent 2016-02-23 18:46:11 +01:00 committed by Greg Kroah-Hartman
parent e70055b3fb
commit 71f6c3231c

View file

@ -314,7 +314,7 @@ gb_connection_svc_connection_create(struct gb_connection *connection)
int ret; int ret;
if (gb_connection_is_static(connection)) if (gb_connection_is_static(connection))
return 0; return gb_connection_hd_fct_flow_enable(connection);
intf = connection->intf; intf = connection->intf;
ret = gb_svc_connection_create(hd->svc, ret = gb_svc_connection_create(hd->svc,
@ -330,12 +330,23 @@ gb_connection_svc_connection_create(struct gb_connection *connection)
return ret; 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; return 0;
} }
static void static void
gb_connection_svc_connection_destroy(struct gb_connection *connection) gb_connection_svc_connection_destroy(struct gb_connection *connection)
{ {
gb_connection_hd_fct_flow_disable(connection);
if (gb_connection_is_static(connection)) if (gb_connection_is_static(connection))
return; return;