spin_unlock_irq(&gb_connections_lock);
- /* XXX Will have to establish connections to get version */
+ if (hd_cport_id != GB_SVC_CPORT_ID) {
+ gb_svc_connection_create(hd->svc,
+ hd->endo->ap_intf_id, hd_cport_id,
+ bundle->intf->interface_id, cport_id);
+ }
+
gb_connection_bind_protocol(connection);
if (!connection->protocol)
dev_warn(&connection->dev,
* Inform Interface about In-active CPorts. We don't need to do this
* operation for control cport.
*/
- if (cport_id == GB_CONTROL_CPORT_ID)
+ if ((cport_id == GB_CONTROL_CPORT_ID) ||
+ (connection->hd_cport_id == GB_SVC_CPORT_ID))
return;
control = connection->bundle->intf->control;
* Inform Interface about Active CPorts. We don't need to do this
* operation for control cport.
*/
- if (cport_id != GB_CONTROL_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);