提交 c011d558 编写于 作者: F Fabien Parent 提交者: Johan Hovold

greybus: es2: dynamically allocate array for cport <-> ep mapping

In order to be able to dynamically determine the number of CPorts supported
by the UniPro IP instead of hardcoding the value we need to dynamically
allocate the array that is doing the cport-ep mapping.
Signed-off-by: NFabien Parent <fparent@baylibre.com>
Reviewed-by: NJohan Hovold <johan@hovoldconsulting.com>
Signed-off-by: NJohan Hovold <johan@hovoldconsulting.com>
上级 144670c2
......@@ -108,7 +108,7 @@ struct es1_ap_dev {
bool cport_out_urb_cancelled[NUM_CPORT_OUT_URB];
spinlock_t cport_out_urb_lock;
int cport_to_ep[CPORT_COUNT];
int *cport_to_ep;
};
struct cport_to_ep {
......@@ -443,6 +443,7 @@ static void ap_disconnect(struct usb_interface *interface)
usb_set_intfdata(interface, NULL);
udev = es1->usb_dev;
greybus_remove_hd(es1->hd);
kfree(es1->cport_to_ep);
usb_put_dev(udev);
}
......@@ -678,6 +679,13 @@ static int ap_probe(struct usb_interface *interface,
endpoint = &udev->ep0.desc;
es1->control_endpoint = endpoint->bEndpointAddress;
es1->cport_to_ep = kcalloc(hd->num_cports, sizeof(*es1->cport_to_ep),
GFP_KERNEL);
if (!es1->cport_to_ep) {
retval = -ENOMEM;
goto error;
}
/* find all 3 of our endpoints */
iface_desc = interface->cur_altsetting;
for (i = 0; i < iface_desc->desc.bNumEndpoints; ++i) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册