We are going to want to defer creating the endo until we receive a
probe operation from the SVC, which will supply the endo id. Change
gb_endo_create() so it passes the endo_id value as an argument.
Signed-off-by: Alex Elder <elder@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
size_t buffer_size_max)
{
struct greybus_host_device *hd;
+ u16 endo_id = 0x4755; // FIXME - get endo "ID" from the SVC
/*
* Validate that the driver implements all of the callbacks
ida_init(&hd->cport_id_map);
hd->buffer_size_max = buffer_size_max;
- hd->endo = gb_endo_create(hd);
+ hd->endo = gb_endo_create(hd, endo_id);
if (!hd->endo) {
greybus_remove_hd(hd);
return NULL;
return retval;
}
-struct gb_endo *gb_endo_create(struct greybus_host_device *hd)
+struct gb_endo *gb_endo_create(struct greybus_host_device *hd, u16 endo_id)
{
struct gb_endo *endo;
int retval;
- u16 endo_id = 0x4755; // FIXME - get endo "ID" from the SVC
endo = kzalloc(sizeof(*endo), GFP_KERNEL);
if (!endo)
/* Greybus "private" definitions */
struct greybus_host_device;
-struct gb_endo *gb_endo_create(struct greybus_host_device *hd);
+struct gb_endo *gb_endo_create(struct greybus_host_device *hd, u16 endo_id);
void gb_endo_remove(struct gb_endo *endo);
u8 endo_get_module_id(struct gb_endo *endo, u8 interface_id);