staging: greybus: make cport_quiesce() method optional

The cport_quiesce() method is mandatory in the case of
the es2 Greybus hd controller to shutdown the cports on
the es2 controller.
In order to add support of another controller which may not
need to shutdown its cports, make the cport_quiesce() optional,
and check if the controller implement it before to use it.

Signed-off-by: Alexandre Bailon <abailon@baylibre.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Alexandre Bailon 2017-03-26 18:58:23 +02:00 committed by Greg Kroah-Hartman
parent 4064771da8
commit 2e2fd6be42
1 changed files with 3 additions and 0 deletions

View File

@ -366,6 +366,9 @@ static int gb_connection_hd_cport_quiesce(struct gb_connection *connection)
if (connection->mode_switch) if (connection->mode_switch)
peer_space += sizeof(struct gb_operation_msg_hdr); peer_space += sizeof(struct gb_operation_msg_hdr);
if (!hd->driver->cport_quiesce)
return 0;
ret = hd->driver->cport_quiesce(hd, connection->hd_cport_id, ret = hd->driver->cport_quiesce(hd, connection->hd_cport_id,
peer_space, peer_space,
GB_CONNECTION_CPORT_QUIESCE_TIMEOUT); GB_CONNECTION_CPORT_QUIESCE_TIMEOUT);