From: Laurent Pinchart Date: Tue, 8 Dec 2015 17:54:59 +0000 (+0200) Subject: greybus: es2: Reserve CPorts 16 and 17 X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=a75fd8ba5c8c263d2d0341123822c769e7d95918;p=GitHub%2FLineageOS%2Fandroid_kernel_motorola_exynos9610.git greybus: es2: Reserve CPorts 16 and 17 CPorts 16 and 17 are reserved for CDSI0 and CDSI1 by the ES2 APB, make sure they won't be allocated dynamically. Signed-off-by: Laurent Pinchart Reviewed-by: Johan Hovold Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/staging/greybus/es2.c b/drivers/staging/greybus/es2.c index b1b6ad3a512b..86972a959b07 100644 --- a/drivers/staging/greybus/es2.c +++ b/drivers/staging/greybus/es2.c @@ -841,6 +841,7 @@ static int ap_probe(struct usb_interface *interface, int retval = -ENOMEM; int i; int num_cports; + int cport_id; udev = usb_get_dev(interface_to_usbdev(interface)); @@ -859,6 +860,14 @@ static int ap_probe(struct usb_interface *interface, return PTR_ERR(hd); } + /* + * CPorts 16 and 17 are reserved for CDSI0 and CDSI1, make sure they + * won't be allocated dynamically. + */ + do { + cport_id = ida_simple_get(&hd->cport_id_map, 16, 18, GFP_KERNEL); + } while (cport_id > 0); + es2 = hd_to_es2(hd); es2->hd = hd; es2->usb_intf = interface;