diff options
author | Fabien Parent <fparent@baylibre.com> | 2016-02-23 18:46:08 +0100 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@google.com> | 2016-02-24 17:21:58 -0800 |
commit | 9ed5e1ba33d12dfcc693c87779f39b91c16c15b9 (patch) | |
tree | e70e391650620a9864c2cfa8c0e05b4647a20fdf /drivers/staging/greybus/connection.c | |
parent | greybus: arche-apb-ctrl: Return immediately if in same state from state change fns (diff) | |
download | linux-dev-9ed5e1ba33d12dfcc693c87779f39b91c16c15b9.tar.xz linux-dev-9ed5e1ba33d12dfcc693c87779f39b91c16c15b9.zip |
greybus: connection: add api to {en,dis}able unipro fct flow
In order to support mailbox-free control cport init on the bridges the AP must
be able to enable/disable the flow of unipro fct tokens. Add a new API that
will enable or disable on APBA the flow of fct tokens.
Reviewed-by: Johan Hovold <johan@hovoldconsulting.com>
Signed-off-by: Fabien Parent <fparent@baylibre.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Diffstat (limited to 'drivers/staging/greybus/connection.c')
-rw-r--r-- | drivers/staging/greybus/connection.c | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/drivers/staging/greybus/connection.c b/drivers/staging/greybus/connection.c index 4f5e2adfa8c4..4ae7153ff863 100644 --- a/drivers/staging/greybus/connection.c +++ b/drivers/staging/greybus/connection.c @@ -274,6 +274,34 @@ static void gb_connection_hd_cport_disable(struct gb_connection *connection) hd->driver->cport_disable(hd, connection->hd_cport_id); } +static int gb_connection_hd_fct_flow_enable(struct gb_connection *connection) +{ + struct gb_host_device *hd = connection->hd; + int ret; + + if (!hd->driver->fct_flow_enable) + return 0; + + ret = hd->driver->fct_flow_enable(hd, connection->hd_cport_id); + if (ret) { + dev_err(&hd->dev, "%s: failed to enable FCT flow: %d\n", + connection->name, ret); + return ret; + } + + return 0; +} + +static void gb_connection_hd_fct_flow_disable(struct gb_connection *connection) +{ + struct gb_host_device *hd = connection->hd; + + if (!hd->driver->fct_flow_disable) + return; + + hd->driver->fct_flow_disable(hd, connection->hd_cport_id); +} + /* * Request the SVC to create a connection from AP's cport to interface's * cport. |