From 77c461fa861ac813143510caaa712bfb93d15b63 Mon Sep 17 00:00:00 2001 From: Viresh Kumar Date: Fri, 24 Jul 2015 18:42:03 +0530 Subject: [PATCH] greybus: connection: compare hd_cport_id for matching SVC protocol SVC protocol isn't per interface, but per entire entire endo. And so svc cport id must be matched against hd_cport_id, not per-interface cport id. Fixes: 82edfac17e5f ("connection: don't send connected/disconnected events for SVC connection") Signed-off-by: Viresh Kumar Signed-off-by: Greg Kroah-Hartman --- drivers/staging/greybus/connection.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/staging/greybus/connection.c b/drivers/staging/greybus/connection.c index c57deb2053ac..b32da8af68f4 100644 --- a/drivers/staging/greybus/connection.c +++ b/drivers/staging/greybus/connection.c @@ -344,7 +344,8 @@ int gb_connection_init(struct gb_connection *connection) * Inform Interface about Active CPorts. We don't need to do this * operation for control cport. */ - if (cport_id != GB_CONTROL_CPORT_ID && cport_id != GB_SVC_CPORT_ID) { + if (cport_id != GB_CONTROL_CPORT_ID && + connection->hd_cport_id != GB_SVC_CPORT_ID) { struct gb_control *control = connection->bundle->intf->control; ret = gb_control_connected_operation(control, cport_id); @@ -396,7 +397,8 @@ void gb_connection_exit(struct gb_connection *connection) * Inform Interface about In-active CPorts. We don't need to do this * operation for control cport. */ - if (cport_id != GB_CONTROL_CPORT_ID && cport_id != GB_SVC_CPORT_ID) { + if (cport_id != GB_CONTROL_CPORT_ID && + connection->hd_cport_id != GB_SVC_CPORT_ID) { struct gb_control *control = connection->bundle->intf->control; int ret; -- 2.20.1