From: Johan Hovold Date: Thu, 17 Sep 2015 11:17:24 +0000 (+0200) Subject: greybus: connection: add control-connected helper X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=9d7fc25b3c05a3330002560c19f0dfbfe83ea8a0;p=openwrt%2Fstaging%2Fblogic.git greybus: connection: add control-connected helper Add control-connected helper to improve readability. Signed-off-by: Johan Hovold Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/staging/greybus/connection.c b/drivers/staging/greybus/connection.c index ac787923b2d7..de5581267fce 100644 --- a/drivers/staging/greybus/connection.c +++ b/drivers/staging/greybus/connection.c @@ -368,6 +368,29 @@ gb_connection_svc_connection_destroy(struct gb_connection *connection) connection->intf_cport_id); } +/* Inform Interface about active CPorts */ +static int gb_connection_control_connected(struct gb_connection *connection) +{ + struct gb_protocol *protocol = connection->protocol; + struct gb_control *control; + u16 cport_id = connection->intf_cport_id; + int ret; + + if (protocol->flags & GB_PROTOCOL_SKIP_CONTROL_CONNECTED) + return 0; + + control = connection->bundle->intf->control; + + ret = gb_control_connected_operation(control, cport_id); + if (ret) { + dev_err(&connection->dev, + "failed to connect cport: %d\n", ret); + return ret; + } + + return 0; +} + /* Inform Interface about inactive CPorts */ static void gb_connection_control_disconnected(struct gb_connection *connection) @@ -399,18 +422,9 @@ static int gb_connection_init(struct gb_connection *connection) if (ret) return ret; - /* Inform Interface about active CPorts */ - if (!(protocol->flags & GB_PROTOCOL_SKIP_CONTROL_CONNECTED)) { - struct gb_control *control = connection->bundle->intf->control; - - ret = gb_control_connected_operation(control, cport_id); - if (ret) { - dev_err(&connection->dev, - "Failed to connect CPort-%d (%d)\n", - cport_id, ret); - goto err_svc_destroy; - } - } + ret = gb_connection_control_connected(connection); + if (ret) + goto err_svc_destroy; /* Need to enable the connection to initialize it */ spin_lock_irq(&connection->lock);