Ask the SVC to do all the necessary bits for creating a new connection.
This is skipped for the initial SVC connection.
Tested-by: Viresh Kumar <viresh.kumar@linaro.org>
Reviewed-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Perry Hung <perry@leaflabs.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
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,
struct gb_endo *endo;
struct gb_connection *initial_svc_connection;
+ struct gb_svc *svc;
/* Private data for the host driver */
unsigned long hd_priv[0] __aligned(sizeof(s64));
if (!svc)
return -ENOMEM;
+ connection->hd->svc = svc;
svc->connection = connection;
connection->private = svc;
{
struct gb_svc *svc = connection->private;
+ connection->hd->svc = NULL;
connection->private = NULL;
kfree(svc);
}