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>
This commit is contained in:
Viresh Kumar 2015-08-12 09:19:31 +05:30 committed by Greg Kroah-Hartman
parent fd489e1ac6
commit 3944a454f1
2 changed files with 11 additions and 8 deletions

View File

@ -28,6 +28,12 @@ struct gb_interface {
char *product_string;
u64 unique_id;
/* Information taken from the hotplug event */
u32 unipro_mfg_id;
u32 unipro_prod_id;
u32 ara_vend_id;
u32 ara_prod_id;
struct gb_module *module;
struct greybus_host_device *hd;
};

View File

@ -232,10 +232,6 @@ static int gb_svc_intf_hotplug_recv(struct gb_operation *op)
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 @@ static int gb_svc_intf_hotplug_recv(struct gb_operation *op)
* 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 @@ static int gb_svc_intf_hotplug_recv(struct gb_operation *op)
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