greybus: interface: Preserve data received during hotplug event
This shall be used later to find a firmware blob for the interface, lets
save it in the interface structure.
Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
diff --git a/drivers/staging/greybus/svc.c b/drivers/staging/greybus/svc.c
index 025b2ba..73e7947 100644
--- a/drivers/staging/greybus/svc.c
+++ b/drivers/staging/greybus/svc.c
@@ -232,10 +232,6 @@
struct device *dev = &op->connection->dev;
struct gb_interface *intf;
u8 intf_id, device_id;
- u32 unipro_mfg_id;
- u32 unipro_prod_id;
- u32 ara_vend_id;
- u32 ara_prod_id;
int ret;
if (request->payload_size < sizeof(*hotplug)) {
@@ -252,10 +248,6 @@
* XXX have the SVC get acknowledgement before we proceed.
*/
intf_id = hotplug->intf_id;
- unipro_mfg_id = le32_to_cpu(hotplug->data.unipro_mfg_id);
- unipro_prod_id = le32_to_cpu(hotplug->data.unipro_prod_id);
- ara_vend_id = le32_to_cpu(hotplug->data.ara_vend_id);
- ara_prod_id = le32_to_cpu(hotplug->data.ara_prod_id);
intf = gb_interface_create(hd, intf_id);
if (!intf) {
@@ -264,6 +256,11 @@
return -EINVAL;
}
+ intf->unipro_mfg_id = le32_to_cpu(hotplug->data.unipro_mfg_id);
+ intf->unipro_prod_id = le32_to_cpu(hotplug->data.unipro_prod_id);
+ intf->ara_vend_id = le32_to_cpu(hotplug->data.ara_vend_id);
+ intf->ara_prod_id = le32_to_cpu(hotplug->data.ara_prod_id);
+
/*
* Create a device id for the interface:
* - device id 0 (GB_DEVICE_ID_SVC) belongs to the SVC